From d84f4fd68441e934b37be2a6917abad52c5d1bda Mon Sep 17 00:00:00 2001 From: Piotr Tworek Date: Fri, 16 Aug 2019 21:22:16 +0200 Subject: [PATCH 7/7] Modify gobject-intrispection support to work with OE. 1. Use tools provided by the recipe sysroot instread of host ones. 2. Make sure all the required dirs make it into g-ir-scanner via LDFLAGS. Upstream-Status: Inappropriate [configuration] Signed-off-by: Piotr Tworek --- cmake/modules/GObjectIntrospection.cmake | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake index 5be5042..67c035a 100644 --- a/cmake/modules/GObjectIntrospection.cmake +++ b/cmake/modules/GObjectIntrospection.cmake @@ -20,6 +20,9 @@ if(ENABLE_INTROSPECTION) pkg_check_variable(G_IR_SCANNER gobject-introspection-1.0 g_ir_scanner) pkg_check_variable(G_IR_COMPILER gobject-introspection-1.0 g_ir_compiler) + string(CONCAT G_IR_SCANNER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_SCANNER}") + string(CONCAT G_IR_COMPILER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_COMPILER}") + if(NOT G_IR_SCANNER) message(FATAL_ERROR "g-ir-scanner not provided by gobject-introspection-1.0, you can disable GObject introspection by -DENABLE_INTROSPECTION=OFF") endif(NOT G_IR_SCANNER) @@ -116,7 +119,7 @@ macro(gir_add_introspection gir) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_gir_name}_files "${_gir_files}") add_custom_command( - COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS= + COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS=${INTROSPECTION_SCANNER_LDFLAGS} ${INTROSPECTION_SCANNER_ENV} ${G_IR_SCANNER} ${INTROSPECTION_SCANNER_ARGS} @@ -186,6 +189,7 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver unset(INTROSPECTION_SCANNER_ARGS) unset(INTROSPECTION_SCANNER_ENV) unset(INTROSPECTION_COMPILER_ARGS) + unset(INTROSPECTION_SCANNER_LDFLAGS) set(${gir_vars_prefix} ${gir_library}) set(${gir_vars_prefix}_SCANNERFLAGS "--warn-all") @@ -223,12 +227,12 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver --add-include-path=${CMAKE_CURRENT_SOURCE_DIR} --library-path=${CMAKE_BINARY_DIR} --library-path=${CMAKE_BINARY_DIR}/src + --library-path=${CMAKE_BINARY_DIR}/src/private --library-path=${CMAKE_CURRENT_BINARY_DIR} ${_gir_extra_libdirs} ${_gir_identifies_prefixes} ${_gir_deps} --add-include-path=${SHARE_INSTALL_PREFIX}/gir-1.0 - --library-path=${LIB_INSTALL_DIR} ${_extra_library_path} --pkg-export ${pkg_export_prefix}-${gir_library_version} --c-include=${c_include} @@ -279,6 +283,10 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver ) endif(UNIX) + _gir_list_prefix(_gir_scanner_ldflags ${gir_extra_libdirs_var} "-Wl,-rpath-link=") + string(REPLACE ";" " " _gir_scanner_ldflags "${_gir_scanner_ldflags}") + set(INTROSPECTION_SCANNER_LDFLAGS "${_gir_scanner_ldflags}") + set(INTROSPECTION_SCANNER_ENV ${_loader_library_path_var}="${_extra_loader_library_path_native}" ) -- 2.21.0