|
|
@@ -70,14 +70,14 @@ macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp)
|
|
|
execute_process(
|
|
|
COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist}
|
|
|
OUTPUT_VARIABLE _pkgconfig_invoke_result
|
|
|
- RESULT_VARIABLE _pkgconfig_failed)
|
|
|
+ RESULT_VARIABLE _pkgconfig_failed
|
|
|
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
|
|
if (_pkgconfig_failed)
|
|
|
set(_pkgconfig_${_varname} "")
|
|
|
_pkgconfig_unset(${_prefix}_${_varname})
|
|
|
else()
|
|
|
string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
|
|
|
- string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
|
|
|
|
|
|
if (NOT ${_regexp} STREQUAL "")
|
|
|
string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}")
|
|
|
@@ -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}")
|