diff --git a/CMakeLists.txt b/CMakeLists.txt index 29a58ed..a219459 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,11 @@ find_package( asio REQUIRED ) if ( BUILD_SSL ) add_definitions( "-DBUILD_SSL" ) - find_package( openssl REQUIRED ) + find_package( OpenSSL REQUIRED ) + set( ssl_LIBRARY_SHARED OpenSSL::SSL ) + set( crypto_LIBRARY_SHARED OpenSSL::Crypto ) + set( ssl_LIBRARY_STATIC OpenSSL::SSL ) + set( crypto_LIBRARY_STATIC OpenSSL::Crypto ) endif ( ) if ( BUILD_IPC ) @@ -75,8 +79,8 @@ if ( BUILD_STATIC_LIBRARY ) set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON ) set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} ) - target_include_directories(${STATIC_LIBRARY_NAME} SYSTEM PUBLIC ${asio_INCLUDE} ${ssl_INCLUDE} ${INCLUDE_DIR}) - + target_include_directories(${STATIC_LIBRARY_NAME} SYSTEM PUBLIC ${asio_INCLUDE} ${ssl_INCLUDE} $) + target_include_directories(${STATIC_LIBRARY_NAME} INTERFACE $) if ( BUILD_SSL ) target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} ) else ( ) @@ -96,8 +100,8 @@ if ( BUILD_SHARED_LIBRARY ) endif ( ) set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) - target_include_directories(${SHARED_LIBRARY_NAME} SYSTEM PUBLIC ${asio_INCLUDE} ${ssl_INCLUDE} ${INCLUDE_DIR}) - + target_include_directories(${SHARED_LIBRARY_NAME} SYSTEM PUBLIC ${asio_INCLUDE} ${ssl_INCLUDE} $) + target_include_directories(${SHARED_LIBRARY_NAME} INTERFACE $) if ( BUILD_SSL ) target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} ) else ( ) @@ -122,9 +126,27 @@ if ( BUILD_DEVEL_PACKAGE ) endif ( ) if ( BUILD_STATIC_LIBRARY ) - install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${} COMPONENT library ) + install( TARGETS ${STATIC_LIBRARY_NAME} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${} COMPONENT library ) endif ( ) if ( BUILD_SHARED_LIBRARY ) - install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) + install( TARGETS ${SHARED_LIBRARY_NAME} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) endif ( ) + +install( EXPORT unofficial-restbed-target FILE unofficial-restbed-target.cmake NAMESPACE unofficial::restbed:: DESTINATION share/unofficial-restbed) + +file( WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in" +[[include(CMakeFindDependencyMacro) +if (@BUILD_SSL@) + find_dependency(OpenSSL) +endif() +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-restbed-target.cmake") +if("@BUILD_SHARED_LIBS@") + add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-shared) +else() + add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-static) +endif() +]]) + +configure_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" @ONLY) +install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" DESTINATION share/unofficial-restbed)