@@ -44,8 +44,10 @@ stdenv.mkDerivation rec {
4444 } ;
4545
4646 nativeBuildInputs = [
47- patchelf
4847 unzip
48+ ]
49+ ++ lib . optionals stdenv . hostPlatform . isLinux [
50+ patchelf
4951 ] ;
5052 buildInputs = [
5153 poco
@@ -56,14 +58,16 @@ stdenv.mkDerivation rec {
5658 libpng
5759 pngpp
5860 libwebp
61+ ]
62+ ++ lib . optionals stdenv . hostPlatform . isLinux [
5963 libX11
6064 ] ;
6165 strictDeps = true ;
6266
6367 preBuild = ''
6468 cp -R ${ craftos2-lua } /* ./craftos2-lua/
6569 chmod -R u+w ./craftos2-lua
66- make -C craftos2-lua linux
70+ make -C craftos2-lua ${ if stdenv . hostPlatform . isDarwin then "macosx" else " linux" }
6771 '' ;
6872
6973 buildPhase = ''
@@ -83,21 +87,29 @@ stdenv.mkDerivation rec {
8387 installPhase = ''
8488 mkdir -p $out/bin $out/lib $out/share/craftos $out/include
8589 DESTDIR=$out/bin make install
86- cp ./craftos2-lua/src/liblua.so $out/lib
87- patchelf --replace-needed craftos2-lua/src/liblua.so liblua.so $out/bin/craftos
90+ cp ./craftos2-lua/src/liblua${ stdenv . hostPlatform . extensions . sharedLibrary } $out/lib
91+ ${ lib . optionalString stdenv . hostPlatform . isDarwin ''
92+ chmod +w $out/bin/craftos
93+ install_name_tool -change liblua${ stdenv . hostPlatform . extensions . sharedLibrary } $out/lib/liblua${ stdenv . hostPlatform . extensions . sharedLibrary } $out/bin/craftos
94+ '' }
95+ ${ lib . optionalString stdenv . hostPlatform . isLinux ''
96+ patchelf --replace-needed craftos2-lua/src/liblua${ stdenv . hostPlatform . extensions . sharedLibrary } liblua${ stdenv . hostPlatform . extensions . sharedLibrary } $out/bin/craftos
97+ '' }
8898 cp -R api $out/include/CraftOS-PC
8999 cp -R ${ craftos2-rom } /* $out/share/craftos
90100
91- mkdir -p resources/linux-icons
92- unzip resources/linux-icons.zip -d resources/linux-icons
93- for dim in 16 24 32 48 64 96 128 256 1024; do
94- dir="$out/share/icons/hicolor/$dimx$dim/apps"
95- mkdir -p "$dir"
96- cp "resources/linux-icons/$dim.png" "$dir/craftos.png"
97- done
101+ ${ lib . optionalString stdenv . hostPlatform . isLinux ''
102+ mkdir -p resources/linux-icons
103+ unzip resources/linux-icons.zip -d resources/linux-icons
104+ for dim in 16 24 32 48 64 96 128 256 1024; do
105+ dir="$out/share/icons/hicolor/$dimx$dim/apps"
106+ mkdir -p "$dir"
107+ cp "resources/linux-icons/$dim.png" "$dir/craftos.png"
108+ done
98109
99- mkdir -p $out/share/applications
100- cp resources/linux-icons/CraftOS-PC.desktop $out/share/applications/CraftOS-PC.desktop
110+ mkdir -p $out/share/applications
111+ cp resources/linux-icons/CraftOS-PC.desktop $out/share/applications/CraftOS-PC.desktop
112+ '' }
101113 '' ;
102114
103115 passthru . tests = {
@@ -112,7 +124,7 @@ stdenv.mkDerivation rec {
112124 mit
113125 free
114126 ] ;
115- platforms = platforms . linux ;
127+ platforms = platforms . linux ++ platforms . darwin ;
116128 maintainers = with maintainers ; [
117129 siraben
118130 tomodachi94
0 commit comments