teeworlds: build on macOS

This commit is contained in:
Luflosi 2022-12-29 21:47:32 +01:00
parent 0289bacdfd
commit 38cb19ace8
No known key found for this signature in database
GPG Key ID: 4E41E29EDCC345D0
3 changed files with 75 additions and 7 deletions

View File

@ -1,6 +1,8 @@
{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsa-lib
, libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils
, nixosTests
, Carbon
, Cocoa
}:
stdenv.mkDerivation rec {
@ -15,26 +17,57 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
patches = [
# Can't use fetchpatch or fetchpatch2 because of https://github.com/NixOS/nixpkgs/issues/32084
# Using fetchurl instead is also not a good idea, see https://github.com/NixOS/nixpkgs/issues/32084#issuecomment-727223713
./rename-VERSION-to-VERSION.txt.patch
];
postPatch = ''
# set compiled-in DATA_DIR so resources can be found
substituteInPlace src/engine/shared/storage.cpp \
--replace '#define DATA_DIR "data"' \
'#define DATA_DIR "${placeholder "out"}/share/teeworlds/data"'
# Quote nonsense is a workaround for https://github.com/NixOS/nix/issues/661
substituteInPlace 'other/bundle/client/Info.plist.in' \
--replace ${"'"}''${TARGET_CLIENT}' 'teeworlds' \
--replace ${"'"}''${PROJECT_VERSION}' '${version}'
'';
nativeBuildInputs = [ cmake pkg-config icoutils ];
buildInputs = [
python3 alsa-lib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack
nativeBuildInputs = [
cmake
pkg-config
] ++ lib.optionals stdenv.isLinux [
icoutils
];
postInstall = ''
buildInputs = [
python3 libGLU SDL2 lua5_3 zlib freetype wavpack
] ++ lib.optionals stdenv.isLinux [
alsa-lib
libX11
] ++ lib.optionals stdenv.isDarwin [
Carbon
Cocoa
];
postInstall = lib.optionalString stdenv.isLinux ''
# Convert and install desktop icon
mkdir -p $out/share/pixmaps
icotool --extract --index 1 --output $out/share/pixmaps/teeworlds.png $src/other/icons/teeworlds.ico
# Install menu item
install -D $src/other/teeworlds.desktop $out/share/applications/teeworlds.desktop
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p "$out/Applications/teeworlds.app/Contents/MacOS"
mkdir -p "$out/Applications/teeworlds.app/Contents/Resources"
cp '../other/icons/teeworlds.icns' "$out/Applications/teeworlds.app/Contents/Resources/"
cp '../other/bundle/client/Info.plist.in' "$out/Applications/teeworlds.app/Contents/Info.plist"
cp '../other/bundle/client/PkgInfo' "$out/Applications/teeworlds.app/Contents/"
ln -s "$out/bin/teeworlds" "$out/Applications/teeworlds.app/Contents/MacOS/"
ln -s "$out/share/teeworlds/data" "$out/Applications/teeworlds.app/Contents/Resources/data"
'';
passthru.tests.teeworlds = nixosTests.teeworlds;
@ -52,6 +85,6 @@ stdenv.mkDerivation rec {
homepage = "https://teeworlds.com/";
license = "BSD-style, see `license.txt'";
maintainers = with lib.maintainers; [ astsmtl Luflosi ];
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
}

View File

@ -0,0 +1,33 @@
From 86d6687ef07f7f05457a7f67537b650656b13820 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20M=C3=BCller?= <robert.mueller@uni-siegen.de>
Date: Fri, 15 Oct 2021 23:45:50 +0200
Subject: [PATCH] rename VERSION to VERSION.txt:
Fixes compilation on systems with case insensitive file names where the standard library includes the version file source code.
---
src/engine/external/json-parser/{VERSION => VERSION.txt} | 0
src/engine/external/pnglite/{VERSION => VERSION.txt} | 0
src/engine/external/wavpack/{VERSION => VERSION.txt} | 0
src/engine/external/zlib/{VERSION => VERSION.txt} | 0
4 files changed, 0 insertions(+), 0 deletions(-)
rename src/engine/external/json-parser/{VERSION => VERSION.txt} (100%)
rename src/engine/external/pnglite/{VERSION => VERSION.txt} (100%)
rename src/engine/external/wavpack/{VERSION => VERSION.txt} (100%)
rename src/engine/external/zlib/{VERSION => VERSION.txt} (100%)
diff --git a/src/engine/external/json-parser/VERSION b/src/engine/external/json-parser/VERSION.txt
similarity index 100%
rename from src/engine/external/json-parser/VERSION
rename to src/engine/external/json-parser/VERSION.txt
diff --git a/src/engine/external/pnglite/VERSION b/src/engine/external/pnglite/VERSION.txt
similarity index 100%
rename from src/engine/external/pnglite/VERSION
rename to src/engine/external/pnglite/VERSION.txt
diff --git a/src/engine/external/wavpack/VERSION b/src/engine/external/wavpack/VERSION.txt
similarity index 100%
rename from src/engine/external/wavpack/VERSION
rename to src/engine/external/wavpack/VERSION.txt
diff --git a/src/engine/external/zlib/VERSION b/src/engine/external/zlib/VERSION.txt
similarity index 100%
rename from src/engine/external/zlib/VERSION
rename to src/engine/external/zlib/VERSION.txt

View File

@ -35402,7 +35402,9 @@ with pkgs;
teetertorture = callPackage ../games/teetertorture { };
teeworlds = callPackage ../games/teeworlds { };
teeworlds = callPackage ../games/teeworlds {
inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
};
tengine = callPackage ../servers/http/tengine {
openssl = openssl_1_1;