diff options
author | Brad King <brad.king@kitware.com> | 2024-04-23 11:55:00 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-04-23 11:55:17 (GMT) |
commit | 3d8d13f4bc8fb0f27f95b20ba6c949b3fe5806bc (patch) | |
tree | 47ae36ba5de107b0b9310ef8546e60b7827f2c10 /Tests | |
parent | d41252c91fd9d7c8fb95b7202adca278524780da (diff) | |
parent | 9ddef32ba0ee22bf26fcc9669d9e7c49df64691a (diff) | |
download | CMake-3d8d13f4bc8fb0f27f95b20ba6c949b3fe5806bc.zip CMake-3d8d13f4bc8fb0f27f95b20ba6c949b3fe5806bc.tar.gz CMake-3d8d13f4bc8fb0f27f95b20ba6c949b3fe5806bc.tar.bz2 |
Merge topic 'pkg_get_variable-list'
9ddef32ba0 FindPkgConfig: Fix parsing of quoted lists with pkgconf <1.5.1
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9447
Diffstat (limited to 'Tests')
3 files changed, 35 insertions, 1 deletions
diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE_MULTIPLE_VALUES.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE_MULTIPLE_VALUES.cmake new file mode 100644 index 0000000..19ee908 --- /dev/null +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE_MULTIPLE_VALUES.cmake @@ -0,0 +1,31 @@ +# Prepare environment and variables +set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE) +if(WIN32) + set(ENV{CMAKE_PREFIX_PATH} "${CMAKE_CURRENT_SOURCE_DIR}\\pc-bletch") +else() + set(ENV{CMAKE_PREFIX_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/pc-bletch") +endif() + +find_package(PkgConfig REQUIRED) +pkg_check_modules(BLETCH QUIET bletch) + +if (NOT BLETCH_FOUND) + message(FATAL_ERROR "Failed to find embedded package bletch via CMAKE_PREFIX_PATH") +endif () + +set(expected_value "item1;item2;item3;item with spaces") +pkg_get_variable(bletchvar1 bletch multiple_values1) +pkg_get_variable(bletchvar2 bletch multiple_values2) + +string(FIND "${bletchvar1}" ";" IS_VARIABLE_A_LIST1) +string(FIND "${bletchvar2}" ";" IS_VARIABLE_A_LIST2) + +if (IS_VARIABLE_A_LIST1 EQUAL -1 OR IS_VARIABLE_A_LIST2 EQUAL -1) + message(FATAL_ERROR "Failed to fetch variable multiple_values from embedded package bletch as a list") +endif() + +if (NOT (bletchvar1 STREQUAL expected_value AND bletchvar2 STREQUAL expected_value)) + message(NOTICE "multiple_values1=${bletchvar1} and expected_value=${expected_value}") + message(NOTICE "multiple_values2=${bletchvar2} and expected_value=${expected_value}") + message(FATAL_ERROR "Failed to fetch variable multiple_values from embedded package bletch with escaped spaces") +endif() diff --git a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake index 7af425a..3466636 100644 --- a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake @@ -54,6 +54,7 @@ Libs: -L\${libdir} run_cmake(FindPkgConfig_GET_VARIABLE_DEFINE_VARIABLES) run_cmake(FindPkgConfig_GET_VARIABLE_PREFIX_PATH) run_cmake(FindPkgConfig_GET_VARIABLE_PKGCONFIG_PATH) + run_cmake(FindPkgConfig_GET_VARIABLE_MULTIPLE_VALUES) run_cmake(FindPkgConfig_cache_variables) run_cmake(FindPkgConfig_IMPORTED_TARGET) run_cmake(FindPkgConfig_VERSION_OPERATORS) diff --git a/Tests/RunCMake/FindPkgConfig/pc-bletch/lib/pkgconfig/bletch.pc b/Tests/RunCMake/FindPkgConfig/pc-bletch/lib/pkgconfig/bletch.pc index 04d2c1b..87c3613 100644 --- a/Tests/RunCMake/FindPkgConfig/pc-bletch/lib/pkgconfig/bletch.pc +++ b/Tests/RunCMake/FindPkgConfig/pc-bletch/lib/pkgconfig/bletch.pc @@ -4,9 +4,11 @@ libdir=${exec_prefix}/lib includedir=${prefix}/include jackpot=bletch-lives +multiple_values1="item1 item2 item3 item\ with\ spaces" +multiple_values2='item1 item2 item3 item\ with\ spaces' Name: Bletch -Description: Dummy packaget to test variable support +Description: Dummy package to test variable support Version: 1.0 Libs: -L${libdir} -lbletch Cflags: -Dbletch_version=1 |