diff options
author | Brad King <brad.king@kitware.com> | 2023-01-23 15:35:43 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-01-23 15:35:52 (GMT) |
commit | f07fdb250cf2d12b6106b77c4f7f0055c60019a7 (patch) | |
tree | b31b8f42f8df16194ed10e4d4b476367d106b6f0 /Modules | |
parent | f4d604f77f5837fc7671fddc26974c626dea8bea (diff) | |
parent | 3b1c19f00a0973d1d70e823cf54a9047d20cb80a (diff) | |
download | CMake-f07fdb250cf2d12b6106b77c4f7f0055c60019a7.zip CMake-f07fdb250cf2d12b6106b77c4f7f0055c60019a7.tar.gz CMake-f07fdb250cf2d12b6106b77c4f7f0055c60019a7.tar.bz2 |
Merge topic 'FindOpenSP-pkg-config-hints'
3b1c19f00a FindOpenSP: Use pkg-config only as hints for main code path
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8097
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindOpenSP.cmake | 73 |
1 files changed, 39 insertions, 34 deletions
diff --git a/Modules/FindOpenSP.cmake b/Modules/FindOpenSP.cmake index 655dd65..25d0e6f 100644 --- a/Modules/FindOpenSP.cmake +++ b/Modules/FindOpenSP.cmake @@ -63,24 +63,17 @@ The following cache variables may also be set: #]=======================================================================] -if (NOT OpenSP_INCLUDE_DIR AND NOT OpenSP_LIBRARY) - find_package(PkgConfig) - if (PkgConfig_FOUND) - pkg_check_modules(OpenSP IMPORTED_TARGET GLOBAL opensp) - - if (OpenSP_FOUND) - add_library(OpenSP::OpenSP INTERFACE IMPORTED) - target_link_libraries(OpenSP::OpenSP INTERFACE PkgConfig::OpenSP) - - set(OpenSP_INCLUDE_DIR ${OpenSP_INCLUDE_DIRS}) - set(OpenSP_LIBRARY ${OpenSP_LIBRARIES}) - endif () - endif () +find_package(PkgConfig QUIET) +if (PkgConfig_FOUND) + pkg_check_modules(PC_OpenSP QUIET opensp) endif () if (NOT OpenSP_INCLUDE_DIR) find_path(OpenSP_INCLUDE_DIR NAMES ParserEventGeneratorKit.h + HINTS + ${PC_OpenSP_INCLUDEDIRS} + ${PC_OpenSP_INCLUDE_DIRS} PATH_SUFFIXES OpenSP opensp DOC "The OpenSP include directory" ) @@ -89,17 +82,23 @@ endif () if (NOT OpenSP_LIBRARY) find_library(OpenSP_LIBRARY_RELEASE NAMES osp libosp opensp libopensp sp133 libsp + HINTS + ${PC_OpenSP_LIBDIR} + ${PC_OpenSP_LIBRARY_DIRS} ) find_library(OpenSP_LIBRARY_DEBUG NAMES ospd libospd openspd libopenspd sp133d libspd + HINTS + ${PC_OpenSP_LIBDIR} + ${PC_OpenSP_LIBRARY_DIRS} ) include(SelectLibraryConfigurations) select_library_configurations(OpenSP) endif () -if (OpenSP_INCLUDE_DIR AND OpenSP_LIBRARY) +if (OpenSP_INCLUDE_DIR) if (EXISTS "${OpenSP_INCLUDE_DIR}/config.h") if (NOT OpenSP_VERSION) file(STRINGS "${OpenSP_INCLUDE_DIR}/config.h" opensp_version_str REGEX "^#define[\t ]+SP_VERSION[\t ]+\".*\"") @@ -116,38 +115,44 @@ if (OpenSP_INCLUDE_DIR AND OpenSP_LIBRARY) include(CheckCXXSymbolExists) check_cxx_symbol_exists(SP_MULTI_BYTE "${OpenSP_INCLUDE_DIR}/config.h" OpenSP_MULTI_BYTE) endif () +endif () - if (NOT TARGET OpenSP::OpenSP) - set(OpenSP_INCLUDE_DIRS ${OpenSP_INCLUDE_DIR}) +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(OpenSP + FOUND_VAR OpenSP_FOUND + REQUIRED_VARS OpenSP_LIBRARY OpenSP_INCLUDE_DIR + VERSION_VAR OpenSP_VERSION + ) + +mark_as_advanced(OpenSP_INCLUDE_DIR OpenSP_LIBRARY OpenSP_MULTI_BYTE) +if (OpenSP_FOUND) + set(OpenSP_INCLUDE_DIRS ${OpenSP_INCLUDE_DIR}) + if (NOT TARGET OpenSP::OpenSP) add_library(OpenSP::OpenSP UNKNOWN IMPORTED) - set_target_properties(OpenSP::OpenSP PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OpenSP_INCLUDE_DIRS}") + if (EXISTS "${OpenSP_LIBRARY}") + set_target_properties(OpenSP::OpenSP PROPERTIES + IMPORTED_LOCATION "${OpenSP_LIBRARY}") + endif () + set_target_properties(OpenSP::OpenSP PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${OpenSP_INCLUDE_DIRS}") if (OpenSP_LIBRARY_RELEASE) - set_target_properties(OpenSP::OpenSP PROPERTIES IMPORTED_LOCATION_RELEASE "${OpenSP_LIBRARY_RELEASE}") - set_property(TARGET OpenSP::OpenSP APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(OpenSP::OpenSP PROPERTIES + IMPORTED_LOCATION_RELEASE "${OpenSP_LIBRARY_RELEASE}") + set_property(TARGET OpenSP::OpenSP APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) endif () if (OpenSP_LIBRARY_DEBUG) - set_target_properties(OpenSP::OpenSP PROPERTIES IMPORTED_LOCATION_DEBUG "${OpenSP_LIBRARY_DEBUG}") - set_property(TARGET OpenSP::OpenSP APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - endif () - - if (NOT OpenSP_LIBRARY_RELEASE AND NOT OpenSP_LIBRARY_DEBUG) - set_property(TARGET OpenSP::OpenSP APPEND PROPERTY IMPORTED_LOCATION "${OpenSP_LIBRARY}") + set_target_properties(OpenSP::OpenSP PROPERTIES + IMPORTED_LOCATION_DEBUG "${OpenSP_LIBRARY_DEBUG}") + set_property(TARGET OpenSP::OpenSP APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) endif () endif () endif () -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(OpenSP - FOUND_VAR OpenSP_FOUND - REQUIRED_VARS OpenSP_LIBRARY OpenSP_INCLUDE_DIR - VERSION_VAR OpenSP_VERSION - ) - -mark_as_advanced(OpenSP_INCLUDE_DIR OpenSP_LIBRARY OpenSP_MULTI_BYTE) - include(FeatureSummary) set_package_properties(OpenSP PROPERTIES URL "http://openjade.sourceforge.net/doc/index.htm" |