diff options
author | Kai Pastor <dg0yt@darc.de> | 2024-08-07 18:11:41 (GMT) |
---|---|---|
committer | Kai Pastor <dg0yt@darc.de> | 2024-08-07 18:11:43 (GMT) |
commit | 25b947589a165a4bba486842dd11bfb3217b146e (patch) | |
tree | 54a33fc4700e21206c745368baae24230dbfde4c | |
parent | aa6b2180bf9926e62641871908ae059c19ddb3a3 (diff) | |
download | CMake-25b947589a165a4bba486842dd11bfb3217b146e.zip CMake-25b947589a165a4bba486842dd11bfb3217b146e.tar.gz CMake-25b947589a165a4bba486842dd11bfb3217b146e.tar.bz2 |
Modules: Guard calls to pkg_check_modules
Before calling pkg_check_modules, modules must check PKG_CONFIG_FOUND.
When FindPkgConfig.cmake is loaded, pkg_check_modules is always defined
regardless of pkg-config being present. However, the whole module might
be disabled on user request with CMAKE_DISABLE_FIND_PACKAGE_PkgConfig.
This must not break Find modules which just look for a hint or similar.
-rw-r--r-- | Modules/FindBLAS.cmake | 14 | ||||
-rw-r--r-- | Modules/FindEXPAT.cmake | 5 | ||||
-rw-r--r-- | Modules/FindFontconfig.cmake | 4 | ||||
-rw-r--r-- | Modules/FindGSL.cmake | 9 | ||||
-rw-r--r-- | Modules/FindGnuTLS.cmake | 4 | ||||
-rw-r--r-- | Modules/FindImageMagick.cmake | 4 | ||||
-rw-r--r-- | Modules/FindLAPACK.cmake | 20 | ||||
-rw-r--r-- | Modules/FindLibXml2.cmake | 4 | ||||
-rw-r--r-- | Modules/FindLibXslt.cmake | 8 | ||||
-rw-r--r-- | Modules/FindLibinput.cmake | 4 | ||||
-rw-r--r-- | Modules/FindOpenSSL.cmake | 4 |
11 files changed, 51 insertions, 29 deletions
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 2fc01d0..0bbd5a8 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -293,12 +293,14 @@ if(BLA_PREFER_PKGCONFIG) set(BLA_PKGCONFIG_BLAS "blas") endif() find_package(PkgConfig QUIET) - pkg_check_modules(PKGC_BLAS QUIET ${BLA_PKGCONFIG_BLAS}) - if(PKGC_BLAS_FOUND) - set(BLAS_FOUND ${PKGC_BLAS_FOUND}) - set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}") - _add_blas_target() - return() + if(PKG_CONFIG_FOUND) + pkg_check_modules(PKGC_BLAS QUIET ${BLA_PKGCONFIG_BLAS}) + if(PKGC_BLAS_FOUND) + set(BLAS_FOUND ${PKGC_BLAS_FOUND}) + set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}") + _add_blas_target() + return() + endif() endif() endif() diff --git a/Modules/FindEXPAT.cmake b/Modules/FindEXPAT.cmake index 04a8715..825b7a6 100644 --- a/Modules/FindEXPAT.cmake +++ b/Modules/FindEXPAT.cmake @@ -49,8 +49,9 @@ cmake_policy(PUSH) cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n> find_package(PkgConfig QUIET) - -pkg_check_modules(PC_EXPAT QUIET expat) +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_EXPAT QUIET expat) +endif() # Look for the header file. find_path(EXPAT_INCLUDE_DIR NAMES expat.h HINTS ${PC_EXPAT_INCLUDE_DIRS}) diff --git a/Modules/FindFontconfig.cmake b/Modules/FindFontconfig.cmake index 9cce952..1cd84c1 100644 --- a/Modules/FindFontconfig.cmake +++ b/Modules/FindFontconfig.cmake @@ -40,7 +40,9 @@ cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n> # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig QUIET) -pkg_check_modules(PKG_FONTCONFIG QUIET fontconfig) +if(PKG_CONFIG_FOUND) + pkg_check_modules(PKG_FONTCONFIG QUIET fontconfig) +endif() set(Fontconfig_COMPILE_OPTIONS ${PKG_FONTCONFIG_CFLAGS_OTHER}) set(Fontconfig_VERSION ${PKG_FONTCONFIG_VERSION}) diff --git a/Modules/FindGSL.cmake b/Modules/FindGSL.cmake index e9d8109..3bb9272 100644 --- a/Modules/FindGSL.cmake +++ b/Modules/FindGSL.cmake @@ -81,10 +81,11 @@ endif() # This will return ``GSL_INCLUDEDIR`` and ``GSL_LIBDIR`` used below. if( GSL_USE_PKGCONFIG ) find_package(PkgConfig QUIET) - pkg_check_modules( GSL QUIET gsl ) - - if( EXISTS "${GSL_INCLUDEDIR}" ) - get_filename_component( GSL_ROOT_DIR "${GSL_INCLUDEDIR}" DIRECTORY CACHE) + if(PKG_CONFIG_FOUND) + pkg_check_modules( GSL QUIET gsl ) + if( EXISTS "${GSL_INCLUDEDIR}" ) + get_filename_component( GSL_ROOT_DIR "${GSL_INCLUDEDIR}" DIRECTORY CACHE) + endif() endif() endif() diff --git a/Modules/FindGnuTLS.cmake b/Modules/FindGnuTLS.cmake index 782a72b..e4c42f3 100644 --- a/Modules/FindGnuTLS.cmake +++ b/Modules/FindGnuTLS.cmake @@ -43,7 +43,9 @@ if (NOT WIN32) # in the find_path() and find_library() calls # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful find_package(PkgConfig QUIET) - PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) + if(PKG_CONFIG_FOUND) + PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) + endif() set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER}) set(GNUTLS_VERSION ${PC_GNUTLS_VERSION}) # keep for backward compatibility diff --git a/Modules/FindImageMagick.cmake b/Modules/FindImageMagick.cmake index 50f6e46..66e65ad 100644 --- a/Modules/FindImageMagick.cmake +++ b/Modules/FindImageMagick.cmake @@ -115,7 +115,9 @@ find_package(PkgConfig QUIET) function(FIND_IMAGEMAGICK_API component header) set(ImageMagick_${component}_FOUND FALSE PARENT_SCOPE) - pkg_check_modules(PC_${component} QUIET ${component}) + if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_${component} QUIET ${component}) + endif() find_path(ImageMagick_${component}_INCLUDE_DIR NAMES ${header} diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index bbf25b6..b237a90 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -289,15 +289,17 @@ if(BLA_PREFER_PKGCONFIG) set(BLA_PKGCONFIG_LAPACK "lapack") endif() find_package(PkgConfig QUIET) - pkg_check_modules(PKGC_LAPACK QUIET ${BLA_PKGCONFIG_LAPACK}) - if(PKGC_LAPACK_FOUND) - set(LAPACK_FOUND TRUE) - set(LAPACK_LIBRARIES "${PKGC_LAPACK_LINK_LIBRARIES}") - if (BLAS_LIBRARIES) - list(APPEND LAPACK_LIBRARIES "${BLAS_LIBRARIES}") - endif() - _add_lapack_target() - return() + if(PKG_CONFIG_FOUND) + pkg_check_modules(PKGC_LAPACK QUIET ${BLA_PKGCONFIG_LAPACK}) + if(PKGC_LAPACK_FOUND) + set(LAPACK_FOUND TRUE) + set(LAPACK_LIBRARIES "${PKGC_LAPACK_LINK_LIBRARIES}") + if (BLAS_LIBRARIES) + list(APPEND LAPACK_LIBRARIES "${BLAS_LIBRARIES}") + endif() + _add_lapack_target() + return() + endif() endif() endif() diff --git a/Modules/FindLibXml2.cmake b/Modules/FindLibXml2.cmake index 1c5f9be..cc2d630 100644 --- a/Modules/FindLibXml2.cmake +++ b/Modules/FindLibXml2.cmake @@ -58,7 +58,9 @@ cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n> # use pkg-config to get the directories and then use these values # in the find_path() and find_library() calls find_package(PkgConfig QUIET) -PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0) +if(PKG_CONFIG_FOUND) + PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0) +endif() find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h HINTS diff --git a/Modules/FindLibXslt.cmake b/Modules/FindLibXslt.cmake index 1154ae1..11d12cb 100644 --- a/Modules/FindLibXslt.cmake +++ b/Modules/FindLibXslt.cmake @@ -51,7 +51,9 @@ cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n> # use pkg-config to get the directories and then use these values # in the find_path() and find_library() calls find_package(PkgConfig QUIET) -PKG_CHECK_MODULES(PC_LIBXSLT QUIET libxslt) +if(PKG_CONFIG_FOUND) + PKG_CHECK_MODULES(PC_LIBXSLT QUIET libxslt) +endif() set(LIBXSLT_DEFINITIONS ${PC_LIBXSLT_CFLAGS_OTHER}) find_path(LIBXSLT_INCLUDE_DIR NAMES libxslt/xslt.h @@ -75,7 +77,9 @@ find_library(LIBXSLT_LIBRARY NAMES xslt libxslt set(LIBXSLT_LIBRARIES ${LIBXSLT_LIBRARY}) -PKG_CHECK_MODULES(PC_LIBXSLT_EXSLT QUIET libexslt) +if(PKG_CONFIG_FOUND) + PKG_CHECK_MODULES(PC_LIBXSLT_EXSLT QUIET libexslt) +endif() set(LIBXSLT_EXSLT_DEFINITIONS ${PC_LIBXSLT_EXSLT_CFLAGS_OTHER}) find_path(LIBXSLT_EXSLT_INCLUDE_DIR NAMES libexslt/exslt.h diff --git a/Modules/FindLibinput.cmake b/Modules/FindLibinput.cmake index 88d5b2f..291d828 100644 --- a/Modules/FindLibinput.cmake +++ b/Modules/FindLibinput.cmake @@ -38,7 +38,9 @@ This will define the following variables in your project: # Use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig QUIET) -pkg_check_modules(PKG_Libinput QUIET libinput) +if(PKG_CONFIG_FOUND) + pkg_check_modules(PKG_Libinput QUIET libinput) +endif() set(Libinput_COMPILE_OPTIONS ${PKG_Libinput_CFLAGS_OTHER}) set(Libinput_VERSION ${PKG_Libinput_VERSION}) diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake index 01b18f3..33a0765 100644 --- a/Modules/FindOpenSSL.cmake +++ b/Modules/FindOpenSSL.cmake @@ -207,7 +207,9 @@ endfunction() if (UNIX) find_package(PkgConfig QUIET) - pkg_check_modules(_OPENSSL QUIET openssl) + if(PKG_CONFIG_FOUND) + pkg_check_modules(_OPENSSL QUIET openssl) + endif() endif () # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES |