mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-20 20:53:48 +00:00
f52263ced0
We can use use `stdenv.hostPlatform.isStatic` instead, and move the logic per package. The least opionated benefit of this is that it makes it much easier to replace packages with modified ones, as there is no longer any issue of overlay order. CC @FRidh @matthewbauer
38 lines
1.3 KiB
Nix
38 lines
1.3 KiB
Nix
{ stdenv, appleDerivation, lib
|
|
, enableStatic ? stdenv.hostPlatform.isStatic
|
|
, enableShared ? !stdenv.hostPlatform.isStatic
|
|
}:
|
|
|
|
appleDerivation {
|
|
postUnpack = "sourceRoot=$sourceRoot/libiconv";
|
|
|
|
preConfigure = lib.optionalString stdenv.hostPlatform.isiOS ''
|
|
sed -i 's/darwin\*/ios\*/g' configure libcharset/configure
|
|
'';
|
|
|
|
configureFlags = [
|
|
(lib.enableFeature enableStatic "static")
|
|
(lib.enableFeature enableShared "shared")
|
|
];
|
|
|
|
postInstall = lib.optionalString enableShared ''
|
|
mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib
|
|
${stdenv.cc.bintools.targetPrefix}install_name_tool -id $out/lib/libiconv-nocharset.dylib $out/lib/libiconv-nocharset.dylib
|
|
|
|
# re-export one useless symbol; ld will reject a dylib that only reexports other dylibs
|
|
echo 'void dont_use_this(){}' | ${stdenv.cc.bintools.targetPrefix}clang -dynamiclib -x c - -current_version 2.4.0 \
|
|
-compatibility_version 7.0.0 -current_version 7.0.0 -o $out/lib/libiconv.dylib \
|
|
-Wl,-reexport_library -Wl,$out/lib/libiconv-nocharset.dylib \
|
|
-Wl,-reexport_library -Wl,$out/lib/libcharset.dylib
|
|
'';
|
|
|
|
setupHooks = [
|
|
../../../../build-support/setup-hooks/role.bash
|
|
../../../../development/libraries/libiconv/setup-hook.sh
|
|
];
|
|
|
|
meta = {
|
|
platforms = lib.platforms.darwin;
|
|
};
|
|
}
|