diff mbox series

[2/2] libical: improve buildpath situation

Message ID 20250910134807.2366064-2-ross.burton@arm.com
State New
Headers show
Series [1/2] libical: update patch status | expand

Commit Message

Ross Burton Sept. 10, 2025, 1:48 p.m. UTC
Take an upstream patch to remove buildpaths from the generator's CMake
files, so we don't need to sed them out.

Also, the generator tool is only needed when cross-compiling libical,
so we don't actually need to install it in the target package. This has
the nice side-effect of removing libxml2 from the target RDEPENDS as it
is only used in the tool.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../libical/libical/flags.patch               | 40 +++++++++++++++++++
 .../recipes-support/libical/libical_3.0.20.bb | 13 +++---
 2 files changed, 48 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-support/libical/libical/flags.patch
diff mbox series

Patch

diff --git a/meta/recipes-support/libical/libical/flags.patch b/meta/recipes-support/libical/libical/flags.patch
new file mode 100644
index 00000000000..5fa4b479ee3
--- /dev/null
+++ b/meta/recipes-support/libical/libical/flags.patch
@@ -0,0 +1,40 @@ 
+From a5642fa1cd8c835209b39ec99e534d341779c985 Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Wed, 10 Sep 2025 09:52:37 +0200
+Subject: [PATCH] libical-glib: Hide some target options in the installed CMake
+ files
+
+The build paths could be shown in the installed .cmake files, thus
+hide them from there, because they are needed.
+
+Closes https://github.com/libical/libical/issues/532
+
+Upstream-Status: Submitted [https://github.com/libical/libical/pull/1010]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ src/libical-glib/CMakeLists.txt | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/libical-glib/CMakeLists.txt b/src/libical-glib/CMakeLists.txt
+index 9f69e9c5..aa55e013 100644
+--- a/src/libical-glib/CMakeLists.txt
++++ b/src/libical-glib/CMakeLists.txt
+@@ -8,8 +8,8 @@ add_executable(ical-glib-src-generator
+   tools/xml-parser.h
+ )
+
+-target_compile_options(ical-glib-src-generator PUBLIC ${GLIB_CFLAGS} ${LIBXML_CFLAGS} -DG_LOG_DOMAIN=\"src-generator\")
+-target_link_libraries(ical-glib-src-generator ${GLIB_LIBRARIES} ${LIBXML_LIBRARIES})
++target_compile_options(ical-glib-src-generator PRIVATE ${GLIB_CFLAGS} ${LIBXML_CFLAGS} -DG_LOG_DOMAIN=\"src-generator\")
++target_link_libraries(ical-glib-src-generator PRIVATE ${GLIB_LIBRARIES} ${LIBXML_LIBRARIES})
+
+ install(
+   TARGETS ical-glib-src-generator
+@@ -130,7 +130,7 @@ target_link_libraries(ical-glib PRIVATE ical ${GLIB_LIBRARIES})
+ if(NOT SHARED_ONLY AND NOT STATIC_ONLY)
+   add_library(ical-glib-static STATIC ${LIBICAL_GLIB_SOURCES})
+   add_dependencies(ical-glib-static ical-header)
+-  target_compile_options(ical-glib-static PUBLIC ${GLIB_CFLAGS} -DG_LOG_DOMAIN="libical-glib" -DLIBICAL_GLIB_COMPILATION)
++  target_compile_options(ical-glib-static PRIVATE ${GLIB_CFLAGS} -DG_LOG_DOMAIN="libical-glib" -DLIBICAL_GLIB_COMPILATION)
+   target_link_libraries(ical-glib-static ${GLIB_LIBRARIES})
+ endif()
diff --git a/meta/recipes-support/libical/libical_3.0.20.bb b/meta/recipes-support/libical/libical_3.0.20.bb
index d62c88e3477..7f85522e91c 100644
--- a/meta/recipes-support/libical/libical_3.0.20.bb
+++ b/meta/recipes-support/libical/libical_3.0.20.bb
@@ -14,6 +14,7 @@  SECTION = "libs"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
            file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \
+           file://flags.patch \
           "
 SRC_URI[sha256sum] = "e73de92f5a6ce84c1b00306446b290a2b08cdf0a80988eca0a2c9d5c3510b4c2"
 
@@ -45,11 +46,13 @@  EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING
 
 do_install:append () {
     # Remove build host references (https://github.com/libical/libical/issues/532)
-    sed -i \
-       -e 's,${STAGING_LIBDIR},${libdir},g' \
-       -e 's,${STAGING_INCDIR},${includedir},g' \
-       ${D}${libdir}/cmake/LibIcal/LibIcal*.cmake \
-       ${D}${libdir}/cmake/LibIcal/Ical*.cmake
+    sed -i -e 's,${STAGING_LIBDIR},${libdir},g' ${D}${libdir}/cmake/LibIcal/LibIcalTargets.cmake
+}
+
+# This tool is only needed to cross-compile, delete it from the target packages
+do_install:append:class-target() {
+    rm -f ${D}${libexecdir}/libical/ical-glib-src-generator
+    rm -f ${D}${libdir}/cmake/LibIcal/IcalGlibSrcGenerator*.cmake
 }
 
 BBCLASSEXTEND = "native"