aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSamuel Johnson <[email protected]>2025-05-07 00:08:29 -0400
committerSamuel Johnson <[email protected]>2025-05-07 00:08:29 -0400
commit5f383da62c7a80526634b68c28d7ba9d9e693e75 (patch)
tree7a8e1e8b6d4dcc07126f9e65ca2618aee0c920be /CMakeLists.txt
parent4223fb686b99a5db73da79fb73123568b75822ed (diff)
Create html shell wrapper for gameHEADtrunkdev
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e69de29..a460e57 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -0,0 +1,35 @@
+cmake_minimum_required(VERSION 3.19...4.0)
+
+option(BUILD_NATIVE "Compile for host toolchain instead of web" OFF)
+if (NOT BUILD_NATIVE)
+ message("Compiling with emscripten...")
+ set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "$ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
+ set(VCPKG_TARGET_TRIPLET "wasm32-emscripten")
+endif()
+
+set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vendor/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain")
+
+project(starless VERSION 0.1 LANGUAGES C CXX)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
+
+file(
+ GLOB_RECURSE SOURCE_FILES
+ CONFIGURE_DEPENDS
+ ${PROJECT_SOURCE_DIR}/starless/*.cpp
+)
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+target_include_directories(${PROJECT_NAME} PRIVATE .)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
+
+if (NOT BUILD_NATIVE)
+ target_link_options(${PROJECT_NAME} PRIVATE --preload-file "${CMAKE_CURRENT_SOURCE_DIR}/data@data" --shell-file "${CMAKE_CURRENT_SOURCE_DIR}/wrapper.html")
+ set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".html")
+endif()
+
+find_package(SDL3 CONFIG REQUIRED)
+find_package(Lua CONFIG REQUIRED)
+find_package(libtcod CONFIG REQUIRED)
+target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3 libtcod::libtcod ${LUA_LIBRARIES})