blob: c00082a2cef7f729db487f0848f63613bb409c3c [file] [log] [blame]
Brad Bishop0f291cc2019-09-01 15:16:57 -04001From d84f4fd68441e934b37be2a6917abad52c5d1bda Mon Sep 17 00:00:00 2001
2From: Piotr Tworek <tworaz@tworaz.net>
3Date: Fri, 16 Aug 2019 21:22:16 +0200
4Subject: [PATCH 7/7] Modify gobject-intrispection support to work with OE.
5
61. Use tools provided by the recipe sysroot instread of host ones.
72. Make sure all the required dirs make it into g-ir-scanner via
8 LDFLAGS.
9
10Upstream-Status: Inappropriate [configuration]
11
12Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
13---
14 cmake/modules/GObjectIntrospection.cmake | 12 ++++++++++--
15 1 file changed, 10 insertions(+), 2 deletions(-)
16
17diff --git a/cmake/modules/GObjectIntrospection.cmake b/cmake/modules/GObjectIntrospection.cmake
18index 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--
742.21.0
75