Merge pull request #268658 from jtbx/teeworlds-buildClient

teeworlds, ddnet: add buildClient feature flag
This commit is contained in:
Naïm Favier 2023-11-20 23:45:13 +01:00 committed by GitHub
commit b6eba20e67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 11 deletions

View File

@ -30,6 +30,7 @@
, Cocoa
, OpenGL
, Security
, buildClient ? true
}:
stdenv.mkDerivation rec {
@ -64,16 +65,16 @@ stdenv.mkDerivation rec {
buildInputs = [
curl
freetype
libGLU
libnotify
libogg
libX11
opusfile
pcre
python3
SDL2
sqlite
] ++ lib.optionals buildClient ([
freetype
libGLU
libogg
opusfile
SDL2
wavpack
ffmpeg
x264
@ -81,7 +82,14 @@ stdenv.mkDerivation rec {
vulkan-headers
glslang
spirv-tools
] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa OpenGL Security ];
] ++ lib.optionals stdenv.isLinux [
libX11
] ++ lib.optionals stdenv.isDarwin [
Carbon
Cocoa
OpenGL
Security
]);
postPatch = ''
substituteInPlace src/engine/shared/storage.cpp \
@ -90,11 +98,21 @@ stdenv.mkDerivation rec {
cmakeFlags = [
"-DAUTOUPDATE=OFF"
"-DCLIENT=${if buildClient then "ON" else "OFF"}"
];
doCheck = true;
checkTarget = "run_tests";
postInstall = lib.optionalString (!buildClient) ''
# DDNet's CMakeLists.txt automatically installs .desktop
# shortcuts and icons for the client, even if the client
# is not supposed to be built
rm -rf $out/share/applications
rm -rf $out/share/icons
rm -rf $out/share/metainfo
'';
meta = with lib; {
description = "A Teeworlds modification with a unique cooperative gameplay.";
longDescription = ''

View File

@ -3,6 +3,7 @@
, nixosTests
, Carbon
, Cocoa
, buildClient ? true
}:
stdenv.mkDerivation rec {
@ -38,21 +39,30 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
cmake
pkg-config
] ++ lib.optionals stdenv.isLinux [
] ++ lib.optionals (buildClient && stdenv.isLinux) [
icoutils
];
buildInputs = [
python3 libGLU SDL2 lua5_3 zlib freetype wavpack
python3 lua5_3 zlib
] ++ lib.optionals buildClient ([
libGLU
SDL2
freetype
wavpack
] ++ lib.optionals stdenv.isLinux [
alsa-lib
libX11
] ++ lib.optionals stdenv.isDarwin [
Carbon
Cocoa
]);
cmakeFlags = [
"-DCLIENT=${if buildClient then "ON" else "OFF"}"
];
postInstall = lib.optionalString stdenv.isLinux ''
postInstall = lib.optionalString buildClient (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
@ -68,7 +78,7 @@ stdenv.mkDerivation rec {
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;

View File

@ -37672,6 +37672,7 @@ with pkgs;
ddnet = callPackage ../games/ddnet {
inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL Security;
};
ddnet-server = ddnet.override { buildClient = false; };
ddns-go = callPackage ../tools/networking/ddns-go { };
@ -38458,6 +38459,7 @@ with pkgs;
teeworlds = callPackage ../games/teeworlds {
inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
};
teeworlds-server = teeworlds.override { buildClient = false; };
tengine = callPackage ../servers/http/tengine {
modules = with nginxModules; [ rtmp dav moreheaders modsecurity ];