about summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
authorTravis Whitton <travis@sharpspring.com>2021-02-12 16:54:26 -0500
committerTravis Whitton <travis@sharpspring.com>2021-02-12 16:54:26 -0500
commitd1b8249e55a75c374d8593bd41c28972cfd3ea8c (patch)
treeb7368ef94f8f0b8da3decfe56707cf4885dc951f /pkgs/games
parent6964689aff0e97424e594a52bf90673576ee8878 (diff)
downloadnixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar.gz
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar.bz2
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar.lz
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar.xz
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.tar.zst
nixlib-d1b8249e55a75c374d8593bd41c28972cfd3ea8c.zip
stockfish: darwin build support
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/stockfish/default.nix25
1 files changed, 19 insertions, 6 deletions
diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix
index 075db08a5ce3..71c482fe7660 100644
--- a/pkgs/games/stockfish/default.nix
+++ b/pkgs/games/stockfish/default.nix
@@ -1,15 +1,22 @@
 { lib, stdenv, fetchurl }:
 
-let arch = if stdenv.isx86_64 then "x86-64" else
+with lib;
+
+let
+    # The x86-64-modern may need to be refined further in the future
+    # but stdenv.hostPlatform CPU flags do not currently work on Darwin
+    # https://discourse.nixos.org/t/darwin-system-and-stdenv-hostplatform-features/9745
+    archDarwin = if stdenv.isx86_64 then "x86-64-modern" else "x86-64";
+    arch = if stdenv.isDarwin then archDarwin else
+           if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
            "unknown";
-
     version = "12";
 
     nnueFile = "nn-82215d0fd0df.nnue";
     nnue = fetchurl {
       name = nnueFile;
-        url = "https://tests.stockfishchess.org/api/nn/${nnueFile}";
+      url = "https://tests.stockfishchess.org/api/nn/${nnueFile}";
       sha256 = "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2";
     };
 in
@@ -23,18 +30,24 @@ stdenv.mkDerivation {
     sha256 = "16980aicm5i6i9252239q4f9bcxg1gnqkv6nphrmpz4drg8i3v6i";
   };
 
+  # This addresses a linker issue with Darwin
+  # https://github.com/NixOS/nixpkgs/issues/19098
+  preBuild = optionalString stdenv.isDarwin ''
+    sed -i.orig '/^\#\#\# 3.*Link Time Optimization/,/^\#\#\# 3/d' Makefile
+  '';
+
   postUnpack = ''
     sourceRoot+=/src
     echo ${nnue}
     cp "${nnue}" "$sourceRoot/${nnueFile}"
   '';
 
-  makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" ];
+  makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" "CXX=${stdenv.cc.targetPrefix}c++" ];
   buildFlags = [ "build" ];
 
   enableParallelBuilding = true;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://stockfishchess.org/";
     description = "Strong open source chess engine";
     longDescription = ''
@@ -42,7 +55,7 @@ stdenv.mkDerivation {
       much stronger than the best human chess grandmasters.
       '';
     maintainers = with maintainers; [ luispedro peti ];
-    platforms = ["x86_64-linux" "i686-linux"];
+    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
     license = licenses.gpl2;
   };