diff options
author | Ben Wolsieffer <benwolsieffer@gmail.com> | 2020-09-25 21:42:39 -0400 |
---|---|---|
committer | Ben Wolsieffer <benwolsieffer@gmail.com> | 2020-09-29 17:51:27 -0400 |
commit | 56ef82d0cdea169afd8e1054205c7f7853038534 (patch) | |
tree | ccf7d5e0c6a1c6eeb12398d7e80002282b3f11ca /pkgs/development/libraries/libical | |
parent | 670fe111f45d08dd2b098a362b6fb57435afeecc (diff) |
libical: fix cross-compilation
gobject-introspection cannot be cross-compiled, so disable it when cross-compiling. The glib bindings attempt to run a binary compiled for the host during the build, so add a patch that allows the binary to be provided by buildPackages.libical.
Diffstat (limited to 'pkgs/development/libraries/libical')
-rw-r--r-- | pkgs/development/libraries/libical/default.nix | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix index cd802fde77865..c03367da97ba2 100644 --- a/pkgs/development/libraries/libical/default.nix +++ b/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 |