3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #208826 from Luflosi/teeworlds-macOS

teeworlds: build on macOS
This commit is contained in:
Weijia Wang 2023-01-29 06:32:50 +01:00 committed by GitHub
commit 9562fb479b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 76 additions and 8 deletions

View file

@ -1,6 +1,8 @@
{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsa-lib { fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsa-lib
, libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils , libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils
, nixosTests , nixosTests
, Carbon
, Cocoa
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,26 +17,57 @@ stdenv.mkDerivation rec {
fetchSubmodules = true; 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 = '' postPatch = ''
# set compiled-in DATA_DIR so resources can be found # set compiled-in DATA_DIR so resources can be found
substituteInPlace src/engine/shared/storage.cpp \ substituteInPlace src/engine/shared/storage.cpp \
--replace '#define DATA_DIR "data"' \ --replace '#define DATA_DIR "data"' \
'#define DATA_DIR "${placeholder "out"}/share/teeworlds/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 ]; nativeBuildInputs = [
cmake
buildInputs = [ pkg-config
python3 alsa-lib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack ] ++ 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 # Convert and install desktop icon
mkdir -p $out/share/pixmaps mkdir -p $out/share/pixmaps
icotool --extract --index 1 --output $out/share/pixmaps/teeworlds.png $src/other/icons/teeworlds.ico icotool --extract --index 1 --output $out/share/pixmaps/teeworlds.png $src/other/icons/teeworlds.ico
# Install menu item # Install menu item
install -D $src/other/teeworlds.desktop $out/share/applications/teeworlds.desktop 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; passthru.tests.teeworlds = nixosTests.teeworlds;
@ -51,7 +84,7 @@ stdenv.mkDerivation rec {
homepage = "https://teeworlds.com/"; homepage = "https://teeworlds.com/";
license = "BSD-style, see `license.txt'"; license = "BSD-style, see `license.txt'";
maintainers = with lib.maintainers; [ astsmtl ]; 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

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