warfactoryracine/src/modules/world-generation-realist/CMakeLists.txt
StillHammer b93b269e6d Implement complete world-generation-realist system with volcanic physics and region fusion
- Create volcanic system: Volcano.h, VolcanoFactory.h, VolcanoImpact.h with realistic lifecycle modeling
- Add PlanetaryDifferentiationFunction.h for gravitational material separation (regions → core)
- Implement CoolingPhaseFunction.h with dual influences (core + surface temperature)
- Create UniversalRegionFusionFunction.h as template with duck typing for type-safe fusion
- Add ResourceRegion.h, TectonicRegion.h, ClimateRegion.h with unified fusion interface
- Update Regular_world.json with Phase 0 initialization and volcanic/cooling configurations
- Add melting_point_celsius to all resources for volcanic composition filtering
- Implement ResourceRegistry and RandomGenerator singletons for performance
- Scale system for realistic quantities: uint64_t gameplay, uint128_t planetary core

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 14:38:46 +08:00

61 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(world-generation-realist)
set(CMAKE_CXX_STANDARD 20)
# Add compiler flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 -fsanitize=address -fsanitize=undefined")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
# Include directories
include_directories(include)
include_directories(../../core/include)
# Add FetchContent for dependencies
include(FetchContent)
# nlohmann/json
FetchContent_Declare(
nlohmann_json
GIT_REPOSITORY https://github.com/nlohmann/json.git
GIT_TAG v3.11.3
)
FetchContent_MakeAvailable(nlohmann_json)
# Source files
set(SOURCES
src/GMap.cpp
src/RegionManager.cpp
src/MeteoriteImpact.cpp
src/PlanetaryCore.cpp
src/WorldData.cpp
src/Meteorite.cpp
)
# Create the module library (when sources exist)
if(SOURCES)
add_library(world-generation-realist SHARED ${SOURCES})
# Link libraries
target_link_libraries(world-generation-realist
nlohmann_json::nlohmann_json
)
# Set output directory
set_target_properties(world-generation-realist PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
)
# Install targets
install(TARGETS world-generation-realist
LIBRARY DESTINATION lib
)
endif()
# Install headers
install(DIRECTORY include/
DESTINATION include/world-generation-realist
FILES_MATCHING PATTERN "*.h"
)