@ -1,16 +1,45 @@
package ( " johnnyengine " )
set_homepage ( " https://github.com/PucklaJ/JohnnyEngine " )
set_description ( " A 2D/3D Engine using OpenGL and SDL for input and the window " )
set_license ( " zlib " )
add_urls ( " https://github.com/PucklaJ/JohnnyEngine/archive/refs/tags/$(version).zip " ,
" https://github.com/PucklaJ/JohnnyEngine.git " )
add_versions ( " 1.0.1 " , " 53c11b827bea6fe30f9bca27adbd712eec85a0853c0402407930bae78ad54a8f " )
add_patches ( " 1.0.1 " , path.join ( os.scriptdir ( ) , " patches " , " 1.0.1 " , " win32_shared_fix.patch " ) , " fbe22cb5a9f0485982c7755936d14de6da3ce80a42394d48946b14b922847611 " )
add_deps ( " glew " , " libsdl " , " libsdl_ttf " , " libsdl_mixer " , " libsdl_gfx " , " box2d " , " assimp " , " stb " , " tmxparser " )
add_deps ( " glew " , " libsdl2 " , " libsdl2_ttf " , " libsdl2_mixer " , " libsdl2_gfx " , " box2d 2.x " , " assimp " , " stb " , " tmxparser " )
if is_plat ( " macosx " ) then
add_frameworks ( " OpenGL " )
end
on_install ( " windows|x86 " , " windows|x64 " , " linux " , " macosx " , function ( package )
io.writefile ( " xmake.lua " , [ [
set_project ( " johnny-engine " )
add_requires ( " glew " , " libsdl2 " , " libsdl2_ttf " , " libsdl2_mixer " , " libsdl2_gfx " , " box2d 2.x " , " assimp " , " stb " , " tmxparser " )
add_rules ( " mode.debug " , " mode.release " )
target ( " johnny-engine " )
set_kind ( " $(kind) " )
add_defines ( " STB_IMAGE_IMPLEMENTATION " )
set_languages ( " c++11 " )
add_packages ( " glew " , " libsdl2 " , " libsdl2_ttf " , " libsdl2_mixer " , " libsdl2_gfx " , " box2d " , " assimp " , " stb " , " tmxparser " )
if is_kind ( " shared " ) then
add_rules ( " utils.symbols.export_all " , { export_classes = true } )
end
if is_plat ( " macosx " ) then
add_frameworks ( " OpenGL " )
end
on_install ( " windows " , " linux " , " macosx " , function ( package )
add_files ( " src/*.cpp " )
add_headerfiles ( " include/*.h " )
add_includedirs ( " include " )
] ] )
import ( " package.tools.xmake " ) . install ( package , { kind = ( package : config ( " shared " ) and " shared " or " static " ) } )
end )
@ -35,5 +64,5 @@ package("johnnyengine")
Rectangle < int > r ( 1 , 2 , 3 , 4 ) ;
Game ( ) . run ( ) ;
}
] ] } , { configs = { languages = " cxx11 " } , includes = " Johnny.h " } ) )
] ] } , { configs = { defines = " SDL_MAIN_HANDLED " , languages = " cxx11 " } , includes = " Johnny.h " } ) )
end )