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} $/assets COMMENT "Copying assets to build output" ) endif() install(TARGETS gamejam RUNTIME DESTINATION bin) if(NOT EMSCRIPTEN) install(DIRECTORY ${ASSET_DIR} DESTINATION bin) endif()