mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-09-23 05:18:08 +08:00
Feature: Added nix build support (#603)
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:

committed by
GitHub

parent
e83e90ced2
commit
a366c5a423
61
flake.nix
Normal file
61
flake.nix
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
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
|
||||
{
|
||||
packages.ftxui = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "ftxui";
|
||||
version = "v4.0.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ArthurSonzogni";
|
||||
repo = "FTXUI";
|
||||
rev = version;
|
||||
sha256 = "sha256-3kAhHDUwzwdvHc8JZAcA14tGqa6w69qrN1JXhSxNBQY=";
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user