diff --git a/pkgs/development/libraries/fuzzylite/default.nix b/pkgs/development/libraries/fuzzylite/default.nix new file mode 100644 index 000000000000..b6c7767a8d6f --- /dev/null +++ b/pkgs/development/libraries/fuzzylite/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, ninja +, useFloat ? false +}: + +stdenv.mkDerivation rec { + pname = "fuzzylite"; + version = "6.0"; + + src = fetchFromGitHub { + owner = "fuzzylite"; + repo = "fuzzylite"; + rev = "v${version}"; + hash = "sha256-i1txeUE/ZSRggwLDtpS8dd4uuZfHX9w3zRH0gBgGXnk="; + }; + sourceRoot = "source/fuzzylite"; + + outputs = [ "out" "dev" ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "-Werror" "-Wno-error" + ''; + + nativeBuildInputs = [ + cmake + ninja + ]; + + cmakeFlags = [ + "-DFL_BUILD_TESTS:BOOL=OFF" + "-DFL_USE_FLOAT:BOOL=${if useFloat then "ON" else "OFF"}" + ]; + + meta = with lib; { + description = "A fuzzy logic control library in C++"; + homepage = "https://fuzzylite.com"; + changelog = "https://github.com/fuzzylite/fuzzylite/${src.rev}/release/CHANGELOG"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ azahi ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix index 632d4fe7f2d8..abd0551081fd 100644 --- a/pkgs/games/vcmi/default.nix +++ b/pkgs/games/vcmi/default.nix @@ -8,6 +8,7 @@ , boost , cmake , ffmpeg +, fuzzylite , innoextract , luajit , minizip @@ -15,7 +16,9 @@ , pkg-config , python3 , qtbase +, qttools , tbb +, unshield , wrapQtAppsHook , zlib , testers @@ -24,21 +27,16 @@ stdenv.mkDerivation rec { pname = "vcmi"; - version = "1.1.1"; + version = "1.2.1"; src = fetchFromGitHub { owner = "vcmi"; repo = "vcmi"; rev = version; fetchSubmodules = true; - hash = "sha256-/BHpAXOCLi6d0+/uE79g8p6YO1swizItAwVlPVf/nkQ="; + hash = "sha256-F1g3ric23jKetl5aBG5NRpT4LnGXhBKZmGp2hg6Io9s="; }; - postPatch = '' - substituteInPlace Version.cpp.in \ - --subst-var-by GIT_SHA1 "0000000"; - ''; - nativeBuildInputs = [ cmake ninja @@ -54,21 +52,24 @@ stdenv.mkDerivation rec { SDL2_ttf boost ffmpeg + fuzzylite luajit minizip qtbase + qttools tbb zlib ]; cmakeFlags = [ - "-DENABLE_TEST:BOOL=NO" - "-DENABLE_PCH:BOOL=NO" - # Make libvcmi.so discoverable in a non-standard location. - "-DCMAKE_INSTALL_RPATH:STRING=${placeholder "out"}/lib/vcmi" - # Upstream assumes relative value while Nixpkgs passes absolute. - # Both should be allowed: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html - # Meanwhile work it around by passing a relative value. + "-DENABLE_LUA:BOOL=ON" + "-DENABLE_ERM:BOOL=ON" + "-DENABLE_GITVERSION:BOOL=OFF" + "-DENABLE_PCH:BOOL=OFF" + "-DENABLE_TEST:BOOL=OFF" + "-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" @@ -76,9 +77,11 @@ stdenv.mkDerivation rec { postFixup = '' wrapProgram $out/bin/vcmibuilder \ - --prefix PATH : "${lib.makeBinPath [ innoextract ]}" + --prefix PATH : "${lib.makeBinPath [ innoextract ffmpeg unshield ]}" ''; + doCheck = true; + passthru.tests.version = testers.testVersion { package = vcmi; command = '' @@ -88,12 +91,12 @@ stdenv.mkDerivation rec { }; meta = with lib; { - description = "Open-source engine for Heroes of Might and Magic III"; + description = "An open-source engine for Heroes of Might and Magic III"; homepage = "https://vcmi.eu"; changelog = "https://github.com/vcmi/vcmi/blob/${src.rev}/ChangeLog"; license = with licenses; [ gpl2Only cc-by-sa-40 ]; maintainers = with maintainers; [ azahi ]; platforms = platforms.linux; - mainProgram = "vcmiclient"; + mainProgram = "vcmilauncher"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index daa2f2c392b4..b71f0c6f1da8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4888,6 +4888,8 @@ with pkgs; fuzzel = callPackage ../applications/misc/fuzzel { }; + fuzzylite = callPackage ../development/libraries/fuzzylite { }; + flashfocus = callPackage ../misc/flashfocus { }; qt-video-wlr = libsForQt5.callPackage ../applications/misc/qt-video-wlr { };