Merge pull request #208433 from OPNA2608/init/alice-tools

This commit is contained in:
Sandro 2023-02-07 01:03:42 +01:00 committed by GitHub
commit 935e19528e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,106 @@
{ stdenv
, lib
, gitUpdater
, fetchFromGitHub
, fetchpatch
, meson
, ninja
, pkg-config
, bison
, flex
, libiconv
, libpng
, libjpeg
, libwebp
, zlib
, withGUI ? true
, qtbase ? null
, wrapQtAppsHook ? null
}:
assert withGUI -> qtbase != null && wrapQtAppsHook != null;
stdenv.mkDerivation rec {
pname = "alice-tools";
version = "0.12.1";
src = fetchFromGitHub {
owner = "nunuhara";
repo = "alice-tools";
rev = version;
fetchSubmodules = true;
hash = "sha256-uXiNNneAOTDupgc+ZvaeRNbEQFJBv4ppdEc3kZeUsg8=";
};
patches = [
# These two patches (one to alice-tools, one to a subproject) improve DCF & PCF parsing
# Remove them when version > 0.12.1
(fetchpatch {
url = "https://github.com/nunuhara/alice-tools/commit/c800e85b37998d7a47060f5da4b1782d7201a042.patch";
excludes = [ "subprojects/libsys4" ];
hash = "sha256-R5ckFHqUWHdAPkFa53UbVeLgxJg/8qGLTQWwj5YRJc4=";
})
(fetchpatch {
url = "https://github.com/nunuhara/libsys4/commit/cff2b826d1618fb17616cdd288ab0c50f35e8032.patch";
stripLen = 1;
extraPrefix = "subprojects/libsys4/";
hash = "sha256-CmetiVP2kGL+MwuE9OoEDrDFxzwWvv1TtZuq1li1uIw=";
})
];
postPatch = lib.optionalString (withGUI && lib.versionAtLeast qtbase.version "6.0") ''
substituteInPlace src/meson.build \
--replace qt5 qt6
'';
mesonFlags = lib.optionals (withGUI && lib.versionAtLeast qtbase.version "6.0") [
# Qt6 requires at least C++17, project uses compiler's default, default too old on Darwin & aarch64-linux
"-Dcpp_std=c++17"
];
nativeBuildInputs = [
meson
ninja
pkg-config
bison
flex
] ++ lib.optionals withGUI [
wrapQtAppsHook
];
buildInputs = [
libiconv
libpng
libjpeg
libwebp
zlib
] ++ lib.optionals withGUI [
qtbase
];
dontWrapQtApps = true;
# Default install step only installs a static library of a build dependency
installPhase = ''
runHook preInstall
install -Dm755 src/alice $out/bin/alice
'' + lib.optionalString withGUI ''
install -Dm755 src/galice $out/bin/galice
wrapQtApp $out/bin/galice
'' + ''
runHook postInstall
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Tools for extracting/editing files from AliceSoft games";
homepage = "https://github.com/nunuhara/alice-tools";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ OPNA2608 ];
mainProgram = if withGUI then "galice" else "alice";
};
}

View file

@ -1371,6 +1371,14 @@ with pkgs;
albert = libsForQt5.callPackage ../applications/misc/albert {};
alice-tools = callPackage ../tools/games/alice-tools {
withGUI = false;
};
alice-tools-qt5 = libsForQt5.callPackage ../tools/games/alice-tools { };
alice-tools-qt6 = qt6Packages.callPackage ../tools/games/alice-tools { };
allure = callPackage ../development/tools/allure {};
aquosctl = callPackage ../tools/misc/aquosctl { };