summary refs log blame commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
blob: c67609e967559b5aa9a4aea3cf45ace7757c001a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                            

                 
                                                 


                                                                
                                                                                                                               

                                                                                           
                                                                                                                       



                                                                                      
 
                                                                       
 


                                            
 
{ stdenv, appleDerivation, autoreconfHook }:

appleDerivation {
  postUnpack = "sourceRoot=$sourceRoot/libiconv";

  postInstall = ''
    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
  '';

  setupHook = ../../../../development/libraries/libiconv/setup-hook.sh;

  meta = {
    platforms = stdenv.lib.platforms.darwin;
  };
}