diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 35 |
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}) |