Files
Rockgrave/CMakeLists.txt
2026-10-25 03:29:04 -03:00

38 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(HammerPP VERSION 0.1.0 DESCRIPTION "Hammer++ map editor" LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()
option(HPP_BUILD_EDITOR "Build the Hammer++ editor (raylib + Dear ImGui + rlImGui)" ON)
option(HPP_BUILD_VIEWER "Build the minimal raylib example viewer" ON)
option(HPP_BUILD_TOOLS "Build the command line tools (hmap_info, hmap_sample)" ON)
option(HPP_BUILD_TESTS "Build the libhmap test-suite" ON)
# libhmap: map model, BSP/CSG compiler, lighting, .hmap format, FBX/OBJ export. No third-party dependencies.
add_subdirectory(libhmap)
if(HPP_BUILD_TOOLS)
add_subdirectory(tools)
endif()
if(HPP_BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
endif()
if(HPP_BUILD_EDITOR OR HPP_BUILD_VIEWER)
include(cmake/Dependencies.cmake) # raylib (+ Dear ImGui and rlImGui for the editor)
if(HPP_BUILD_VIEWER)
add_subdirectory(examples)
endif()
if(HPP_BUILD_EDITOR)
add_subdirectory(editor)
endif()
endif()