build non-gui by default
This commit is contained in:
49
default-gui.nix
Normal file
49
default-gui.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
cmake,
|
||||||
|
libGL,
|
||||||
|
SDL2,
|
||||||
|
xorg.libX11
|
||||||
|
installShellFiles,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cmakeContent = builtins.readFile ./CMakeLists.txt;
|
||||||
|
cmakeLines = lib.splitString "\n" cmakeContent;
|
||||||
|
versionLine = lib.findFirst (l: builtins.match ".*set\\(KE_VERSION \".+\"\\).*" l
|
||||||
|
version = builtins.head (builtins.match ".*set\\(KE_VERSION \"(.+)\"\\).*" versio
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "kte";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
ncurses
|
||||||
|
SDL2
|
||||||
|
libGL
|
||||||
|
xorg.libX11
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DBUILD_GUI=ON"
|
||||||
|
"-DCURSES_NEED_NCURSES=TRUE"
|
||||||
|
"-DCURSES_NEED_WIDE=TRUE"
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp kte $out/bin/
|
||||||
|
cp kge $out/bin/
|
||||||
|
|
||||||
|
installManPage ../docs/kte.1
|
||||||
|
installManPage ../docs/kte.1
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
}
|
||||||
28
default.nix
28
default.nix
@@ -1,10 +1,19 @@
|
|||||||
# default.nix
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
cmake,
|
||||||
|
installShellFiles,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
pkgs = import <nixpkgs> {};
|
cmakeContent = builtins.readFile ./CMakeLists.txt;
|
||||||
|
cmakeLines = lib.splitString "\n" cmakeContent;
|
||||||
|
versionLine = lib.findFirst (l: builtins.match ".*set\\(KE_VERSION \".+\"\\).*" l
|
||||||
|
version = builtins.head (builtins.match ".*set\\(KE_VERSION \"(.+)\"\\).*" versio
|
||||||
in
|
in
|
||||||
pkgs.stdenv.mkDerivation {
|
pkgs.stdenv.mkDerivation {
|
||||||
pname = "kte";
|
pname = "kte";
|
||||||
version = "0.1.0";
|
inherit version;
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
@@ -17,8 +26,19 @@ pkgs.stdenv.mkDerivation {
|
|||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DBUILD_GUI=ON"
|
"-DKTE_USE_PIECE_TABLE=ON"
|
||||||
"-DCURSES_NEED_NCURSES=TRUE"
|
"-DCURSES_NEED_NCURSES=TRUE"
|
||||||
"-DCURSES_NEED_WIDE=TRUE"
|
"-DCURSES_NEED_WIDE=TRUE"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp kte $out/bin/
|
||||||
|
|
||||||
|
installManPage ../docs/kte.1
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
55
flake-gui.nix
Normal file
55
flake-gui.nix
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# flake.nix
|
||||||
|
{
|
||||||
|
description = "kte ImGui/SDL2 text editor";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
packages.default = pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "kte";
|
||||||
|
version = "0.1.0";
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
ncurses
|
||||||
|
SDL2
|
||||||
|
libGL
|
||||||
|
xorg.libX11
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DBUILD_GUI=ON"
|
||||||
|
"-DCURSES_NEED_NCURSES=TRUE"
|
||||||
|
"-DCURSES_NEED_WIDE=TRUE"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Alternative (even stronger): completely hide the broken module
|
||||||
|
preConfigure = ''
|
||||||
|
# If the project ships its own FindSDL2.cmake in cmake/, hide it
|
||||||
|
if [ -f cmake/FindSDL2.cmake ]; then
|
||||||
|
mv cmake/FindSDL2.cmake cmake/FindSDL2.cmake.disabled
|
||||||
|
echo "Disabled bundled FindSDL2.cmake"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "kte ImGui/SDL2 GUI editor";
|
||||||
|
mainProgram = "kte";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
inputsFrom = [ self.packages.${system}.default ];
|
||||||
|
packages = with pkgs; [ gdb clang-tools ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
55
flake.nix
55
flake.nix
@@ -1,55 +1,18 @@
|
|||||||
# flake.nix
|
|
||||||
{
|
{
|
||||||
description = "kte ImGui/SDL2 text editor";
|
description = "Kyle's Text Editor";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, flake-utils }:
|
outputs =
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
{ self, nixpkgs }:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||||
in {
|
in
|
||||||
packages.default = pkgs.stdenv.mkDerivation {
|
{
|
||||||
pname = "kte";
|
packages.x86_64-linux = {
|
||||||
version = "0.1.0";
|
default = pkgs.callPackage ./default.nix { };
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
ncurses
|
|
||||||
SDL2
|
|
||||||
libGL
|
|
||||||
xorg.libX11
|
|
||||||
];
|
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DBUILD_GUI=ON"
|
|
||||||
"-DCURSES_NEED_NCURSES=TRUE"
|
|
||||||
"-DCURSES_NEED_WIDE=TRUE"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Alternative (even stronger): completely hide the broken module
|
|
||||||
preConfigure = ''
|
|
||||||
# If the project ships its own FindSDL2.cmake in cmake/, hide it
|
|
||||||
if [ -f cmake/FindSDL2.cmake ]; then
|
|
||||||
mv cmake/FindSDL2.cmake cmake/FindSDL2.cmake.disabled
|
|
||||||
echo "Disabled bundled FindSDL2.cmake"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = "kte ImGui/SDL2 GUI editor";
|
|
||||||
mainProgram = "kte";
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = [ self.packages.${system}.default ];
|
|
||||||
packages = with pkgs; [ gdb clang-tools ];
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user