diff options
| author | realtradam <[email protected]> | 2023-04-11 22:20:04 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2023-04-11 22:20:04 -0400 |
| commit | 5de5619b125108338dbc4dfd382f488a3a0c850b (patch) | |
| tree | 4eb1ad006a562f9c914f012d8ed8122b47a8379f /CMakeLists.txt | |
| parent | dbe60ec68ff64c918bc32cf216fc3a6932f5e3c4 (diff) | |
| download | TOJam2023-5de5619b125108338dbc4dfd382f488a3a0c850b.tar.gz TOJam2023-5de5619b125108338dbc4dfd382f488a3a0c850b.zip | |
rework cmake build system + rodeo bump
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 101 |
1 files changed, 44 insertions, 57 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56f36b6..f6b5cb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,32 +1,58 @@ cmake_minimum_required(VERSION 3.25.1) -project(space_squad) - -if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten") - set(CMAKE_EXECUTABLE_SUFFIX ".html") -endif() - -set(CMAKE_BUILD_TYPE Debug) +project(demo + LANGUAGES C + ) -file(GLOB SOURCES +add_executable(${PROJECT_NAME} "src/main.c" ) -add_executable(${PROJECT_NAME} ${SOURCES}) +set_property(TARGET ${PROJECT_NAME} PROPERTY C_STANDARD 11) + +add_subdirectory(external/RodeoEngine) +add_dependencies(${PROJECT_NAME} RodeoKit) +target_include_directories(${PROJECT_NAME} PUBLIC external/RodeoEngine/include) +target_link_libraries(${PROJECT_NAME} PUBLIC RodeoKit) + +if(DEFINED EMSCRIPTEN) + set(CMAKE_EXECUTABLE_SUFFIX ".html") -if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Emscripten") -target_compile_options(${PROJECT_NAME} PRIVATE --Wall --Wextra --Wpedantic -#-Werror --Wconversion -) + # bundle in assets and shaders + set_target_properties(${PROJECT_NAME} + PROPERTIES + LINK_FLAGS + "--preload-file ${PROJECT_SOURCE_DIR}/external/RodeoEngine/build_dir/shaders@shaders --preload-file ${PROJECT_SOURCE_DIR}/assets@assets --use-preload-plugins" + ) endif() +if (NOT DEFINED EMSCRIPTEN) + target_compile_options(${PROJECT_NAME} PRIVATE + -Wall + -Wextra + -Wpedantic + #-Werror + -Wconversion + ) + + # copy over shaders to build directory + add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD + DEPENDS RodeoKit + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/external/RodeoEngine/build_dir/shaders $<TARGET_FILE_DIR:${PROJECT_NAME}>/shaders + ) + + # copy over assets to build directory + add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/assets $<TARGET_FILE_DIR:${PROJECT_NAME}>/assets + ) +endif() + +# pull all git submodules recursively find_package(Git QUIET) if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") -# Update submodules as needed + # Update submodules as needed option(GIT_SUBMODULE "Check submodules during build" ON) if(GIT_SUBMODULE) message(STATUS "Submodule update") @@ -39,42 +65,3 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") endif() endif() -add_subdirectory(external/RodeoEngine) - -add_dependencies(${PROJECT_NAME} RodeoEngine) - -target_include_directories(${PROJECT_NAME} - PUBLIC external/RodeoEngine/include - ) - -target_link_libraries(${PROJECT_NAME} - RodeoEngine - ) - -add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD - DEPENDS RodeoEngine - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_SOURCE_DIR}/external/RodeoEngine/build_dir/shaders $<TARGET_FILE_DIR:${PROJECT_NAME}>/shaders - ) - -if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten") - set_target_properties(space_squad PROPERTIES LINK_FLAGS "-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s ALLOW_MEMORY_GROWTH") - - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ - -s MAX_WEBGL_VERSION=2 \ - -s WASM=1 \ - -s NO_EXIT_RUNTIME=1 \ - -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 \ - -s OFFSCREENCANVAS_SUPPORT=1 \ - -s ALLOW_MEMORY_GROWTH=1 \ - --preload-file shaders \ - --preload-file assets") - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ - -fno-exceptions \ - -fno-rtti \ - -s USE_SDL=2") - #-s USE_SDL_IMAGE=2 \ - -endif () - |
