EtrediaEmpires/p7lib/Sources/CMakeLists.txt
2026-01-18 21:05:59 +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()