FindGObjectIntrospection.cmake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # - try to find gobject-introspection
  2. #
  3. # Once done this will define
  4. #
  5. # INTROSPECTION_FOUND - system has gobject-introspection
  6. # INTROSPECTION_SCANNER - the gobject-introspection scanner, g-ir-scanner
  7. # INTROSPECTION_COMPILER - the gobject-introspection compiler, g-ir-compiler
  8. # INTROSPECTION_GENERATE - the gobject-introspection generate, g-ir-generate
  9. # INTROSPECTION_GIRDIR
  10. # INTROSPECTION_TYPELIBDIR
  11. # INTROSPECTION_CFLAGS
  12. # INTROSPECTION_LIBS
  13. #
  14. # Copyright (C) 2010, Pino Toscano, <pino@kde.org>
  15. #
  16. # Redistribution and use is allowed according to the terms of the BSD license.
  17. # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  18. macro(_GIR_GET_PKGCONFIG_VAR _outvar _varname)
  19. execute_process(
  20. COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_varname} gobject-introspection-1.0
  21. OUTPUT_VARIABLE _result
  22. RESULT_VARIABLE _null
  23. )
  24. if (_null)
  25. else()
  26. string(REGEX REPLACE "[\r\n]" " " _result "${_result}")
  27. string(REGEX REPLACE " +$" "" _result "${_result}")
  28. separate_arguments(_result)
  29. set(${_outvar} ${_result} CACHE INTERNAL "")
  30. endif()
  31. endmacro(_GIR_GET_PKGCONFIG_VAR)
  32. find_package(PkgConfig)
  33. if(PKG_CONFIG_FOUND)
  34. if(PACKAGE_FIND_VERSION_COUNT GREATER 0)
  35. set(_gir_version_cmp ">=${PACKAGE_FIND_VERSION}")
  36. endif()
  37. pkg_check_modules(_pc_gir gobject-introspection-1.0${_gir_version_cmp})
  38. if(_pc_gir_FOUND)
  39. set(INTROSPECTION_FOUND TRUE)
  40. _gir_get_pkgconfig_var(INTROSPECTION_SCANNER "g_ir_scanner")
  41. _gir_get_pkgconfig_var(INTROSPECTION_COMPILER "g_ir_compiler")
  42. _gir_get_pkgconfig_var(INTROSPECTION_GENERATE "g_ir_generate")
  43. _gir_get_pkgconfig_var(INTROSPECTION_GIRDIR "girdir")
  44. _gir_get_pkgconfig_var(INTROSPECTION_TYPELIBDIR "typelibdir")
  45. set(INTROSPECTION_CFLAGS "${_pc_gir_CFLAGS}")
  46. set(INTROSPECTION_LIBS "${_pc_gir_LIBS}")
  47. endif()
  48. endif()
  49. mark_as_advanced(
  50. INTROSPECTION_SCANNER
  51. INTROSPECTION_COMPILER
  52. INTROSPECTION_GENERATE
  53. INTROSPECTION_GIRDIR
  54. INTROSPECTION_TYPELIBDIR
  55. INTROSPECTION_CFLAGS
  56. INTROSPECTION_LIBS
  57. )