about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libical
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
commite0794be8a0d11e90461e5a9c85012a36b93ec976 (patch)
treeefd9cbc55ea3322867bf601c4d536758a3dd5fcc /nixpkgs/pkgs/development/libraries/libical
parent3538874082ded7647b1ccec0343c7c1e882cfef3 (diff)
parent1a57d96edd156958b12782e8c8b6a374142a7248 (diff)
downloadnixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.gz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.bz2
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.lz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.xz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.zst
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.zip
Merge commit '1a57d96edd156958b12782e8c8b6a374142a7248'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libical')
-rw-r--r--nixpkgs/pkgs/development/libraries/libical/default.nix32
1 files changed, 26 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libical/default.nix b/nixpkgs/pkgs/development/libraries/libical/default.nix
index cd802fde7786..c03367da97ba 100644
--- a/nixpkgs/pkgs/development/libraries/libical/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libical/default.nix
@@ -1,18 +1,25 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
+, fetchpatch
+, buildPackages
 , cmake
 , glib
-, gobject-introspection
 , icu
 , libxml2
 , ninja
 , perl
 , pkgconfig
+, libical
 , python3
 , tzdata
-, vala
+, introspectionSupport ? stdenv.buildPlatform == stdenv.hostPlatform
+, gobject-introspection ? null
+, vala ? null
 }:
 
+assert introspectionSupport -> gobject-introspection != null && vala != null;
+
 stdenv.mkDerivation rec {
   pname = "libical";
   version = "3.0.8";
@@ -28,15 +35,19 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    gobject-introspection
     ninja
     perl
     pkgconfig
-    vala
     # Docs building fails:
     # https://github.com/NixOS/nixpkgs/pull/67204
     # previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489
     # gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # provides ical-glib-src-generator that runs during build
+    libical
+  ] ++ lib.optionals introspectionSupport [
+    gobject-introspection
+    vala
   ];
   installCheckInputs = [
     # running libical-glib tests
@@ -52,15 +63,24 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DGOBJECT_INTROSPECTION=True"
     "-DENABLE_GTK_DOC=False"
+  ] ++ lib.optionals introspectionSupport [
+    "-DGOBJECT_INTROSPECTION=True"
     "-DICAL_GLIB_VAPI=True"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DIMPORT_GLIB_SRC_GENERATOR=${lib.getDev buildPackages.libical}/lib/cmake/LibIcal/GlibSrcGenerator.cmake"
   ];
 
   patches = [
     # Will appear in 3.1.0
     # https://github.com/libical/libical/issues/350
     ./respect-env-tzdir.patch
+    # Export src-generator binary for use while cross-compiling
+    # https://github.com/libical/libical/pull/439
+    (fetchpatch {
+      url = "https://github.com/libical/libical/commit/1197d84b63dce179b55a6293cfd6d0523607baf1.patch";
+      sha256 = "18i1khnwmw488s7g5a1kf05sladf8dbyhfc69mbcf6dkc4nnc3dg";
+    })
   ];
 
   # Using install check so we do not have to manually set