Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 26 additions & 14 deletions pkgs/by-name/cr/craftos-pc/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ stdenv.mkDerivation rec {
};

nativeBuildInputs = [
patchelf
unzip
]
++ lib.optionals stdenv.hostPlatform.isLinux [
patchelf
];
buildInputs = [
poco
Expand All @@ -56,14 +58,16 @@ stdenv.mkDerivation rec {
libpng
pngpp
libwebp
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
];
strictDeps = true;

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 = ''
Expand All @@ -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 = {
Expand All @@ -112,7 +124,7 @@ stdenv.mkDerivation rec {
mit
free
];
platforms = platforms.linux;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
siraben
tomodachi94
Expand Down
Loading