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})