about summary refs log tree commit diff
path: root/pkgs/development/compilers/swi-prolog
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2019-10-14 22:30:00 -0500
committerMario Rodas <marsam@users.noreply.github.com>2019-10-14 22:30:00 -0500
commited7985717095a08c474447c0eabf9f7b71879e09 (patch)
tree93e972fb592ab25061b63aa2d3b6ddc785ba1af1 /pkgs/development/compilers/swi-prolog
parenta388e920f335f6e5e2d53bdc89dfcd3b968022a7 (diff)
downloadnixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar.gz
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar.bz2
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar.lz
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar.xz
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.tar.zst
nixlib-ed7985717095a08c474447c0eabf9f7b71879e09.zip
swiProlog: fix build on darwin
Diffstat (limited to 'pkgs/development/compilers/swi-prolog')
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix55
1 files changed, 16 insertions, 39 deletions
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index cbcfd7efb405..0140bb401118 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchgit, jdk, gmp, readline, openssl, unixODBC, zlib
+{ stdenv, fetchFromGitHub, jdk, gmp, readline, openssl, unixODBC, zlib
 , libarchive, db, pcre, libedit, libossp_uuid, libXpm
-, libSM, libXt, freetype, pkgconfig, fontconfig, makeWrapper ? stdenv.isDarwin
-, git, cacert, cmake, libyaml
+, libSM, libXt, freetype, pkgconfig, fontconfig
+, cmake, libyaml, Security
 , libjpeg, libX11, libXext, libXft, libXinerama
 , extraLibraries ? [ jdk unixODBC libXpm libSM libXt freetype fontconfig ]
 , extraPacks     ? []
@@ -18,58 +18,35 @@ stdenv.mkDerivation {
   pname = "swi-prolog";
   inherit version;
 
-  src = fetchgit {
-    url = "https://github.com/SWI-Prolog/swipl-devel";
+  src = fetchFromGitHub {
+    owner = "SWI-Prolog";
+    repo = "swipl-devel";
     rev = "V${version}";
     sha256 = "0czbrscx2s4079nmwvipp9cnwfny16m3fpnp823llm7wyljchgvq";
+    fetchSubmodules = true;
   };
 
-  buildInputs = [ cacert git cmake gmp readline openssl
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ gmp readline openssl
     libarchive libyaml db pcre libedit libossp_uuid
-    zlib pkgconfig ]
+    zlib ]
   ++ stdenv.lib.optionals (withGui && !stdenv.isDarwin) [ libXpm libX11 libXext libXft libXinerama libjpeg ]
   ++ extraLibraries
-  ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
+  ++ stdenv.lib.optional stdenv.isDarwin Security;
 
   hardeningDisable = [ "format" ];
 
-  configureFlags = [
-    "--with-world"
-    "--enable-gmp"
-    "--enable-shared"
-  ];
+  cmakeFlags = [ "-DSWIPL_INSTALL_IN_LIB=ON" ];
 
-  installPhase = ''
-    mkdir -p $out
-    mkdir build
-    cd build
-    ${cmake}/bin/cmake -DCMAKE_INSTALL_PREFIX=$out ..
-    cd ../
-    make
-    make install
-    make clean
-    mkdir -p $out/lib/swipl/pack
-  ''
-  + builtins.concatStringsSep "\n"
+  postInstall = builtins.concatStringsSep "\n"
   ( builtins.map (packInstall "$out") extraPacks
   );
 
-  # For macOS: still not fixed in upstream: "abort trap 6" when called
-  # through symlink, so wrap binary.
-  # We reinvent wrapProgram here but omit argv0 pass in order to not
-  # break PAKCS package build. This is also safe for SWI-Prolog, since
-  # there is no wrapping environment and hence no need to spoof $0
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    local prog="$out/bin/swipl"
-    local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
-    mv $prog $hidden
-    makeWrapper $hidden $prog
-  '';
-
   meta = {
-    homepage = http://www.swi-prolog.org/;
+    homepage = "https://www.swi-prolog.org";
     description = "A Prolog compiler and interpreter";
-    license = "LGPL";
+    license = stdenv.lib.licenses.bsd2;
 
     platforms = stdenv.lib.platforms.linux ++ stdenv.lib.optionals (!withGui) stdenv.lib.platforms.darwin;
     maintainers = [ stdenv.lib.maintainers.meditans ];