diff --git a/cmake/EIPScannerConfig.cmake.in b/cmake/EIPScannerConfig.cmake.in new file mode 100644 index 0000000..3e16bd1 --- /dev/null +++ b/cmake/EIPScannerConfig.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/EIPScannerTargets.cmake") + +check_required_components(EIPScanner) + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6a58194..cdf0808 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -50,12 +50,14 @@ if(ENABLE_VENDOR_SRC) add_subdirectory(vendor) endif() -add_library(EIPScanner SHARED ${SOURCE_FILES} ${VENDOR_FILES}) -add_library(EIPScannerS STATIC ${SOURCE_FILES} ${VENDOR_FILES}) +if(BUILD_SHARED_LIBS) + add_library(EIPScanner SHARED ${SOURCE_FILES} ${VENDOR_FILES}) +else() + add_library(EIPScanner STATIC ${SOURCE_FILES} ${VENDOR_FILES}) +endif() if(WIN32) target_link_libraries(EIPScanner ws2_32) - target_link_libraries(EIPScannerS ws2_32) endif() set_target_properties( @@ -64,7 +66,10 @@ set_target_properties( VERSION ${EIPSCANNER_FULL_VERSION} SOVERSION ${EIPSCANNER_MAJOR_VERSION}) -install(TARGETS EIPScanner EIPScannerS +set_target_properties(EIPScanner PROPERTIES EXPORT_NAME eipscanner) + +install(TARGETS EIPScanner + EXPORT EIPScanner LIBRARY DESTINATION lib ARCHIVE @@ -73,3 +78,30 @@ install(TARGETS EIPScanner EIPScannerS install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/ DESTINATION include/EIPScanner FILES_MATCHING PATTERN "*.h*") + + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ../cmake/EIPScannerConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfig.cmake + INSTALL_DESTINATION lib/cmake/eipscanner +) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfigVersion.cmake + DESTINATION lib/cmake/eipscanner +) + +install(EXPORT EIPScanner + FILE EIPScannerTargets.cmake + NAMESPACE eipscanner:: + DESTINATION lib/cmake/eipscanner +) + \ No newline at end of file