Merge topic 'FindPkgConfig-system-cflags'
252c66c697
FindPkgConfig: Tolerate PKG_CONFIG_SYSTEM_INCLUDE_PATH in environment4507883135
Tests: Rename RunCMake.FindPkgConfig LIBRARY_PATH case to SYSTEM_PATH Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8768
This commit is contained in:
commit
1c5e4b60b1
@ -425,13 +425,19 @@ macro(_pkg_set_path_internal)
|
||||
unset(_pkgconfig_path)
|
||||
endif()
|
||||
|
||||
# Tell pkg-config not to strip any -L paths so we can search them all.
|
||||
# Tell pkg-config not to strip any -I or -L paths so we can search them all.
|
||||
if(DEFINED ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS})
|
||||
set(_pkgconfig_allow_system_libs_old "$ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS}")
|
||||
else()
|
||||
unset(_pkgconfig_allow_system_libs_old)
|
||||
endif()
|
||||
set(ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS} 1)
|
||||
if(DEFINED ENV{PKG_CONFIG_ALLOW_SYSTEM_CFLAGS})
|
||||
set(_pkgconfig_allow_system_cflags_old "$ENV{PKG_CONFIG_ALLOW_SYSTEM_CFLAGS}")
|
||||
else()
|
||||
unset(_pkgconfig_allow_system_cflags_old)
|
||||
endif()
|
||||
set(ENV{PKG_CONFIG_ALLOW_SYSTEM_CFLAGS} 1)
|
||||
endmacro()
|
||||
|
||||
macro(_pkg_restore_path_internal)
|
||||
@ -445,6 +451,12 @@ macro(_pkg_restore_path_internal)
|
||||
else()
|
||||
unset(ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS})
|
||||
endif()
|
||||
if(DEFINED _pkgconfig_allow_system_cflags_old)
|
||||
set(ENV{PKG_CONFIG_ALLOW_SYSTEM_CFLAGS} "${_pkgconfig_allow_system_cflags_old}")
|
||||
unset(_pkgconfig_allow_system_cflags_old)
|
||||
else()
|
||||
unset(ENV{PKG_CONFIG_ALLOW_SYSTEM_CFLAGS})
|
||||
endif()
|
||||
|
||||
unset(_extra_paths)
|
||||
unset(_pkgconfig_path_old)
|
||||
|
@ -1,3 +0,0 @@
|
||||
-- ZOT_LIBRARIES='zot'
|
||||
-- ZOT_LINK_LIBRARIES='[^']*/Tests/RunCMake/FindPkgConfig/FindPkgConfig_LIBRARY_PATH-build/root/lib/prefix-zot-suffix'
|
||||
-- ZOT_LDFLAGS='-L[^']*/Tests/RunCMake/FindPkgConfig/FindPkgConfig_LIBRARY_PATH-build/root/lib;-lzot'
|
@ -0,0 +1,4 @@
|
||||
-- ZOT_LIBRARIES='zot'
|
||||
-- ZOT_LINK_LIBRARIES='[^']*/Tests/RunCMake/FindPkgConfig/FindPkgConfig_SYSTEM_PATH-build/root/lib/prefix-zot-suffix'
|
||||
-- ZOT_LDFLAGS='-L[^']*/Tests/RunCMake/FindPkgConfig/FindPkgConfig_SYSTEM_PATH-build/root/lib;-lzot'
|
||||
-- ZOT_CFLAGS='-I[^']*/Tests/RunCMake/FindPkgConfig/FindPkgConfig_SYSTEM_PATH-build/root/include'
|
@ -3,16 +3,19 @@ find_package(PkgConfig REQUIRED)
|
||||
set(ROOT "${CMAKE_CURRENT_BINARY_DIR}/root")
|
||||
string(REPLACE " " "\\ " ESCAPED_ROOT "${ROOT}")
|
||||
set(LIB_DIR "${ROOT}/lib")
|
||||
set(INCLUDE_DIR "${ROOT}/include")
|
||||
set(PKGCONFIG_DIR "${LIB_DIR}/pkgconfig")
|
||||
|
||||
file(WRITE "${PKGCONFIG_DIR}/zot.pc" "
|
||||
prefix=${ESCAPED_ROOT}
|
||||
libdir=\${prefix}/lib
|
||||
includedir=\${prefix}/include
|
||||
|
||||
Name: Zot
|
||||
Description: Dummy package to test LIBRARY_DIR support
|
||||
Version: 1.0
|
||||
Libs: -L\${libdir} -lzot
|
||||
Cflags: -I\${includedir}
|
||||
")
|
||||
|
||||
# Create a "library" file to find in libdir.
|
||||
@ -22,9 +25,13 @@ file(WRITE "${LIB_DIR}/prefix-zot-suffix")
|
||||
|
||||
# 'pkg-config --libs' drops -L flags in PKG_CONFIG_SYSTEM_LIBRARY_PATH by default.
|
||||
set(ENV{PKG_CONFIG_SYSTEM_LIBRARY_PATH} "${LIB_DIR}")
|
||||
# 'pkg-config --cflags' drops -I flags in PKG_CONFIG_SYSTEM_INCLUDE_PATH by default.
|
||||
set(ENV{PKG_CONFIG_SYSTEM_INCLUDE_PATH} "${INCLUDE_DIR}")
|
||||
|
||||
# 'pkgconf --libs' also drops -L flags in LIBRARY_PATH by default.
|
||||
set(ENV{LIBRARY_PATH} "${LIB_DIR}")
|
||||
# 'pkgconf --cflags' also drops -I flags in CPATH by default.
|
||||
set(ENV{CPATH} "${INCLUDE_DIR}")
|
||||
|
||||
set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_DIR}")
|
||||
pkg_check_modules(ZOT REQUIRED zot)
|
||||
@ -32,3 +39,4 @@ pkg_check_modules(ZOT REQUIRED zot)
|
||||
message(STATUS "ZOT_LIBRARIES='${ZOT_LIBRARIES}'")
|
||||
message(STATUS "ZOT_LINK_LIBRARIES='${ZOT_LINK_LIBRARIES}'")
|
||||
message(STATUS "ZOT_LDFLAGS='${ZOT_LDFLAGS}'")
|
||||
message(STATUS "ZOT_CFLAGS='${ZOT_CFLAGS}'")
|
@ -59,6 +59,6 @@ Libs: -L\${libdir}
|
||||
run_cmake(FindPkgConfig_GET_MATCHING_MODULE_NAME)
|
||||
run_cmake(FindPkgConfig_empty_target)
|
||||
if(NOT PKG_CONFIG_DONT_SUPPORT_SPACES_IN_PATH)
|
||||
run_cmake(FindPkgConfig_LIBRARY_PATH)
|
||||
run_cmake(FindPkgConfig_SYSTEM_PATH)
|
||||
endif()
|
||||
endif ()
|
||||
|
Loading…
Reference in New Issue
Block a user