From 74001fb4ce5041c3deb42a0ca252ae338aa571db Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 07 12月 2019 18:13:59 +0800 Subject: [PATCH] modified cmake scripts for easy export and import --- src/library/CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt index f9c58dd..f1dd442 100644 --- a/src/library/CMakeLists.txt +++ b/src/library/CMakeLists.txt @@ -1,24 +1,41 @@ -IF(WIN32) - add_subdirectory("os/win") -ELSE(WIN32) - add_subdirectory("os/linux") -ENDIF(WIN32) -add_subdirectory("base") -add_subdirectory("ini") +add_subdirectory("base") -ADD_LIBRARY(license++_static STATIC - license++.cpp +ADD_LIBRARY(licensecc_static STATIC + licensecc.cpp LicenseReader.cpp pc-identifiers.c + limits/license_verifier.cpp + ini/ConvertUTF.c ) -target_link_libraries( - license++_static - ini - os +add_subdirectory("locate") +add_subdirectory("os") + +define_property(TARGET PROPERTY WITH_OPENSSL BRIEF_DOCS "need openssl to compile" FULL_DOCS "ff") +IF(UNIX OR OPENSSL_FOUND) + target_compile_definitions(licensecc_static PUBLIC HAS_OPENSSL) + set_target_properties(licensecc_static PROPERTIES WITH_OPENSSL 1) + if (CMAKE_VERSION VERSION_GREATER 3.5) + target_link_libraries(licensecc_static PUBLIC base OpenSSL::Crypto ${EXTERNAL_LIBS} ${CMAKE_DL_LIBS}) + #patch for old cmake in Centos 7 + ELSE(CMAKE_VERSION VERSION_GREATER 3.5) + target_link_libraries(licensecc_static PUBLIC base ${OPENSSL_CRYPTO_LIBRARY} ${EXTERNAL_LIBS} ${CMAKE_DL_LIBS}) + include_directories(${OPENSSL_INCLUDE_DIR}) + ENDIF(CMAKE_VERSION VERSION_GREATER 3.5) +ELSE(UNIX OR OPENSSL_FOUND) + set_target_properties(licensecc_static PROPERTIES WITH_OPENSSL 0) + target_link_libraries(licensecc_static ${EXTERNAL_LIBS}) +ENDIF(UNIX OR OPENSSL_FOUND) + +target_include_directories(licensecc_static + INTERFACE + $<INSTALL_INTERFACE:include/${PROJECT_NAME}> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../../include> ) -install(TARGETS license++_static ARCHIVE DESTINATION lib) -install(FILES api/datatypes.h api/license++.h DESTINATION include/api) -install(FILES base/base.h DESTINATION include/base) -install(FILES pc-identifiers.h DESTINATION include/) +add_library(licensecc::licensecc_static ALIAS licensecc_static) +install(TARGETS licensecc_static EXPORT licensecc + ARCHIVE DESTINATION ${main_lib_dest}/${LCC_PROJECT_NAME}) + +install(EXPORT licensecc NAMESPACE licensecc:: DESTINATION ${main_lib_dest}/${LCC_PROJECT_NAME}/cmake) +export(EXPORT licensecc NAMESPACE licensecc:: FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-config.cmake) -- Gitblit v1.9.1