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" )