EtrediaEmpires/p7lib/Sources/CMakeLists.txt
legatt 3f965b2393 C++20 migration and Client
- Migrated to C++20 modules
- Worker and ThreadedWorker base classes for interthread systems
- Client class for server transport and converting game data models to render data (views)
- Update provinces render data from Client
- Renderer handles commands now
2026-02-10 04:12:04 +03:00

76 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(p7)
if(WIN32)
set(P7_PLATFORM_LIBS Ws2_32)
elseif(UNIX)
set(P7_PLATFORM_LIBS rt pthread)
else()
message(FATAL_ERROR "${PROJECT_NAME}: Platform not supported")
endif()
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} P7_SOURCES)
add_library(${PROJECT_NAME} STATIC ${P7_SOURCES})
target_link_libraries(${PROJECT_NAME} PUBLIC ${P7_PLATFORM_LIBS})
target_include_directories(p7
PUBLIC
${PATH_P7_API}
${CMAKE_CURRENT_SOURCE_DIR}/../Headers
${CMAKE_CURRENT_SOURCE_DIR}/../Shared
)
if(WIN32)
target_include_directories(p7 PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../Shared/Platforms/Windows_x86
)
elseif(UNIX)
target_include_directories(p7 PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../Shared/Platforms/Linux_x86
)
endif()
if(P7_BUILD_SHARED)
add_library(${PROJECT_NAME}-shared SHARED ${P7_SOURCES})
target_link_libraries(${PROJECT_NAME}-shared ${P7_PLATFORM_LIBS})
endif()
#set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
#if(P7_BUILD_SHARED)
# set_property(TARGET ${PROJECT_NAME}-shared PROPERTY POSITION_INDEPENDENT_CODE ON)
#endif()
target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../Headers/")
if(P7_BUILD_SHARED)
target_include_directories(${PROJECT_NAME}-shared PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../Headers/")
endif()
if(WIN32)
target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../Shared/Platforms/Windows_x86/")
elseif(UNIX)
target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../Shared/Platforms/Linux_x86/")
endif()
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
if(P7_BUILD_SHARED)
install(TARGETS ${PROJECT_NAME}-shared
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)
endif()
if(COMMAND set_ide_folder)
set_ide_folder(${PROJECT_NAME})
if(P7_BUILD_SHARED)
set_ide_folder(${PROJECT_NAME}-shared)
endif()
endif()