vcmi: rework derivation

This commit is contained in:
azahi
2025-12-25 07:14:17 +03:00
parent 51a42dc0fd
commit 8a88d2ab7a
+43 -34
View File
@@ -1,30 +1,29 @@
{
lib,
stdenv,
fetchFromGitHub,
SDL2,
SDL2_image,
SDL2_mixer,
SDL2_ttf,
boost,
cmake,
fetchFromGitHub,
ffmpeg,
fuzzylite,
innoextract,
lib,
libsquish,
luajit,
minizip,
ninja,
onetbb,
onnxruntime,
pkg-config,
python3,
onetbb,
qt6,
stdenv,
unshield,
versionCheckHook,
xz,
zlib,
testers,
vcmi,
libsForQt5,
libsquish,
onnxruntime,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vcmi";
@@ -43,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
ninja
pkg-config
python3
libsForQt5.wrapQtAppsHook
qt6.wrapQtAppsHook
];
buildInputs = [
@@ -54,29 +53,26 @@ stdenv.mkDerivation (finalAttrs: {
boost
ffmpeg
fuzzylite
libsquish
luajit
minizip
libsForQt5.qtbase
libsForQt5.qttools
onetbb
onnxruntime
qt6.qtbase
qt6.qttools
xz
zlib
libsquish
onnxruntime
];
cmakeFlags = [
"-DENABLE_LUA:BOOL=ON"
"-DENABLE_ERM:BOOL=ON"
"-DENABLE_GOLDMASTER:BOOL=ON"
"-DENABLE_PCH:BOOL=OFF"
"-DENABLE_TEST:BOOL=OFF" # Tests require HOMM3 data files.
"-DFORCE_BUNDLED_MINIZIP:BOOL=OFF"
"-DFORCE_BUNDLED_FL:BOOL=OFF"
"-DCMAKE_INSTALL_RPATH:STRING=$out/lib/vcmi"
"-DCMAKE_INSTALL_BINDIR:STRING=bin"
"-DCMAKE_INSTALL_LIBDIR:STRING=lib"
"-DCMAKE_INSTALL_DATAROOTDIR:STRING=share"
(lib.cmakeBool "ENABLE_CLIENT" true)
(lib.cmakeBool "ENABLE_GOLDMASTER" true)
(lib.cmakeBool "ENABLE_TEST" false) # Requires nonfree data files.
(lib.cmakeBool "ENABLE_PCH" false)
(lib.cmakeFeature "CMAKE_INSTALL_RPATH" "$out/lib/vcmi")
(lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
(lib.cmakeFeature "CMAKE_INSTALL_DATAROOTDIR" "share")
];
postFixup = ''
@@ -90,23 +86,36 @@ stdenv.mkDerivation (finalAttrs: {
}"
'';
passthru.tests.version = testers.testVersion {
package = vcmi;
command = ''
XDG_DATA_HOME="$TMPDIR" XDG_CACHE_HOME="$TMPDIR" XDG_CONFIG_HOME="$TMPDIR" \
vcmiclient --version
'';
};
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/vcmiclient";
versionCheckProgramArg = "--version";
versionCheckKeepEnvironment = [
"XDG_CACHE_HOME"
"XDG_CONFIG_HOME"
"XDG_DATA_HOME"
];
preVersionCheck = ''
export \
XDG_CACHE_HOME="$TMPDIR" \
XDG_CONFIG_HOME="$TMPDIR" \
XDG_DATA_HOME="$TMPDIR"
'';
meta = {
description = "Open-source engine for Heroes of Might and Magic III";
longDescription = ''
VCMI is an open-source engine for Heroes of Might and Magic III, offering
new and extended possibilities. To use VCMI, you need to own the original
data files.
'';
homepage = "https://vcmi.eu";
changelog = "https://github.com/vcmi/vcmi/blob/${finalAttrs.src.rev}/ChangeLog.md";
changelog = "https://vcmi.eu/ChangeLog";
license = with lib.licenses; [
gpl2Plus
cc-by-sa-40
];
maintainers = with lib.maintainers; [ azahi ];
maintainers = [ lib.maintainers.azahi ];
platforms = lib.platforms.linux;
mainProgram = "vcmilauncher";
};