warfactoryracine/core/CMakeLists.txt
StillHammer 959a2e4101 Complete Phase 3: Revolutionary UI interface system with hybrid sizing
🎯 **PRODUCTION-READY UI ARCHITECTURE**
- Data-agnostic IUI interface with type-safe enums for performance
- Revolutionary hybrid sizing: percentage targets + absolute pixel constraints
- Hierarchical windowing: Parent → Dock → Split → Tab → Window structure
- Complete ImGuiUI implementation with all DataType content renderers

🔧 **DEVELOPMENT INFRASTRUCTURE**
- AddressSanitizer + GDB debugging workflow for instant crash detection
- Cross-platform pipeline: Linux development → Windows .exe automation
- Debug mode default with comprehensive sanitizer coverage

📊 **TECHNICAL ACHIEVEMENTS**
- Fixed JSON type mixing and buffer overflow crashes with precise debugging
- Mathematical hybrid sizing formula: clamp(percentage_target, min_px, max_px)
- Professional layout system: economic topbar + companies panel + strategic map
- Interactive callback system with request/response architecture

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 11:18:26 +08:00

87 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.20)
project(UnifiedIOTest LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Core includes
include_directories(include)
# Find spdlog and nlohmann_json
find_package(spdlog QUIET)
find_package(nlohmann_json QUIET)
# Minimal FetchContent for missing deps
if(NOT nlohmann_json_FOUND)
include(FetchContent)
FetchContent_Declare(nlohmann_json
URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz
URL_HASH SHA256=d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d
)
FetchContent_MakeAvailable(nlohmann_json)
endif()
if(NOT spdlog_FOUND)
include(FetchContent)
FetchContent_Declare(spdlog
GIT_REPOSITORY https://github.com/gabime/spdlog.git
GIT_TAG v1.12.0
)
FetchContent_MakeAvailable(spdlog)
endif()
# Unified IO Test
add_executable(unified-io-test
src/test_unified_io.cpp
src/IntraIO.cpp
src/IntraIOManager.cpp
src/IOFactory.cpp
)
target_link_libraries(unified-io-test
PRIVATE nlohmann_json::nlohmann_json
PRIVATE spdlog::spdlog
PRIVATE pthread
)
# Client-Economy Integration Test
add_executable(client-economy-integration
../test_client_economy_integration.cpp
src/IntraIO.cpp
src/IntraIOManager.cpp
src/IOFactory.cpp
)
target_link_libraries(client-economy-integration
PRIVATE nlohmann_json::nlohmann_json
PRIVATE spdlog::spdlog
PRIVATE pthread
)
# GlobalMap Integration Test
add_executable(globalmap-integration
../test_globalmap_integration.cpp
src/IntraIO.cpp
src/IntraIOManager.cpp
src/IOFactory.cpp
)
target_link_libraries(globalmap-integration
PRIVATE nlohmann_json::nlohmann_json
PRIVATE spdlog::spdlog
PRIVATE pthread
)
# Warfactory Demo System (Backend)
add_executable(warfactory-demo
../warfactory_demo.cpp
src/IntraIO.cpp
src/IntraIOManager.cpp
src/IOFactory.cpp
)
target_link_libraries(warfactory-demo
PRIVATE nlohmann_json::nlohmann_json
PRIVATE spdlog::spdlog
PRIVATE pthread
)