diff options
author | Yvan Sraka <yvan@sraka.xyz> | 2023-07-03 10:37:01 +0200 |
---|---|---|
committer | Yvan Sraka <yvan@sraka.xyz> | 2023-07-03 12:14:47 +0200 |
commit | 2efcdcc87b62ca504d80910c68a5fc54aa1f22c3 (patch) | |
tree | 38a8de83e6c8924977498e4cc18bf0189885bc84 | |
parent | 3cee93dfaf3b5e9e9db719022fdb271c2f399aae (diff) | |
download | nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar.gz nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar.bz2 nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar.lz nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar.xz nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.tar.zst nixpkgs-2efcdcc87b62ca504d80910c68a5fc54aa1f22c3.zip |
Add pkgconfig support to blst
-rw-r--r-- | pkgs/development/libraries/blst/default.nix | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/pkgs/development/libraries/blst/default.nix b/pkgs/development/libraries/blst/default.nix index d49fdb84f89..71b2814100e 100644 --- a/pkgs/development/libraries/blst/default.nix +++ b/pkgs/development/libraries/blst/default.nix @@ -14,19 +14,57 @@ stdenv.mkDerivation ( finalAttrs: { buildPhase = '' runHook preBuild - ./build.sh + ./build.sh ${lib.optionalString stdenv.targetPlatform.isWindows "flavour=mingw64"} + ./build.sh -shared ${lib.optionalString stdenv.targetPlatform.isWindows "flavour=mingw64"} runHook postBuild ''; installPhase = '' runHook preInstall - mkdir -p $out/lib - cp ./libblst.a $out/lib/ + mkdir -p $out/{lib,include} + for lib in libblst.{a,so,dylib}; do + if [ -f $lib ]; then + cp $lib $out/lib/ + fi + done + cp bindings/{blst.h,blst_aux.h} $out/include + + for lib in blst.dll; do + if [ -f $lib ]; then + mkdir -p $out/bin + cp $lib $out/bin/ + fi + done + + mkdir -p $out/lib/pkgconfig + cat <<EOF > $out/lib/pkgconfig/libblst.pc + prefix=$out + exec_prefix=''\\''${prefix} + libdir=''\\''${exec_prefix}/lib + includedir=''\\''${prefix}/include + + Name: libblst + Description: ${finalAttrs.meta.description} + URL: ${finalAttrs.meta.homepage} + Version: ${finalAttrs.version} + + Cflags: -I''\\''${includedir} + Libs: -L''\\''${libdir} -lblst + Libs.private: + EOF runHook postInstall ''; + # ensure we have the right install id set. Otherwise the library + # wouldn't be found during install. The alternative would be to work + # lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libblst.dylib"; + # into the setup.sh + postFixup = lib.optionalString stdenv.isDarwin '' + install_name_tool -id $out/lib/libblst.dylib $out/lib/libblst.dylib + ''; + doCheck = true; meta = with lib; { |