| include(RunCMake) |
| |
| # Isolate test cases from caller's environment. |
| set(ENV{CMAKE_PREFIX_PATH} "") |
| set(ENV{CMAKE_APPBUNDLE_PATH} "") |
| set(ENV{CMAKE_FRAMEWORK_PATH} "") |
| |
| run_cmake(PkgConfigDoesNotExist) |
| |
| if(NOT WIN32) |
| # FIXME: The Windows implementation of these tests do not work. |
| # They are disabled until they can be updated to a working state. |
| run_cmake(FindPkgConfig_CMP0126_NEW) |
| run_cmake(FindPkgConfig_NO_PKGCONFIG_PATH) |
| run_cmake(FindPkgConfig_PKGCONFIG_PATH) |
| run_cmake(FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH) |
| run_cmake(FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH) |
| run_cmake(FindPkgConfig_GET_MATCHING_ARGN) |
| endif() |
| |
| run_cmake(FindPkgConfig_extract_frameworks) |
| |
| if(APPLE) |
| run_cmake(FindPkgConfig_extract_frameworks_target) |
| run_cmake(FindPkgConfig_CMAKE_FRAMEWORK_PATH) |
| run_cmake(FindPkgConfig_CMAKE_APPBUNDLE_PATH) |
| endif() |
| |
| # We need a real pkg-config to run the test for get_variable. |
| find_package(PkgConfig) |
| if (PKG_CONFIG_FOUND) |
| string(FIND "${CMAKE_CURRENT_BINARY_DIR}" " " IS_SPACES_IN_PATH) |
| if(IS_SPACES_IN_PATH GREATER -1) |
| string(REPLACE " " "\\ " ESCAPED_ROOT "${CMAKE_CURRENT_BINARY_DIR}") |
| file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_spaces.pc" " |
| libdir=${ESCAPED_ROOT} |
| Name: test_spaces.pc |
| Version: 0.0 |
| Description: test spaces |
| Libs: -L\${libdir} |
| ") |
| set(PKG_CONFIG_PATH_SAVED "$ENV{PKG_CONFIG_PATH}") |
| set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_BINARY_DIR}") |
| execute_process(COMMAND "${PKG_CONFIG_EXECUTABLE}" --libs test_spaces |
| ERROR_QUIET COMMAND_ERROR_IS_FATAL ANY |
| OUTPUT_VARIABLE test_spaces_LIBS) |
| set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH_SAVED}") |
| string(STRIP "${test_spaces_LIBS}" test_spaces_LIBS_STRIPPED) |
| if(NOT "${test_spaces_LIBS_STRIPPED}" STREQUAL "-L${ESCAPED_ROOT}") |
| set(PKG_CONFIG_DONT_SUPPORT_SPACES_IN_PATH TRUE) |
| endif() |
| endif() |
| run_cmake(FindPkgConfig_GET_VARIABLE) |
| run_cmake(FindPkgConfig_GET_VARIABLE_DEFINE_VARIABLES) |
| run_cmake(FindPkgConfig_GET_VARIABLE_PREFIX_PATH) |
| run_cmake(FindPkgConfig_GET_VARIABLE_PKGCONFIG_PATH) |
| run_cmake(FindPkgConfig_cache_variables) |
| run_cmake(FindPkgConfig_IMPORTED_TARGET) |
| run_cmake(FindPkgConfig_VERSION_OPERATORS) |
| run_cmake(FindPkgConfig_GET_MATCHING_MODULE_NAME) |
| run_cmake(FindPkgConfig_empty_target) |
| if(NOT PKG_CONFIG_DONT_SUPPORT_SPACES_IN_PATH) |
| run_cmake(FindPkgConfig_SYSTEM_PATH) |
| endif() |
| endif () |