warfactoryracine/core/CMakeLists.txt
StillHammer 61ef2293ad Replace engine architecture with modular triple interface system
- Remove old 10-engine system (engines/ directory deleted)
- Implement C++ triple interface architecture:
  * IEngine: Execution coordination (Debug → Production)
  * IModuleSystem: Strategy pattern (Sequential → Threaded → Cluster)
  * IModule: Pure game logic interface (200-300 lines per module)
  * IIO: Communication transport (Intra → Local → Network)

- Add autonomous module structure:
  * modules/factory/: Production logic with autonomous build
  * modules/economy/: Market simulation with autonomous build
  * modules/logistic/: Supply chain with autonomous build
  * Each module: CLAUDE.md + CMakeLists.txt + shared/ + build/

- Benefits for Claude Code development:
  * Ultra-focused contexts (200 lines vs 50K+ lines)
  * Autonomous builds (cmake . from module directory)
  * Hot-swappable infrastructure without logic changes
  * Parallel development across multiple Claude instances

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 09:15:03 +08:00

48 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(WarfactoryCore LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Load Warfactory defenses
include(../cmake/WarfactoryDefenses.cmake)
include(../cmake/WarfactoryAutomation.cmake)
# Output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# Core includes
include_directories(include)
# Core library with interfaces
add_library(warfactory-core SHARED
src/Engine.cpp
src/ModuleSystem.cpp
src/Socket.cpp
src/ModuleLoader.cpp
)
target_include_directories(warfactory-core PUBLIC
include
)
# Main executable
add_executable(warfactory-engine
src/main.cpp
)
target_link_libraries(warfactory-engine
PRIVATE warfactory-core
)
# Install rules
install(TARGETS warfactory-core warfactory-engine
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
install(DIRECTORY include/
DESTINATION include
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
)