summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2015-03-26 15:59:22 +0100
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2015-03-26 15:59:22 +0100
commitc24491c2c916220648802e5e711e923c7685ee9d (patch)
treeae362a7b7d8de6f343ad288f2821a0881b714b60 /cmake
parented1f4eb5c9dc1ae02d95034551bf6640b393e754 (diff)
downloaduca-c24491c2c916220648802e5e711e923c7685ee9d.tar.gz
uca-c24491c2c916220648802e5e711e923c7685ee9d.tar.bz2
uca-c24491c2c916220648802e5e711e923c7685ee9d.tar.xz
uca-c24491c2c916220648802e5e711e923c7685ee9d.zip
Use pkg-config to determine GI support
Diffstat (limited to 'cmake')
-rw-r--r--cmake/PkgConfigVars.cmake30
1 files changed, 30 insertions, 0 deletions
diff --git a/cmake/PkgConfigVars.cmake b/cmake/PkgConfigVars.cmake
new file mode 100644
index 0000000..f295457
--- /dev/null
+++ b/cmake/PkgConfigVars.cmake
@@ -0,0 +1,30 @@
+# - determine variables defined in pkg-config files
+#
+# Usage:
+# pkg_check_variable(<PKG_NAME> <VARIABLE_NAME>)
+#
+# Checks for a variable in the given package and translates to a call such as
+# `pkg-config --variable=<VARIABLE_NAME> <PKG_NAME>`. The output is a cached
+# variable named
+#
+# <PKG_NAME>_<VARIABLE_NAME>
+#
+# Note that both names are uppercased and any dashes replaced by underscores.
+#
+
+find_package(PkgConfig REQUIRED)
+
+function(pkg_check_variable _pkg _name)
+ string(TOUPPER ${_pkg} _pkg_upper)
+ string(TOUPPER ${_name} _name_upper)
+ string(REPLACE "-" "_" _pkg_upper ${_pkg_upper})
+ string(REPLACE "-" "_" _name_upper ${_name_upper})
+ set(_output_name "${_pkg_upper}_${_name_upper}")
+
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg}
+ OUTPUT_VARIABLE _pkg_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable
+ ${_name} of ${_pkg}")
+endfunction()