craftos-pc: support for darwin (#240092)

This commit is contained in:
Ben Siraphob
2025-11-12 07:20:42 +00:00
committed by GitHub
+26 -14
View File
@@ -44,8 +44,10 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [
patchelf
unzip
]
++ lib.optionals stdenv.hostPlatform.isLinux [
patchelf
];
buildInputs = [
poco
@@ -56,6 +58,8 @@ stdenv.mkDerivation rec {
libpng
pngpp
libwebp
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
];
strictDeps = true;
@@ -63,7 +67,7 @@ stdenv.mkDerivation rec {
preBuild = ''
cp -R ${craftos2-lua}/* ./craftos2-lua/
chmod -R u+w ./craftos2-lua
make -C craftos2-lua linux
make -C craftos2-lua ${if stdenv.hostPlatform.isDarwin then "macosx" else "linux"}
'';
buildPhase = ''
@@ -83,21 +87,29 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin $out/lib $out/share/craftos $out/include
DESTDIR=$out/bin make install
cp ./craftos2-lua/src/liblua.so $out/lib
patchelf --replace-needed craftos2-lua/src/liblua.so liblua.so $out/bin/craftos
cp ./craftos2-lua/src/liblua${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib
${lib.optionalString stdenv.hostPlatform.isDarwin ''
chmod +w $out/bin/craftos
install_name_tool -change liblua${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblua${stdenv.hostPlatform.extensions.sharedLibrary} $out/bin/craftos
''}
${lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf --replace-needed craftos2-lua/src/liblua${stdenv.hostPlatform.extensions.sharedLibrary} liblua${stdenv.hostPlatform.extensions.sharedLibrary} $out/bin/craftos
''}
cp -R api $out/include/CraftOS-PC
cp -R ${craftos2-rom}/* $out/share/craftos
mkdir -p resources/linux-icons
unzip resources/linux-icons.zip -d resources/linux-icons
for dim in 16 24 32 48 64 96 128 256 1024; do
dir="$out/share/icons/hicolor/$dimx$dim/apps"
mkdir -p "$dir"
cp "resources/linux-icons/$dim.png" "$dir/craftos.png"
done
${lib.optionalString stdenv.hostPlatform.isLinux ''
mkdir -p resources/linux-icons
unzip resources/linux-icons.zip -d resources/linux-icons
for dim in 16 24 32 48 64 96 128 256 1024; do
dir="$out/share/icons/hicolor/$dimx$dim/apps"
mkdir -p "$dir"
cp "resources/linux-icons/$dim.png" "$dir/craftos.png"
done
mkdir -p $out/share/applications
cp resources/linux-icons/CraftOS-PC.desktop $out/share/applications/CraftOS-PC.desktop
mkdir -p $out/share/applications
cp resources/linux-icons/CraftOS-PC.desktop $out/share/applications/CraftOS-PC.desktop
''}
'';
passthru.tests = {
@@ -112,7 +124,7 @@ stdenv.mkDerivation rec {
mit
free
];
platforms = platforms.linux;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
siraben
tomodachi94