Skip to content

Commit a22570f

Browse files
authored
craftos-pc: support for darwin (#240092)
2 parents 584d39c + de29ab5 commit a22570f

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

pkgs/by-name/cr/craftos-pc/package.nix

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)