diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-09-25 13:55:42 (GMT) |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-09-25 13:56:05 (GMT) |
commit | ab8bd48352df060c4ead210fe30dc4736646206b (patch) | |
tree | 026caa5c5bdfc5be85025d5d85cb6c85381cafa7 /Modules/FindPkgConfig.cmake | |
parent | 3201dd521e1b816dca9caba8792b5a5890546d1c (diff) | |
download | CMake-ab8bd48352df060c4ead210fe30dc4736646206b.zip CMake-ab8bd48352df060c4ead210fe30dc4736646206b.tar.gz CMake-ab8bd48352df060c4ead210fe30dc4736646206b.tar.bz2 |
FindPkgConfig: Search for pkg-config.bat file on a Windows host
The strawberry perl distribution ships a pkg-config file and a
pkg-config.bat file.
find_program() does not usually look for a .bat file program unless
explicitly specified in the NAMES argument. This would cause
CMake to find the non-bat file, and executing that with
execute_process() leads to a
'%1 is not a valid Win32 application' error.
Prefer to search for pkg-config.bat file when on a Windows host, in
additiona to the regular pkg-config file.
Fixes: #21239
Diffstat (limited to 'Modules/FindPkgConfig.cmake')
-rw-r--r-- | Modules/FindPkgConfig.cmake | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 6294a4c..2ad2c7e 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -31,7 +31,13 @@ set(PKG_CONFIG_VERSION 1) if((NOT PKG_CONFIG_EXECUTABLE) AND (NOT "$ENV{PKG_CONFIG}" STREQUAL "")) set(PKG_CONFIG_EXECUTABLE "$ENV{PKG_CONFIG}" CACHE FILEPATH "pkg-config executable") endif() -find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable") + +set(PKG_CONFIG_NAMES "pkg-config") +if(CMAKE_HOST_WIN32) + list(PREPEND PKG_CONFIG_NAMES "pkg-config.bat") +endif() + +find_program(PKG_CONFIG_EXECUTABLE NAMES ${PKG_CONFIG_NAMES} DOC "pkg-config executable") mark_as_advanced(PKG_CONFIG_EXECUTABLE) set(_PKG_CONFIG_FAILURE_MESSAGE "") |