diff --git a/README.md b/README.md index ed6f2f85..e3496417 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,9 @@ A simple cross-platform C++ library for terminal based user interfaces! - [Conan](https://conan.io/center/recipes/ftxui) [Debian package](https://tracker.debian.org/pkg/ftxui) - [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui) - [Arch Linux](https://aur.archlinux.org/packages/ftxui/) - - [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui) - - [XMake](https://xmake.io) repository [package](https://github.com/xmake-io/xmake-repo/blob/dev/packages/f/ftxui/xmake.lua) + - [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui) + - [XMake](https://xmake.io) repository [package](https://github.com/xmake-io/xmake-repo/blob/dev/packages/f/ftxui/xmake.lua) + - [Nix](https://github.com/ArthurSonzogni/FTXUI/blob/main/flake.nix) * Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc... ## Documentation @@ -430,6 +431,7 @@ If you don't, FTXUI may be used from the following packages: - [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui), - [Arch Linux](https://aur.archlinux.org/packages/ftxui/), - [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui), +[Nix](https://github.com/ArthurSonzogni/FTXUI/blob/main/flake.nix), [![Packaging status](https://repology.org/badge/vertical-allrepos/libftxui.svg)](https://repology.org/project/libftxui/versions) diff --git a/doc/installation.md b/doc/installation.md index 3a8ecdff..9c49273d 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -16,6 +16,11 @@ This page serves as an entry point for the available integration methods. - @subpage installation_vcpkg - @subpage installation_conan - @subpage installation_manual +- @subpage installation_nix +- @subpage installation_debian +- @subpage installation_arch +- @subpage installation_opensuse +- @subpage installation_xmake ## Next Steps diff --git a/doc/installation_arch.md b/doc/installation_arch.md new file mode 100644 index 00000000..14f04355 --- /dev/null +++ b/doc/installation_arch.md @@ -0,0 +1,20 @@ +@page installation_arch Arch Linux +@tableofcontents + +## Arch User Repository (Unofficial) + +FTXUI is packaged on the AUR. Install using an AUR helper: + +```bash +yay -S ftxui +``` + +You can also manually download the PKGBUILD from . + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +
diff --git a/doc/installation_debian.md b/doc/installation_debian.md new file mode 100644 index 00000000..5e7a5d61 --- /dev/null +++ b/doc/installation_debian.md @@ -0,0 +1,20 @@ +@page installation_debian Debian/Ubuntu +@tableofcontents + +## Debian and Ubuntu Packages (Unofficial) + +Pre-built packages are provided by the distributions. Install with: + +```bash +sudo apt install libftxui-dev +``` + +These packages are maintained by the distro maintainers, not by the FTXUI project. + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +
diff --git a/doc/installation_manual.md b/doc/installation_manual.md new file mode 100644 index 00000000..dea70368 --- /dev/null +++ b/doc/installation_manual.md @@ -0,0 +1,28 @@ +@page installation_manual Manual +@tableofcontents + +## Building from Source (Official) + +Clone and build the project using CMake: + +```bash +git clone https://github.com/ArthurSonzogni/FTXUI.git +cd FTXUI +cmake -S . -B build -DFTXUI_ENABLE_INSTALL=ON +cmake --build build -j +sudo cmake --install build +``` + +Link the libraries in your application: + +```bash +g++ main.cpp -lftxui-component -lftxui-dom -lftxui-screen +``` + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +
diff --git a/doc/installation_nix.md b/doc/installation_nix.md new file mode 100644 index 00000000..a41d35b5 --- /dev/null +++ b/doc/installation_nix.md @@ -0,0 +1,34 @@ +@page installation_nix Nix +@tableofcontents + +## Nix Flake (Official) + +FTXUI ships with a `flake.nix` providing both packages and a development shell. + +### Build the Library + +```bash +nix build github:ArthurSonzogni/FTXUI +``` + +The resulting package is accessible via the `result` link. + +### Use as a Dependency + +Add FTXUI to your flake inputs: + +```nix +{ + inputs.ftxui.url = "github:ArthurSonzogni/FTXUI"; +} +``` + +Then reference `ftxui.packages..ftxui` in your outputs. + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +
diff --git a/doc/installation_opensuse.md b/doc/installation_opensuse.md new file mode 100644 index 00000000..2df437ef --- /dev/null +++ b/doc/installation_opensuse.md @@ -0,0 +1,21 @@ +@page installation_opensuse openSUSE +@tableofcontents + +## openSUSE Package (Unofficial) + +FTXUI is available from the `devel:libraries:c_c++` repository. + +```bash +sudo zypper addrepo https://download.opensuse.org/repositories/devel:libraries:c_c++/openSUSE_Leap_$releasever/devel:libraries:c_c++.repo +sudo zypper install ftxui +``` + +See for details. + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +
diff --git a/doc/installation_xmake.md b/doc/installation_xmake.md new file mode 100644 index 00000000..581e7d82 --- /dev/null +++ b/doc/installation_xmake.md @@ -0,0 +1,27 @@ +@page installation_xmake XMake +@tableofcontents + +## XMake Package (Unofficial) + +FTXUI is available in the [xmake-repo](https://github.com/xmake-io/xmake-repo). + +Example `xmake.lua` snippet: + +```lua +add_requires("ftxui", {system = false}) + +target("demo") + set_kind("binary") + add_files("src/*.cpp") + add_packages("ftxui") +``` + +Refer to the [XMake documentation](https://xmake.io) for further options. + +
+ +| Previous | +|:------------------| +| [Getting Started](getting-started.html) | + +