diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix new file mode 100644 index 00000000000000..78b32f7fca15af --- /dev/null +++ b/pkgs/applications/misc/klayout/default.nix @@ -0,0 +1,63 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchpatch +, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns +, which, perl, makeWrapper, fixDarwinDylibNames +}: + +mkDerivation rec { + pname = "klayout"; + version = "0.26.2"; + + src = fetchFromGitHub { + owner = "KLayout"; + repo = "klayout"; + rev = "v${version}"; + sha256 = "0svyqayvr45snqw0dhx6jpnjhg4qb097pz28s8k1crx5i31nnd94"; + }; + + postPatch = '' + substituteInPlace src/klayout.pri --replace "-Wno-reserved-user-defined-literal" "" + patchShebangs . + ''; + + nativeBuildInputs = [ + which + ]; + + buildInputs = [ + python + ruby + qtbase + qtmultimedia + qttools + qtxmlpatterns + ]; + + buildPhase = '' + runHook preBuild + mkdir -p $out/lib + ./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES + runHook postBuild + ''; + + postBuild = '' + mkdir $out/bin + mv $out/lib/klayout $out/bin/ + ''; + + NIX_CFLAGS_COMPILE = [ "-Wno-parentheses" ]; + + dontInstall = true; # Installation already happens as part of "build.sh" + + # Fix: "gsiDeclQMessageLogger.cc:126:42: error: format not a string literal + # and no format arguments [-Werror=format-security]" + hardeningDisable = [ "format" ]; + + meta = with lib; { + description = "High performance layout viewer and editor with support for GDS and OASIS"; + license = with licenses; [ gpl3 ]; + homepage = "https://www.klayout.de/"; + platforms = platforms.linux; + maintainers = with maintainers; [ knedlsepp ]; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30d0abb508a732..43d21dc9ff22a2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19601,6 +19601,8 @@ in kiwix = callPackage ../applications/misc/kiwix { }; + klayout = libsForQt5.callPackage ../applications/misc/klayout { }; + kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { }; kmymoney = libsForQt5.callPackage ../applications/office/kmymoney {