The Qt GUI was unused: out of make-app-release since March, not built by the gate, and its app bundle could not start (no platform plugin). Every renderer and input change had to be made in it separately. kge is the ImGui frontend only. Removes QtFrontend/QtInputHandler/QtRenderer, the KTE_USE_QT option and its #if branches (Command.cc, GUITheme.h, main.cc), the Nix qt package and dev shell, the commented-out Qt release steps, the Qt frontend plan, and Qt mentions in AGENTS.md, DEVELOPER_GUIDE.md, REWRITE.md and code comments. Git history keeps the code. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
101 lines
2.2 KiB
Nix
101 lines
2.2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
cmake,
|
|
pkg-config,
|
|
ncurses,
|
|
pcre2,
|
|
SDL2,
|
|
libGL,
|
|
xorg,
|
|
installShellFiles,
|
|
copyDesktopItems,
|
|
makeDesktopItem,
|
|
graphical ? false,
|
|
}:
|
|
let
|
|
cmakeContent = builtins.readFile ./CMakeLists.txt;
|
|
cmakeLines = lib.splitString "\n" cmakeContent;
|
|
versionLine = lib.findFirst (
|
|
l: builtins.match ".*set\\(KTE_VERSION \".+\"\\).*" l != null
|
|
) (throw "KTE_VERSION not found in CMakeLists.txt") cmakeLines;
|
|
version = builtins.head (builtins.match ".*set\\(KTE_VERSION \"(.+)\"\\).*" versionLine);
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = if graphical then "kge" else "kte";
|
|
inherit version;
|
|
|
|
src = lib.cleanSource ./.;
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
installShellFiles
|
|
] ++ lib.optionals graphical [
|
|
copyDesktopItems
|
|
];
|
|
|
|
buildInputs = [
|
|
ncurses
|
|
pcre2 # regex engine (optional; std::regex without it)
|
|
] ++ lib.optionals graphical [
|
|
SDL2
|
|
libGL
|
|
xorg.libX11
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DBUILD_GUI=${if graphical then "ON" else "OFF"}"
|
|
"-DCMAKE_BUILD_TYPE=Debug"
|
|
"-DKTE_STATIC_LINK=OFF"
|
|
];
|
|
|
|
desktopItems = lib.optionals graphical [
|
|
(makeDesktopItem {
|
|
name = "kge";
|
|
desktopName = "kge";
|
|
genericName = "Text Editor";
|
|
comment = "kyle's graphical text editor";
|
|
exec = "kge %F";
|
|
icon = "kge";
|
|
terminal = false;
|
|
categories = [ "Utility" "TextEditor" "Development" ];
|
|
mimeTypes = [
|
|
"text/plain"
|
|
"text/x-c"
|
|
"text/x-c++"
|
|
"text/x-python"
|
|
"text/x-go"
|
|
"text/x-rust"
|
|
"application/json"
|
|
"text/markdown"
|
|
"text/x-shellscript"
|
|
];
|
|
})
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin
|
|
cp kte $out/bin/
|
|
installManPage ../docs/kte.1
|
|
|
|
${lib.optionalString graphical ''
|
|
cp kge $out/bin/kge
|
|
installManPage ../docs/kge.1
|
|
|
|
mkdir -p $out/share/icons/hicolor/256x256/apps
|
|
cp ../kge.png $out/share/icons/hicolor/256x256/apps/kge.png
|
|
''}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "kyle's text editor" + lib.optionalString graphical " (graphical)";
|
|
platforms = lib.platforms.unix;
|
|
mainProgram = if graphical then "kge" else "kte";
|
|
};
|
|
}
|