| # - Try to find gobject-introspection |
| # Once done, this will define |
| # |
| # INTROSPECTION_FOUND - system has gobject-introspection |
| # INTROSPECTION_SCANNER - the gobject-introspection scanner, g-ir-scanner |
| # INTROSPECTION_COMPILER - the gobject-introspection compiler, g-ir-compiler |
| # INTROSPECTION_GENERATE - the gobject-introspection generate, g-ir-generate |
| # INTROSPECTION_GIRDIR |
| # INTROSPECTION_TYPELIBDIR |
| # INTROSPECTION_CFLAGS |
| # INTROSPECTION_LIBS |
| # |
| # Copyright (C) 2010, Pino Toscano, <pino@kde.org> |
| # Copyright (C) 2014 Igalia S.L. |
| # |
| # Redistribution and use is allowed according to the terms of the BSD license. |
| |
| macro(_GIR_GET_PKGCONFIG_VAR _outvar _varname _extra_args) |
| execute_process( |
| COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_varname} ${_extra_args} gobject-introspection-1.0 |
| OUTPUT_VARIABLE _result |
| RESULT_VARIABLE _null |
| ) |
| |
| if (_null) |
| else () |
| string(REGEX REPLACE "[\r\n]" " " _result "${_result}") |
| string(REGEX REPLACE " +$" "" _result "${_result}") |
| separate_arguments(_result) |
| set(${_outvar} ${_result} CACHE INTERNAL "") |
| endif () |
| endmacro(_GIR_GET_PKGCONFIG_VAR) |
| |
| find_package(PkgConfig QUIET) |
| if (PKG_CONFIG_FOUND) |
| if (PACKAGE_FIND_VERSION_COUNT GREATER 0) |
| set(_gir_version_cmp ">=${PACKAGE_FIND_VERSION}") |
| endif () |
| pkg_check_modules(_pc_gir gobject-introspection-1.0${_gir_version_cmp}) |
| if (_pc_gir_FOUND) |
| set(INTROSPECTION_FOUND TRUE) |
| _gir_get_pkgconfig_var(INTROSPECTION_SCANNER "g_ir_scanner" "") |
| _gir_get_pkgconfig_var(INTROSPECTION_COMPILER "g_ir_compiler" "") |
| _gir_get_pkgconfig_var(INTROSPECTION_GENERATE "g_ir_generate" "") |
| _gir_get_pkgconfig_var(INTROSPECTION_GIRDIR "girdir" "") |
| _gir_get_pkgconfig_var(INTROSPECTION_TYPELIBDIR "typelibdir" "") |
| set(INTROSPECTION_VERSION "${_pc_gir_VERSION}") |
| if (${INTROSPECTION_VERSION} VERSION_GREATER_EQUAL "1.59.1") |
| set(INTROSPECTION_HAVE_SOURCES_TOP_DIRS YES) |
| endif () |
| set(INTROSPECTION_CFLAGS "${_pc_gir_CFLAGS}") |
| set(INTROSPECTION_LIBS "${_pc_gir_LIBS}") |
| endif () |
| endif () |
| |
| mark_as_advanced( |
| INTROSPECTION_SCANNER |
| INTROSPECTION_COMPILER |
| INTROSPECTION_GENERATE |
| INTROSPECTION_GIRDIR |
| INTROSPECTION_TYPELIBDIR |
| INTROSPECTION_CFLAGS |
| INTROSPECTION_LIBS |
| INTROSPECTION_VERSION |
| INTROSPECTION_HAVE_SOURCES_TOP_DIRS |
| ) |