123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # Distributed under the OSI-approved BSD 3-Clause License.
- #[=======================================================================[.rst:
- Findlicensecc
- -------
- Find or build the licensecc library.
- Imported Targets
- ^^^^^^^^^^^^^^^^
- This module provides the following imported targets, if found:
- ``licensecc::licensecc_static``
- The licensecc static library
- If licensecc is not found this module will try to download it as a submodule
- Git must be installed.
- Input variables
- ^^^^^^^^^^^^^^^^
- ``LICENSECC_LOCATION``
- Hint for locating the licenssecc library. It may point to the installation folder or the source folder
-
- ``LCC_PROJECT_NAME``
- or specifying a component name in the component section will cause the script to search for a project (primary key...) named as specified.
- Result Variables
- ^^^^^^^^^^^^^^^^
- This will define the following variables:
- ``licensecc_FOUND``
- True if the system has the licensecc library.
- ``lcc_VERSION``
- Version of licensecc
- Optionally the module will search for OpenSSL (if LicenseCC was compiled with this option).
- Cache Variables
- ^^^^^^^^^^^^^^^
- The following cache variables will also be set:
- ]=======================================================================]
- if(LICENSECC_LOCATION)
- #maybe it's pointing to the build directory
- if(EXISTS "${LICENSECC_LOCATION}/licensecc.cmake")
- include("${LICENSECC_LOCATION}/licensecc.cmake")
- get_property(COMPILE_DEF TARGET licensecc::licensecc_static PROPERTY INTERFACE_COMPILE_DEFINITIONS)
- if("HAS_OPENSSL" IN_LIST COMPILE_DEF AND NOT OpenSSL_FOUND)
- message(VERBOSE "Trying to find openssl (required by the target)")
- SET ( OPENSSL_USE_STATIC_LIBS ON )
- find_package(OpenSSL REQUIRED COMPONENTS Crypto)
- endif()
- else()
- #pointing to source?
- if(EXISTS "${LICENSECC_LOCATION}/CMakeLists.txt")
- if(licensecc_FIND_COMPONENTS)
- set(LCC_PROJECT_NAME ${licensecc_FIND_COMPONENTS})
- endif(licensecc_FIND_COMPONENTS)
- add_subdirectory("${LICENSECC_LOCATION}" "${CMAKE_BINARY_DIR}/licensecc")
- else()
- #try find as install directory
- find_package(licensecc HINTS
- ${LICENSECC_LOCATION} ${CMAKE_CURRENT_LIST_DIR}/${LICENSECC_LOCATION} CONFIG)
- endif()
- endif()
- ELSE(LICENSECC_LOCATION)
- if(licensecc_FIND_COMPONENTS)
- find_package(licensecc COMPONENTS ${licensecc_FIND_COMPONENTS}
- PATHS ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_PREFIX} QUIET NO_MODULE)
- else(licensecc_FIND_COMPONENTS)
- find_package(licensecc PATHS ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_PREFIX} QUIET NO_MODULE)
- endif(licensecc_FIND_COMPONENTS)
- IF(NOT licensecc_FOUND)
- find_package(Git QUIET)
- if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
- # Update submodules as needed
- option(GIT_SUBMODULE "Check submodules during build" ON)
- if(GIT_SUBMODULE)
- message(STATUS "Submodule update")
- execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --checkout --remote
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- RESULT_VARIABLE GIT_SUBMOD_RESULT)
- if(NOT GIT_SUBMOD_RESULT EQUAL "0")
- set(failure_messge "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
- endif()
- endif()
- endif()
- if(NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/licensecc/CMakeLists.txt")
- set(failure_messge "All the options to find licensecc library failed. And i can't compile one from source GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
- else()
- if(licensecc_FIND_COMPONENTS)
- set(LCC_PROJECT_NAME ${licensecc_FIND_COMPONENTS})
- endif(licensecc_FIND_COMPONENTS)
- add_subdirectory("${PROJECT_SOURCE_DIR}/extern/licensecc")
- set(licensecc_FOUND TRUE)
- endif()
- ENDIF(NOT licensecc_FOUND)
- ENDIF(LICENSECC_LOCATION)
- if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
- set(licensecc_LIB "${LICENSECC_LOCATION}")
- get_filename_component(licensecc_LIB "${licensecc_LIB}" PATH)
- get_filename_component(licensecc_LIB "${licensecc_LIB}" PATH)
- set(licensecc_LIB "${licensecc_LIB}/licensecc/GJDM/licensecc_static.lib")
- endif()
|