Files
FTXUI/flake.nix
Rucadi 170c1b94dd
Some checks failed
Build / Bazel, cl, windows-latest (push) Has been cancelled
Build / Bazel, clang++, macos-latest (push) Has been cancelled
Build / Bazel, clang++, ubuntu-latest (push) Has been cancelled
Build / Bazel, g++, macos-latest (push) Has been cancelled
Build / Bazel, g++, ubuntu-latest (push) Has been cancelled
Build / CMake, cl, windows-latest (push) Has been cancelled
Build / CMake, gcc, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, macos-latest (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
Update nix lock and make nix package follow the current version (#1164)
2025-12-14 19:57:10 +01:00

71 lines
2.2 KiB
Nix

{
description = "C++ Functional Terminal User Interface library";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {self, nixpkgs, flake-utils}:
flake-utils.lib.eachDefaultSystem (system:
let pkgs = import nixpkgs { inherit system; }; in
let llvm = pkgs.llvmPackages_latest; in
{
packages = rec {
default = pkgs.stdenv.mkDerivation {
name = "ftxui";
src = ./.;
nativeBuildInputs = [
pkgs.cmake
];
cmakeFlags = [
"-DFTXUI_ENABLE_INSTALL=ON"
"-DFTXUI_BUILD_EXAMPLES=OFF"
"-DFTXUI_BUILD_TESTS=OFF"
"-DFTXUI_BUILD_DOCS=OFF"
"-DCMAKE_BUILD_TYPE=Release"
];
meta = {
homepage = "https://arthursonzogni.github.io/FTXUI/";
description = "C++ Functional Terminal User Interface.";
longDescription = ''
Functional Terminal (X) User interface
A simple C++ library for terminal based user interfaces!
Feature
- Functional style. Inspired by [1] and React
- Simple and elegant syntax (in my opinion)
- Keyboard & mouse navigation.
- Support for UTF8 and fullwidth chars ( )
- Support for animations. Demo 1, Demo 2
- Support for drawing. Demo
- No dependencies
- Cross platform: Linux/MacOS (main target), WebAssembly, Windows (Thanks to contributors!).
- Learn by examples, and tutorials
- Multiple packages: CMake FetchContent (preferred), vcpkg, pkgbuild, conan, nix, etc...
- Good practises: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc...
'';
license = pkgs.lib.licenses.mit;
platforms = pkgs.lib.platforms.all;
};
};
ftxui = default;
};
devShells = {
default = pkgs.mkShell {
nativeBuildInputs = [
pkgs.cmake
pkgs.clang-tools
llvm.clang
];
};
};
}
);
}