diff options
Diffstat (limited to 'pkgs/applications/terminal-emulators/contour/default.nix')
-rw-r--r-- | pkgs/applications/terminal-emulators/contour/default.nix | 84 |
1 files changed, 40 insertions, 44 deletions
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix index a1692dd255a2c..4a50625cc81eb 100644 --- a/pkgs/applications/terminal-emulators/contour/default.nix +++ b/pkgs/applications/terminal-emulators/contour/default.nix @@ -1,12 +1,16 @@ { lib , stdenv -, mkDerivation , fetchFromGitHub +, fetchurl , cmake , pkg-config , freetype , fontconfig -, libGL +, libunicode +, libutempter +, termbench-pro +, qtmultimedia +, wrapQtAppsHook , pcre , boost , catch2 @@ -16,50 +20,43 @@ , yaml-cpp , ncurses , file -, darwin +, utmp +, sigtool , nixosTests +, installShellFiles }: -let - # Commits refs come from https://github.com/contour-terminal/contour/blob/master/scripts/install-deps.sh - libunicode-src = fetchFromGitHub { - owner = "contour-terminal"; - repo = "libunicode"; - rev = "c2369b6380df1197476b08d3e2d0e96b6446f776"; - sha256 = "sha256-kq7GpFCkrJG7F9/YEGz3gMTgYzhp/QB8D5b9wwMaLvQ="; - }; - - termbench-pro-src = fetchFromGitHub { - owner = "contour-terminal"; - repo = "termbench-pro"; - rev = "cd571e3cebb7c00de9168126b28852f32fb204ed"; - sha256 = "sha256-dNtOmBu63LFYfiGjXf34C2tiG8pMmsFT4yK3nBnK9WI="; - }; -in -mkDerivation rec { +stdenv.mkDerivation (final: { pname = "contour"; - version = "0.3.1.200"; + version = "0.3.12.262"; src = fetchFromGitHub { owner = "contour-terminal"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-TpxVC0GFZD3jGISnDWHKEetgVVpznm5k/Vc2dwVfSG4="; + repo = "contour"; + rev = "v${final.version}"; + hash = "sha256-4R0NyUtsyr3plYfVPom+EjJ5W0Cb/uuaSB5zyJ0yIB4="; }; outputs = [ "out" "terminfo" ]; + # fix missing <QtMultimedia/QAudioSink> on Darwin and codesign the binary + patches = [ ./contour-cmakelists.diff ./macos-codesign.diff ]; + nativeBuildInputs = [ cmake pkg-config ncurses file - ]; + wrapQtAppsHook + installShellFiles + ] ++ lib.optionals stdenv.isDarwin [ sigtool ]; buildInputs = [ fontconfig freetype - libGL + libunicode + termbench-pro + qtmultimedia pcre boost catch2 @@ -67,38 +64,37 @@ mkDerivation rec { microsoft-gsl range-v3 yaml-cpp - ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.libs.utmp ]; - - preConfigure = '' - mkdir -p _deps/sources + ] + ++ lib.optionals stdenv.isLinux [ libutempter ] + ++ lib.optionals stdenv.isDarwin [ utmp ]; - cat > _deps/sources/CMakeLists.txt <<EOF - macro(ContourThirdParties_Embed_libunicode) - add_subdirectory(\''${ContourThirdParties_SRCDIR}/libunicode EXCLUDE_FROM_ALL) - endmacro() - macro(ContourThirdParties_Embed_termbench_pro) - add_subdirectory(\''${ContourThirdParties_SRCDIR}/termbench_pro EXCLUDE_FROM_ALL) - endmacro() - EOF - - ln -s ${libunicode-src} _deps/sources/libunicode - ln -s ${termbench-pro-src} _deps/sources/termbench_pro + cmakeFlags = [ "-DCONTOUR_QT_VERSION=6" ]; + preConfigure = '' # Don't fix Darwin app bundle sed -i '/fixup_bundle/d' src/contour/CMakeLists.txt ''; postInstall = '' mkdir -p $out/nix-support $terminfo/share + '' + lib.optionalString stdenv.isDarwin '' + mkdir $out/Applications + installShellCompletion --zsh $out/contour.app/Contents/Resources/shell-integration/shell-integration.zsh + installShellCompletion --fish $out/contour.app/Contents/Resources/shell-integration/shell-integration.fish + cp -r $out/contour.app/Contents/Resources/terminfo $terminfo/share + mv $out/contour.app $out/Applications + ln -s $out/bin $out/Applications/contour.app/Contents/MacOS + '' + lib.optionalString stdenv.isLinux '' mv $out/share/terminfo $terminfo/share/ + installShellCompletion --zsh $out/share/contour/shell-integration/shell-integration.zsh + installShellCompletion --fish $out/share/contour/shell-integration/shell-integration.fish + '' + '' echo "$terminfo" >> $out/nix-support/propagated-user-env-packages ''; passthru.tests.test = nixosTests.terminal-emulators.contour; meta = with lib; { - # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/contour.x86_64-darwin - broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; description = "Modern C++ Terminal Emulator"; homepage = "https://github.com/contour-terminal/contour"; changelog = "https://github.com/contour-terminal/contour/raw/v${version}/Changelog.md"; @@ -107,4 +103,4 @@ mkDerivation rec { platforms = platforms.unix; mainProgram = "contour"; }; -} +}) |