Brad Bishop | 0f291cc | 2019-09-01 15:16:57 -0400 | [diff] [blame^] | 1 | From d84f4fd68441e934b37be2a6917abad52c5d1bda Mon Sep 17 00:00:00 2001 |
| 2 | From: Piotr Tworek <tworaz@tworaz.net> |
| 3 | Date: Fri, 16 Aug 2019 21:22:16 +0200 |
| 4 | Subject: [PATCH 7/7] Modify gobject-intrispection support to work with OE. |
| 5 | |
| 6 | 1. Use tools provided by the recipe sysroot instread of host ones. |
| 7 | 2. Make sure all the required dirs make it into g-ir-scanner via |
| 8 | LDFLAGS. |
| 9 | |
| 10 | Upstream-Status: Inappropriate [configuration] |
| 11 | |
| 12 | Signed-off-by: Piotr Tworek <tworaz@tworaz.net> |
| 13 | --- |
| 14 | cmake/modules/GObjectIntrospection.cmake | 12 ++++++++++-- |
| 15 | 1 file changed, 10 insertions(+), 2 deletions(-) |
| 16 | |
| 17 | diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake |
| 18 | index 5be5042..67c035a 100644 |
| 19 | --- a/cmake/modules/GObjectIntrospection.cmake |
| 20 | +++ b/cmake/modules/GObjectIntrospection.cmake |
| 21 | @@ -20,6 +20,9 @@ if(ENABLE_INTROSPECTION) |
| 22 | pkg_check_variable(G_IR_SCANNER gobject-introspection-1.0 g_ir_scanner) |
| 23 | pkg_check_variable(G_IR_COMPILER gobject-introspection-1.0 g_ir_compiler) |
| 24 | |
| 25 | + string(CONCAT G_IR_SCANNER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_SCANNER}") |
| 26 | + string(CONCAT G_IR_COMPILER $ENV{PKG_CONFIG_SYSROOT_DIR} "${G_IR_COMPILER}") |
| 27 | + |
| 28 | if(NOT G_IR_SCANNER) |
| 29 | message(FATAL_ERROR "g-ir-scanner not provided by gobject-introspection-1.0, you can disable GObject introspection by -DENABLE_INTROSPECTION=OFF") |
| 30 | endif(NOT G_IR_SCANNER) |
| 31 | @@ -116,7 +119,7 @@ macro(gir_add_introspection gir) |
| 32 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_gir_name}_files "${_gir_files}") |
| 33 | |
| 34 | add_custom_command( |
| 35 | - COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS= |
| 36 | + COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS=${INTROSPECTION_SCANNER_LDFLAGS} |
| 37 | ${INTROSPECTION_SCANNER_ENV} |
| 38 | ${G_IR_SCANNER} |
| 39 | ${INTROSPECTION_SCANNER_ARGS} |
| 40 | @@ -186,6 +189,7 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver |
| 41 | unset(INTROSPECTION_SCANNER_ARGS) |
| 42 | unset(INTROSPECTION_SCANNER_ENV) |
| 43 | unset(INTROSPECTION_COMPILER_ARGS) |
| 44 | + unset(INTROSPECTION_SCANNER_LDFLAGS) |
| 45 | |
| 46 | set(${gir_vars_prefix} ${gir_library}) |
| 47 | set(${gir_vars_prefix}_SCANNERFLAGS "--warn-all") |
| 48 | @@ -223,12 +227,12 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver |
| 49 | --add-include-path=${CMAKE_CURRENT_SOURCE_DIR} |
| 50 | --library-path=${CMAKE_BINARY_DIR} |
| 51 | --library-path=${CMAKE_BINARY_DIR}/src |
| 52 | + --library-path=${CMAKE_BINARY_DIR}/src/private |
| 53 | --library-path=${CMAKE_CURRENT_BINARY_DIR} |
| 54 | ${_gir_extra_libdirs} |
| 55 | ${_gir_identifies_prefixes} |
| 56 | ${_gir_deps} |
| 57 | --add-include-path=${SHARE_INSTALL_PREFIX}/gir-1.0 |
| 58 | - --library-path=${LIB_INSTALL_DIR} |
| 59 | ${_extra_library_path} |
| 60 | --pkg-export ${pkg_export_prefix}-${gir_library_version} |
| 61 | --c-include=${c_include} |
| 62 | @@ -279,6 +283,10 @@ macro(gir_add_introspection_simple gir_library pkg_export_prefix gir_library_ver |
| 63 | ) |
| 64 | endif(UNIX) |
| 65 | |
| 66 | + _gir_list_prefix(_gir_scanner_ldflags ${gir_extra_libdirs_var} "-Wl,-rpath-link=") |
| 67 | + string(REPLACE ";" " " _gir_scanner_ldflags "${_gir_scanner_ldflags}") |
| 68 | + set(INTROSPECTION_SCANNER_LDFLAGS "${_gir_scanner_ldflags}") |
| 69 | + |
| 70 | set(INTROSPECTION_SCANNER_ENV |
| 71 | ${_loader_library_path_var}="${_extra_loader_library_path_native}" |
| 72 | ) |
| 73 | -- |
| 74 | 2.21.0 |
| 75 | |