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