This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 98366c3d0b5bd189e0aee10bf8846b38f07d4ccc (commit) via 51b83f1445521a210eee7e92ed03aff8fe8e9dc6 (commit) from 7defd7c0006bbdf054c85ada3508b8bb7487da86 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=98366c3d0b5bd189e0aee10bf8846b38f07d4ccc commit 98366c3d0b5bd189e0aee10bf8846b38f07d4ccc Merge: 7defd7c 51b83f1 Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Sep 21 09:39:33 2015 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Mon Sep 21 09:39:33 2015 -0400 Merge topic 'pkg-config-variable-function' into next 51b83f14 FindPkgConfig: add a command to query arbitrary variables http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=51b83f1445521a210eee7e92ed03aff8fe8e9dc6 commit 51b83f1445521a210eee7e92ed03aff8fe8e9dc6 Author: Ben Boeckel <maths...@gmail.com> AuthorDate: Thu Sep 17 21:05:29 2015 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Sep 21 09:39:26 2015 -0400 FindPkgConfig: add a command to query arbitrary variables diff --git a/Help/release/dev/pkg-config-variable-function.rst b/Help/release/dev/pkg-config-variable-function.rst new file mode 100644 index 0000000..e181d13 --- /dev/null +++ b/Help/release/dev/pkg-config-variable-function.rst @@ -0,0 +1,6 @@ +pkg-config-variable-function +---------------------------- + +* The :module:`FindPkgConfig` learned a new :command:`pkg_get_variable` + command which may be used to query for arbitrary variables from a package + (such as for related tools or data and plugin install paths). diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 0f2e22d..e822b9c 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -91,6 +91,26 @@ macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp) endif() endmacro() +#[========================================[.rst: +.. command:: pkg_get_variable + + Retrieves the value of a variable from a package:: + + pkg_get_variable(<RESULT> <MODULE> <VARIABLE>) + + For example: + + .. code-block:: cmake + + pkg_get_variable(GI_GIRDIR gobject-introspection-1.0 girdir) +#]========================================] +function (pkg_get_variable result pkg variable) + _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}") + set("${result}" + "${prefix_result}" + PARENT_SCOPE) +endfunction () + # Invokes pkgconfig two times; once without '--static' and once with # '--static' macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) @@ -356,9 +376,9 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma endif() _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion ) - _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix ) - _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir ) - _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir ) + pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix") + pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir") + pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir") if (NOT ${_is_silent}) message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}") diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE-stdout.txt b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE-stdout.txt new file mode 100644 index 0000000..5f211eb --- /dev/null +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE-stdout.txt @@ -0,0 +1 @@ +-- g_ir_scanner: .*/g-ir-scanner diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE.cmake new file mode 100644 index 0000000..c85efaa --- /dev/null +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_GET_VARIABLE.cmake @@ -0,0 +1,9 @@ +find_package(PkgConfig REQUIRED) +pkg_check_modules(GOBJECT_INTROSPECTION QUIET gobject-introspection-1.0) + +if (GOBJECT_INTROSPECTION_FOUND) + pkg_get_variable(g_ir_scanner gobject-introspection-1.0 g_ir_scanner) + message(STATUS "g_ir_scanner: ${g_ir_scanner}") +else () + message(STATUS "g_ir_scanner: skipping test; gobject-introspection-1.0 not found /g-ir-scanner") +endif () diff --git a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake index 29301d7..bb04aa2 100644 --- a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake @@ -9,3 +9,9 @@ if(APPLE) 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) + run_cmake(FindPkgConfig_GET_VARIABLE) +endif () ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits