glib: fixup output paths and use system pcre

Now pcre costs us <0.5 MB and using internal one would cost ~0.2 MB,
so if we take into account that pcre is often used, e.g. by grep...
This commit is contained in:
Vladimír Čunát 2015-10-28 11:52:23 +01:00
parent 30845d07d8
commit 55b7d3a181
2 changed files with 18 additions and 29 deletions

View file

@ -31,12 +31,12 @@ let
# This is intended to be run in postInstall of any package
# which has $out/include/ containing just some disjunct directories.
flattenInclude = ''
for dir in "$out"/include/*; do
cp -r "$dir"/* "$out/include/"
for dir in "''${!outputInclude}"/include/*; do
cp -r "$dir"/* "''${!outputInclude}/include/"
rm -r "$dir"
ln -s . "$dir"
done
ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true
ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
'';
ver_maj = "2.46";
@ -53,20 +53,21 @@ stdenv.mkDerivation rec {
patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch;
outputs = [ "dev" "out" "doc" ];
outputs = [ "dev" "out" "docdev" ];
outputBin = "dev";
setupHook = ./setup-hook.sh;
buildInputs = [ libelf setupHook/*get the gtk-doc hook*/ ]
buildInputs = [ libelf setupHook pcre ]
++ optionals doCheck [ tzdata libxml2 desktop_file_utils shared_mime_info ];
nativeBuildInputs = [ pkgconfig gettext perl python ];
propagatedBuildInputs = [ zlib libffi libiconv /*pcre*/ ]
propagatedBuildInputs = [ zlib libffi libiconv ]
++ libintlOrEmpty;
configureFlags = [ ] # [ "--with-pcre=system" ] # internal pcre only adds <200kB
# internal pcre would only add <200kB, but it's relatively common
configureFlags = [ "--with-pcre=system" ]
++ optional stdenv.isDarwin "--disable-compile-warnings"
++ optional stdenv.isSunOS "--disable-modular-tests";

View file

@ -1,5 +1,3 @@
# Install gschemas, if any, in a package-specific directory
installFlagsArray+=("gsettingsschemadir=$out/share/gsettings-schemas/$name/glib-2.0/schemas/")
make_glib_find_gsettings_schemas() {
# For packages that need gschemas of other packages (e.g. empathy)
@ -7,32 +5,22 @@ make_glib_find_gsettings_schemas() {
addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/share/gsettings-schemas/"*
fi
}
envHooks+=(make_glib_find_gsettings_schemas)
# Install gschemas, if any, in a package-specific directory
glibPreInstallPhase() {
installFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/")
}
preInstallPhases+=(glibPreInstallPhase)
glibPreFixupPhase() {
# Move gschemas in case the install flag didn't help
if [ -d "$out/share/glib-2.0/schemas" ]; then
mkdir -p "$out/share/gsettings-schemas/$name/glib-2.0"
mv "$out/share/glib-2.0/schemas" "$out/share/gsettings-schemas/$name/glib-2.0/"
if [ -d "${!outputLib}/share/glib-2.0/schemas" ]; then
mkdir -p "${!outputLib}/share/gsettings-schemas/$name/glib-2.0"
mv "${!outputLib}/share/glib-2.0/schemas" "${!outputLib}/share/gsettings-schemas/$name/glib-2.0/"
fi
addToSearchPath GSETTINGS_SCHEMAS_PATH "$out/share/gsettings-schemas/$name"
addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name"
}
preFixupPhases+=(glibPreFixupPhase)
preFixupHooks+=(_multioutGtkDocs)
# Move documentation to the desired outputs.
_multioutGtkDocs() {
if [ "$outputs" = "out" ]; then return; fi;
_moveToOutput share/gtk-doc "${!outputDoc}"
# Remove empty share directory.
if [ -d "$out/share" ]; then
rmdir "$out/share" 2> /dev/null || true
fi
}