Added raylib+rmlui template

This commit is contained in:
2026-08-23 20:57:32 -05:00
commit 1a378aebf0
15 changed files with 685 additions and 0 deletions

69
CMakeLists.txt Normal file
View File

@@ -0,0 +1,69 @@
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()
# ---------------------------------------------------------------------------
# Dependencies
#
# Native build: raylib + RmlUi come from nixpkgs / the `rmlui` derivation,
# found on the default system paths set up by the dev shell.
#
# Wasm build: raylib + RmlUi come from the `raylibWasm` / `rmluiWasm`
# derivations, located via -DCMAKE_PREFIX_PATH set by devShells.wasm.
# ---------------------------------------------------------------------------
find_package(raylib REQUIRED)
find_package(RmlUi REQUIRED)
add_executable(gamejam
src/main.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)
# -----------------------------------------------------------------------
# Wasm-specific settings
# -----------------------------------------------------------------------
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()