Files
BGG2026/CMakeLists.txt

60 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(gamejam LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
find_package(raylib REQUIRED)
find_package(RmlUi REQUIRED)
add_executable(gamejam
src/main.cpp
src/Game.cpp
src/Application.cpp
src/Creature.cpp
src/Round.cpp
src/backend/RaylibSystemInterface.cpp
src/backend/RaylibRenderInterface.cpp
src/backend/RaylibInput.cpp
)
target_link_libraries(gamejam PRIVATE
raylib
RmlUi::Core
RmlUi::Debugger
)
target_include_directories(gamejam PRIVATE ${CMAKE_SOURCE_DIR}/src)
set(ASSET_DIR ${CMAKE_SOURCE_DIR}/assets)
if(EMSCRIPTEN)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
target_link_options(gamejam PRIVATE
"-sUSE_GLFW=3"
"-sASYNCIFY"
"-sALLOW_MEMORY_GROWTH=1"
"-sFORCE_FILESYSTEM=1"
"--preload-file=${ASSET_DIR}@assets"
# "--shell-file=${CMAKE_SOURCE_DIR}/shell.html"
)
else()
add_custom_command(TARGET gamejam POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${ASSET_DIR} $<TARGET_FILE_DIR:gamejam>/assets
COMMENT "Copying assets to build output"
)
endif()
install(TARGETS gamejam RUNTIME DESTINATION bin)
if(NOT EMSCRIPTEN)
install(DIRECTORY ${ASSET_DIR} DESTINATION bin)
endif()