58 lines
1.2 KiB
CMake
58 lines
1.2 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/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()
|