- 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>
48 lines
1.1 KiB
CMake
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"
|
|
) |