depot/third_party/nixpkgs/pkgs/development/libraries/libgweather/default.nix
Default email 504525a148 Project import generated by Copybara.
GitOrigin-RevId: bd645e8668ec6612439a9ee7e71f7eac4099d4f6
2024-01-02 12:29:13 +01:00

107 lines
2.7 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, libxml2
, json-glib
, glib
, gettext
, libsoup_3
, gi-docgen
, gobject-introspection
, python3
, tzdata
, geocode-glib_2
, vala
, gnome
, withIntrospection ? stdenv.buildPlatform == stdenv.hostPlatform
}:
stdenv.mkDerivation rec {
pname = "libgweather";
version = "4.4.0";
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Nm6Gb/KnCLiUz+qUdbjo/1TLPitHfqcqit4Nq+5fSKQ=";
};
patches = [
# Headers depend on glib but it is only listed in Requires.private,
# which does not influence Cflags on non-static builds in nixpkgss
# pkg-config. Lets add it to Requires to ensure Cflags are set correctly.
./fix-pkgconfig.patch
];
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
glib
(python3.pythonOnBuildForHost.withPackages (ps: [ ps.pygobject3 ]))
] ++ lib.optionals withIntrospection [
gi-docgen
gobject-introspection
vala
];
buildInputs = [
glib
libsoup_3
libxml2
json-glib
geocode-glib_2
];
mesonFlags = [
"-Dzoneinfo_dir=${tzdata}/share/zoneinfo"
(lib.mesonBool "introspection" withIntrospection)
];
postPatch = ''
patchShebangs build-aux/meson/gen_locations_variant.py
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
# it should be a build-time dep for build
# TODO: send upstream
substituteInPlace doc/meson.build \
--replace "'gi-docgen', ver" "'gi-docgen', native:true, ver" \
--replace "'gi-docgen', req" "'gi-docgen', native:true, req"
# gir works for us even when cross-compiling
# TODO: send upstream because downstream users can use the option to disable gir if they don't have it working
substituteInPlace libgweather/meson.build \
--replace "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()"
'';
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "odd-unstable";
# Version 40.alpha preceded version 4.0.
freeze = "40.alpha";
};
};
meta = with lib; {
description = "A library to access weather information from online services for numerous locations";
homepage = "https://wiki.gnome.org/Projects/LibGWeather";
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.unix;
};
}