diff --git a/CMakeLists.txt b/CMakeLists.txt index 209c02b643402d8bf187d67c1e9290bff275e733..0fce603f81ec00fe0c136b4bccfcdbba3b3c5d45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1) -project(bgslibrary) +project(bgslibrary VERSION 3.0.0) include(CheckCXXCompilerFlag) @@ -296,14 +296,52 @@ if(UNIX AND BGS_PYTHON_SUPPORT) endif() if(NOT BGS_PYTHON_ONLY) + include(GNUInstallDirs) + set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/BGSLibrary) + target_include_directories(bgslibrary_core + PUBLIC + $<INSTALL_INTERFACE:include>) + + install(TARGETS bgslibrary_core bgslibrary + EXPORT bgslibrary_core-targets RUNTIME DESTINATION bin COMPONENT app LIBRARY DESTINATION lib COMPONENT runtime ARCHIVE DESTINATION lib COMPONENT runtime #PUBLIC_HEADER DESTINATION include/bgslibrary COMPONENT dev FRAMEWORK DESTINATION "/Library/Frameworks" ) + set_target_properties(bgslibrary_core PROPERTIES EXPORT_NAME BGSLibrary) + + install(DIRECTORY src/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(EXPORT bgslibrary_core-targets + FILE + BGSLibraryTargets.cmake + NAMESPACE + BGSLibrary:: + DESTINATION + ${INSTALL_CONFIGDIR} + ) + + include(CMakePackageConfigHelpers) + write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/BGSLibraryConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion + ) + + configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake-modules/BGSLibraryConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/BGSLibraryConfig.cmake + INSTALL_DESTINATION ${INSTALL_CONFIGDIR} + ) + + install(FILES + ${CMAKE_CURRENT_LIST_DIR}/cmake-modules/FindOpenCV.cmake + ${CMAKE_CURRENT_BINARY_DIR}/BGSLibraryConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/BGSLibraryConfigVersion.cmake + DESTINATION ${INSTALL_CONFIGDIR} + ) if(UNIX) # to avoid: error while loading shared libraries: libbgslibrary_core.so diff --git a/cmake-modules/BGSLibraryConfig.cmake.in b/cmake-modules/BGSLibraryConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..bc1f73fca3c7d0f27d577eb4b01022a7e7f9ed23 --- /dev/null +++ b/cmake-modules/BGSLibraryConfig.cmake.in @@ -0,0 +1,13 @@ +get_filename_component(BGSLibrary_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(CMakeFindDependencyMacro) + +list(APPEND CMAKE_MODULE_PATH ${BGSLibrary_CMAKE_DIR}) + +find_package(OpenCV 2.3.1 REQUIRED ) +list(REMOVE_AT CMAKE_MODULE_PATH -1) + +if(NOT TARGET BGSLibrary::BGSLibrary) + include("${BGSLibrary_CMAKE_DIR}/BGSLibraryTargets.cmake") +endif() + +set(BGSLibrary_LIBRARIES BGSLibrary::BGSLibrary) \ No newline at end of file