diff --git a/CMakeLists.txt b/CMakeLists.txt index e12e5c282d..43628ec815 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -370,12 +370,17 @@ configure_file( configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/vs2010/tesseract/libtesseract.rc.in ${CMAKE_CURRENT_BINARY_DIR}/vs2010/tesseract/libtesseract.rc @ONLY) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/TesseractConfig-version.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/TesseractConfig-version.cmake @ONLY) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/TesseractConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cmake/TesseractConfig.cmake @ONLY) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + cmake/templates/TesseractConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/cmake/TesseractConfig.cmake + INSTALL_DESTINATION lib/tesseract/cmake + PATH_VARS INCLUDE_DIR) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/cmake/TesseractConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY SameMajorVersion) # show summary of configuration if(${CMAKE_BUILD_TYPE} MATCHES Debug) @@ -652,13 +657,13 @@ if (SW_BUILD) org.sw.demo.libarchive.libarchive ) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/TesseractTargets.cmake "include(${CMAKE_CURRENT_BINARY_DIR}/cppan.cmake)\n") - export(TARGETS libtesseract APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/TesseractTargets.cmake) + export(TARGETS libtesseract APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/TesseractTargets.cmake NAMESPACE Tesseract::) else() target_link_libraries (libtesseract PUBLIC ${Leptonica_LIBRARIES} ${LibArchive_LIBRARIES} ) - export(TARGETS libtesseract FILE ${CMAKE_CURRENT_BINARY_DIR}/TesseractTargets.cmake) + export(TARGETS libtesseract FILE ${CMAKE_CURRENT_BINARY_DIR}/TesseractTargets.cmake NAMESPACE Tesseract::) endif() if (WIN32 AND CLANG AND OPENMP_BUILD) @@ -703,7 +708,7 @@ configure_file(tesseract.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/tesseract.pc @ONLY install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tesseract.pc DESTINATION lib/pkgconfig) install(TARGETS tesseract RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(TARGETS libtesseract EXPORT TesseractTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -install(EXPORT TesseractTargets DESTINATION lib/tesseract) +install(EXPORT TesseractTargets NAMESPACE Tesseract:: DESTINATION lib/cmake/tesseract) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cmake DESTINATION lib) install(FILES diff --git a/cmake/templates/TesseractConfig-version.cmake.in b/cmake/templates/TesseractConfig-version.cmake.in deleted file mode 100644 index d3f85dffc0..0000000000 --- a/cmake/templates/TesseractConfig-version.cmake.in +++ /dev/null @@ -1,14 +0,0 @@ -set(Tesseract_VERSION @VERSION_PLAIN@) -set(PACKAGE_VERSION ${Tesseract_VERSION}) - -set(PACKAGE_VERSION_EXACT False) -set(PACKAGE_VERSION_COMPATIBLE False) - -if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT True) - set(PACKAGE_VERSION_COMPATIBLE True) -endif() - -if(PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION) - set(PACKAGE_VERSION_COMPATIBLE True) -endif() diff --git a/cmake/templates/TesseractConfig.cmake.in b/cmake/templates/TesseractConfig.cmake.in index 32b93db488..2d930391c4 100644 --- a/cmake/templates/TesseractConfig.cmake.in +++ b/cmake/templates/TesseractConfig.cmake.in @@ -7,15 +7,11 @@ # In your CMakeLists.txt, add these lines: # # find_package(Tesseract REQUIRED) -# include_directories(${Tesseract_INCLUDE_DIRS}) -# target_link_libraries(MY_TARGET_NAME ${Tesseract_LIBRARIES}) +# target_link_libraries(MY_TARGET_NAME Tesseract::libtesseract) # # This file will define the following variables: # - Tesseract_LIBRARIES : The list of all imported targets for OpenCV modules. # - Tesseract_INCLUDE_DIRS : The Tesseract include directories. -# - Tesseract_VERSION : The version of this Tesseract build: "@VERSION_PLAIN@" -# - Tesseract_VERSION_MAJOR : Major version part of Tesseract_VERSION: "@VERSION_MAJOR@" -# - Tesseract_VERSION_MINOR : Minor version part of Tesseract_VERSION: "@VERSION_MINOR@" # # =================================================================================== @@ -23,23 +19,9 @@ include(${CMAKE_CURRENT_LIST_DIR}/TesseractTargets.cmake) find_package(Leptonica REQUIRED) -# ====================================================== -# Version variables: -# ====================================================== - -SET(Tesseract_VERSION @VERSION_PLAIN@) -SET(Tesseract_VERSION_MAJOR @VERSION_MAJOR@) -SET(Tesseract_VERSION_MINOR @VERSION_MINOR@) - -# ====================================================== -# Include directories to add to the user project: -# ====================================================== - -# Provide the include directories to the caller -set(Tesseract_INCLUDE_DIRS @INCLUDE_DIR@) - -# ==================================================================== -# Link libraries: -# ==================================================================== +@PACKAGE_INIT@ +set_and_check(Tesseract_INCLUDE_DIR "@PACKAGE_INCLUDE_DIR@") set(Tesseract_LIBRARIES libtesseract) + +check_required_components(Tesseract)