PkgConfigVars.cmake 1021 B

123456789101112131415161718192021222324252627282930
  1. # - determine variables defined in pkg-config files
  2. #
  3. # Usage:
  4. # pkg_check_variable(<PKG_NAME> <VARIABLE_NAME>)
  5. #
  6. # Checks for a variable in the given package and translates to a call such as
  7. # `pkg-config --variable=<VARIABLE_NAME> <PKG_NAME>`. The output is a cached
  8. # variable named
  9. #
  10. # <PKG_NAME>_<VARIABLE_NAME>
  11. #
  12. # Note that both names are uppercased and any dashes replaced by underscores.
  13. #
  14. find_package(PkgConfig REQUIRED)
  15. function(pkg_check_variable _pkg _name)
  16. string(TOUPPER ${_pkg} _pkg_upper)
  17. string(TOUPPER ${_name} _name_upper)
  18. string(REPLACE "-" "_" _pkg_upper ${_pkg_upper})
  19. string(REPLACE "-" "_" _name_upper ${_name_upper})
  20. set(_output_name "${_pkg_upper}_${_name_upper}")
  21. execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg}
  22. OUTPUT_VARIABLE _pkg_result
  23. OUTPUT_STRIP_TRAILING_WHITESPACE)
  24. set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable
  25. ${_name} of ${_pkg}")
  26. endfunction()