diff options
author | Piotr Tworek <tworaz@tworaz.net> | 2019-08-22 19:17:16 +0200 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-08-24 05:20:42 -0700 |
commit | 940d47185e136c2fb2575c11134fddb42ec5f9cf (patch) | |
tree | 70a5f39f57255095c498c1161646787cecea27df /meta-gnome | |
parent | 35ce30890416c1013becc95f4355e5e54870ea4e (diff) | |
download | meta-openembedded-940d47185e136c2fb2575c11134fddb42ec5f9cf.tar.gz |
evolution-data-server: Fix package gobject-introspection support.
It has been broken since the pacakge was migrated from autotools to
cmake. Make it usable once again.
Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-gnome')
-rw-r--r-- | meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch | 75 | ||||
-rw-r--r-- | meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb | 21 |
2 files changed, 90 insertions, 6 deletions
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch b/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch new file mode 100644 index 000000000..c00082a2c --- /dev/null +++ b/meta-gnome/recipes-gnome/eds/evolution-data-server/0007-Modify-gobject-intrispection-support-to-work-with-OE.patch | |||
@@ -0,0 +1,75 @@ | |||
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 | |||
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb b/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb index 97e4dd5b2..b1e177ff9 100644 --- a/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb +++ b/meta-gnome/recipes-gnome/eds/evolution-data-server_3.32.4.bb | |||
@@ -21,6 +21,7 @@ SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV} | |||
21 | file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \ | 21 | file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \ |
22 | file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \ | 22 | file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \ |
23 | file://0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch \ | 23 | file://0004-Add-native-suffix-to-exacutables-produced-and-run-du.patch \ |
24 | file://0007-Modify-gobject-intrispection-support-to-work-with-OE.patch \ | ||
24 | file://iconv-detect.h \ | 25 | file://iconv-detect.h \ |
25 | " | 26 | " |
26 | SRC_URI[archive.md5sum] = "57820f3f88fc554e1a58665a52e12c05" | 27 | SRC_URI[archive.md5sum] = "57820f3f88fc554e1a58665a52e12c05" |
@@ -37,10 +38,11 @@ EXTRA_OECMAKE = " \ | |||
37 | -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ | 38 | -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ |
38 | " | 39 | " |
39 | 40 | ||
40 | PACKAGECONFIG ??= "" | 41 | PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)}" |
41 | PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap" | 42 | PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap" |
42 | PACKAGECONFIG[oauth2] = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,json-glib webkitgtk" | 43 | PACKAGECONFIG[oauth2] = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,json-glib webkitgtk" |
43 | PACKAGECONFIG[mitkrb5] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5" | 44 | PACKAGECONFIG[mitkrb5] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5" |
45 | PACKAGECONFIG[introspection] = "-DENABLE_INTROSPECTION=ON,-DENABLE_INTROSPECTION=OFF" | ||
44 | 46 | ||
45 | # -ldb needs this on some platforms | 47 | # -ldb needs this on some platforms |
46 | LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0" | 48 | LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0" |
@@ -53,7 +55,6 @@ do_configure_append () { | |||
53 | } | 55 | } |
54 | 56 | ||
55 | do_compile_prepend() { | 57 | do_compile_prepend() { |
56 | export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs" | ||
57 | # CMake does not support building native binaries when cross compiling. As result | 58 | # CMake does not support building native binaries when cross compiling. As result |
58 | # it always cross compiles them for the target and then aborts when they fail to run. | 59 | # it always cross compiles them for the target and then aborts when they fail to run. |
59 | # To work around this manually build required tools and patch cmake targets to use | 60 | # To work around this manually build required tools and patch cmake targets to use |
@@ -88,21 +89,27 @@ RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev" | |||
88 | 89 | ||
89 | FILES_libcamel = "${libdir}/libcamel-*.so.* \ | 90 | FILES_libcamel = "${libdir}/libcamel-*.so.* \ |
90 | ${libdir}/libcamel-provider-*.so.* \ | 91 | ${libdir}/libcamel-provider-*.so.* \ |
92 | ${libdir}/girepository-*/Camel-*.typelib \ | ||
91 | ${libdir}/evolution-data-server*/camel-providers/*.so \ | 93 | ${libdir}/evolution-data-server*/camel-providers/*.so \ |
92 | ${libdir}/evolution-data-server*/camel-providers/*.urls" | 94 | ${libdir}/evolution-data-server*/camel-providers/*.urls" |
93 | FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \ | 95 | FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \ |
94 | ${libdir}/pkgconfig/camel*pc \ | 96 | ${libdir}/pkgconfig/camel*pc \ |
95 | ${includedir}/evolution-data-server*/camel" | 97 | ${includedir}/evolution-data-server*/camel \ |
98 | ${datadir}/gir-*/Camel-*.gir" | ||
96 | 99 | ||
97 | FILES_libebook = "${libdir}/libebook-*.so.*" | 100 | FILES_libebook = "${libdir}/libebook-*.so.* \ |
101 | ${libdir}/girepository-*/EBook-*.typelib" | ||
98 | FILES_libebook-dev = "${libdir}/libebook-1.2.so \ | 102 | FILES_libebook-dev = "${libdir}/libebook-1.2.so \ |
99 | ${libdir}/pkgconfig/libebook-*.pc \ | 103 | ${libdir}/pkgconfig/libebook-*.pc \ |
104 | ${datadir}/gir-*/EBook-*.gir \ | ||
100 | ${includedir}/evolution-data-server*/libebook/*.h" | 105 | ${includedir}/evolution-data-server*/libebook/*.h" |
101 | RRECOMMENDS_libebook = "libedata-book" | 106 | RRECOMMENDS_libebook = "libedata-book" |
102 | 107 | ||
103 | FILES_libebook-contacts = "${libdir}/libebook-contacts-*.so.*" | 108 | FILES_libebook-contacts = "${libdir}/libebook-contacts-*.so.* \ |
109 | ${libdir}/girepository-*/EBookContacts-*.typelib" | ||
104 | FILES_libebook-contacts-dev = "${libdir}/libebook-contacts-*.so \ | 110 | FILES_libebook-contacts-dev = "${libdir}/libebook-contacts-*.so \ |
105 | ${libdir}/pkgconfig/libebook-contacts-*.pc \ | 111 | ${libdir}/pkgconfig/libebook-contacts-*.pc \ |
112 | ${datadir}/gir-*/EBookContacts-*.gir \ | ||
106 | ${includedir}/evolution-data-server*/libebook-contacts/*.h" | 113 | ${includedir}/evolution-data-server*/libebook-contacts/*.h" |
107 | 114 | ||
108 | FILES_libecal = "${libdir}/libecal-*.so.* \ | 115 | FILES_libecal = "${libdir}/libecal-*.so.* \ |
@@ -129,7 +136,8 @@ FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \ | |||
129 | ${libdir}/pkgconfig/libedata-cal-*.pc \ | 136 | ${libdir}/pkgconfig/libedata-cal-*.pc \ |
130 | ${includedir}/evolution-data-server-*/libedata-cal" | 137 | ${includedir}/evolution-data-server-*/libedata-cal" |
131 | 138 | ||
132 | FILES_libedataserver = "${libdir}/libedataserver-*.so.*" | 139 | FILES_libedataserver = "${libdir}/libedataserver-*.so.* \ |
140 | ${libdir}/girepository-*/EDataServer-*.typelib" | ||
133 | FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \ | 141 | FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \ |
134 | ${libdir}/pkgconfig/libedataserver-*.pc \ | 142 | ${libdir}/pkgconfig/libedataserver-*.pc \ |
135 | ${includedir}/evolution-data-server-*/libedataserver/*.h" | 143 | ${includedir}/evolution-data-server-*/libedataserver/*.h" |
@@ -137,4 +145,5 @@ FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \ | |||
137 | FILES_libedataserverui = "${libdir}/libedataserverui-*.so.*" | 145 | FILES_libedataserverui = "${libdir}/libedataserverui-*.so.*" |
138 | FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \ | 146 | FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \ |
139 | ${libdir}/pkgconfig/libedataserverui-*.pc \ | 147 | ${libdir}/pkgconfig/libedataserverui-*.pc \ |
148 | ${datadir}/gir-*/EDataServerUI-*.gir \ | ||
140 | ${includedir}/evolution-data-server-*/libedataserverui/*.h" | 149 | ${includedir}/evolution-data-server-*/libedataserverui/*.h" |