mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-06-23 23:41:13 +08:00
Add docs for additional install methods (#1059)
Some checks failed
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (cl, cl, windows-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, ubuntu-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (cl, Windows MSVC, windows-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (gcc, Linux GCC, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, Linux Clang, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, MacOS clang, macos-latest) (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
Some checks failed
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (cl, cl, windows-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, ubuntu-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (cl, Windows MSVC, windows-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (gcc, Linux GCC, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, Linux Clang, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, MacOS clang, macos-latest) (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
This commit is contained in:
parent
14da21b0ee
commit
6440a88dc6
@ -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)
|
- [Conan](https://conan.io/center/recipes/ftxui) [Debian package](https://tracker.debian.org/pkg/ftxui)
|
||||||
- [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui)
|
- [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui)
|
||||||
- [Arch Linux](https://aur.archlinux.org/packages/ftxui/)
|
- [Arch Linux](https://aur.archlinux.org/packages/ftxui/)
|
||||||
- [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/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)
|
- [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...
|
* Good practices: documentation, tests, fuzzers, performance tests, automated CI, automated packaging, etc...
|
||||||
|
|
||||||
## Documentation
|
## 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),
|
- [Ubuntu package](https://launchpad.net/ubuntu/+source/ftxui),
|
||||||
- [Arch Linux](https://aur.archlinux.org/packages/ftxui/),
|
- [Arch Linux](https://aur.archlinux.org/packages/ftxui/),
|
||||||
- [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui),
|
- [OpenSUSE](https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui),
|
||||||
|
[Nix](https://github.com/ArthurSonzogni/FTXUI/blob/main/flake.nix),
|
||||||
[](https://repology.org/project/libftxui/versions)
|
[](https://repology.org/project/libftxui/versions)
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,6 +16,11 @@ This page serves as an entry point for the available integration methods.
|
|||||||
- @subpage installation_vcpkg
|
- @subpage installation_vcpkg
|
||||||
- @subpage installation_conan
|
- @subpage installation_conan
|
||||||
- @subpage installation_manual
|
- @subpage installation_manual
|
||||||
|
- @subpage installation_nix
|
||||||
|
- @subpage installation_debian
|
||||||
|
- @subpage installation_arch
|
||||||
|
- @subpage installation_opensuse
|
||||||
|
- @subpage installation_xmake
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
|
34
doc/installation_arch.md
Normal file
34
doc/installation_arch.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
@page installation_arch Arch Linux
|
||||||
|
|
||||||
|
FTXUI is packaged on the AUR. Install using an AUR helper:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -S ftxui
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also manually download the PKGBUILD from <https://aur.archlinux.org/packages/ftxui>.
|
||||||
|
|
||||||
|
Once installed, you can use it in your CMake projects by adding the following to your `CMakeLists.txt`:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
find_package(ftxui REQUIRED)
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main
|
||||||
|
PRIVATE ftxui::screen
|
||||||
|
PRIVATE ftxui::dom
|
||||||
|
PRIVATE ftxui::component
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> This is an unofficial package. That means it is not maintained by the FTXUI
|
||||||
|
> team, but by the community. The package maintainers seems to actively update
|
||||||
|
> the package to the latest version. Thanks to the maintainers for their work!
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
@ -1,15 +1,19 @@
|
|||||||
@page installation_conan Conan
|
@page installation_conan Conan
|
||||||
@tableofcontents
|
|
||||||
|
|
||||||
## Conan Package
|
Unofficial recipe for FTXUI exists on Conan Center:
|
||||||
|
<https://conan.io/center/recipes/ftxui>
|
||||||
|
|
||||||
Unofficial support for FTXUI exists on Conan Center:
|
> [!note]
|
||||||
|
> This is an unofficial recipe. That means it is not maintained by the FTXUI
|
||||||
|
> team, but by the community. The package maintainers seems to actively update
|
||||||
|
> the package to the latest version. Thanks to the maintainers for their work!
|
||||||
|
|
||||||
- https://conan.io/center/recipes/ftxui
|
|
||||||
|
|
||||||
## TODO
|
@todo Add instructions on how to use the conan recipe.
|
||||||
|
|
||||||
This page is incomplete. If you use FTXUI with Conan and can provide a minimal working setup, feel free to contribute.
|
@todo Please consider adding an "official" recipe to Conan Center if know how.
|
||||||
|
It could be a github action that will automatically update the conan center
|
||||||
|
when a new release is made.
|
||||||
|
|
||||||
<div class="section_buttons">
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
42
doc/installation_debian.md
Normal file
42
doc/installation_debian.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
@page installation_debian Debian/Ubuntu
|
||||||
|
|
||||||
|
## Debian and Ubuntu Packages (Unofficial)
|
||||||
|
|
||||||
|
Pre-built packages are provided by the distributions. Install with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install libftxui-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
The following packages are available:
|
||||||
|
- `ftxui-doc`
|
||||||
|
- `ftxui-examples`
|
||||||
|
- `libftxui-component<version>`
|
||||||
|
- `libftxui-dev`
|
||||||
|
- `libftxui-dom<version>`
|
||||||
|
- `libftxui-screen<version>`
|
||||||
|
|
||||||
|
Once installed, you can use it in your CMake projects by adding the following to
|
||||||
|
your `CMakeLists.txt`:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
find_package(ftxui REQUIRED)
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main
|
||||||
|
PRIVATE ftxui::screen
|
||||||
|
PRIVATE ftxui::dom
|
||||||
|
PRIVATE ftxui::component
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> This is an **unofficial** package. That means it is not maintained by the FTXUI
|
||||||
|
> team, but by the community.
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
35
doc/installation_manual.md
Normal file
35
doc/installation_manual.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
@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 -D
|
||||||
|
cmake --build build -j
|
||||||
|
sudo cmake --install build
|
||||||
|
```
|
||||||
|
|
||||||
|
Once installed you can use it in your CMake projects by adding the following to your `CMakeLists.txt`:
|
||||||
|
|
||||||
|
```cmake
|
||||||
|
find_package(ftxui REQUIRED)
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main
|
||||||
|
PRIVATE ftxui::screen
|
||||||
|
PRIVATE ftxui::dom
|
||||||
|
PRIVATE ftxui::component
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
38
doc/installation_nix.md
Normal file
38
doc/installation_nix.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
@page installation_nix Nix
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> FTXUI author is not very knowledgeable about Nix. This page has been mostly
|
||||||
|
> generated by AI. If you have any suggestions to improve it, please open a
|
||||||
|
> PR.
|
||||||
|
|
||||||
|
## Nix Flake
|
||||||
|
|
||||||
|
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.<system>.ftxui` in your outputs.
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
32
doc/installation_opensuse.md
Normal file
32
doc/installation_opensuse.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
@page installation_opensuse openSUSE
|
||||||
|
|
||||||
|
## openSUSE Package (Unofficial)
|
||||||
|
|
||||||
|
FTXUI seems to be 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 <https://build.opensuse.org/package/show/devel:libraries:c_c++/ftxui> for details.
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> This is an **unofficial** package. That means it is not maintained by the FTXUI
|
||||||
|
> team, but by the community.
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> The FTXUI author is not very knowledgeable about openSUSE. This page has been
|
||||||
|
> mostly generated by AI. If you have any suggestions to improve it, please open
|
||||||
|
> a PR.
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
@ -1,15 +1,74 @@
|
|||||||
@page installation_vcpkg Vcpkg
|
@page installation_vcpkg Vcpkg
|
||||||
@tableofcontents
|
@tableofcontents
|
||||||
|
|
||||||
## Vcpkg Package
|
# Vcpkg Package
|
||||||
|
|
||||||
FTXUI is available in the Vcpkg registry:
|
FTXUI is available in the [Vcpkg registry](https://vcpkg.link/ports/ftxui)
|
||||||
|
|
||||||
|
To use it, you can add the following to your `vcpkg.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "your-project",
|
||||||
|
"version-string": "0.1.0",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "ftxui",
|
||||||
|
"version>=": "6.1.9"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
# Install FTXUI using Vcpkg
|
||||||
|
```bash
|
||||||
|
vcpkg install --triplet x64-linux # or x64-windows / arm64-osx etc.
|
||||||
|
```
|
||||||
|
|
||||||
|
# Configure your build system.
|
||||||
|
If you are using CMake, you can use the following in your `CMakeLists.txt`:
|
||||||
|
|
||||||
|
**CMakeLists.txt**
|
||||||
|
```cmake
|
||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
project(my_project)
|
||||||
|
|
||||||
|
# Make sure vcpkg toolchain file is passed at configure time
|
||||||
|
find_package(ftxui CONFIG REQUIRED)
|
||||||
|
|
||||||
|
add_executable(main main.cpp)
|
||||||
|
target_link_libraries(main
|
||||||
|
PRIVATE ftxui::screen
|
||||||
|
PRIVATE ftxui::dom
|
||||||
|
PRIVATE ftxui::component
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
**main.cpp**
|
||||||
|
```cpp
|
||||||
|
#include <ftxui/component/screen_interactive.hpp>
|
||||||
|
#include <ftxui/component/component.hpp>
|
||||||
|
#include <ftxui/component/component_options.hpp>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
using namespace ftxui;
|
||||||
|
|
||||||
|
auto screen = ScreenInteractive::TerminalOutput();
|
||||||
|
auto button = Button("Click me", [] { std::cout << "Clicked!\n"; });
|
||||||
|
|
||||||
|
screen.Loop(button);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Configure and build the project**
|
||||||
|
```bash
|
||||||
|
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
|
||||||
|
cmake --build build
|
||||||
|
./build/main
|
||||||
|
```
|
||||||
|
|
||||||
- https://vcpkg.link/ports/ftxui
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
This page is incomplete. If you use FTXUI with Vcpkg, please help improve this page by contributing working configuration examples.
|
|
||||||
|
|
||||||
<div class="section_buttons">
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
40
doc/installation_xmake.md
Normal file
40
doc/installation_xmake.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
@page installation_xmake XMake
|
||||||
|
@tableofcontents
|
||||||
|
|
||||||
|
## XMake Package (Unofficial)
|
||||||
|
|
||||||
|
FTXUI is available in the [xmake-repo](https://github.com/xmake-io/xmake-repo/blob/dev/packages/f/ftxui/xmake.lua)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> This is an **unofficial** package. That means it is not maintained by the FTXUI
|
||||||
|
> team, but by the community.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
> The FTXUI author is not very knowledgeable about openSUSE. This page has been
|
||||||
|
> mostly generated by AI. If you have any suggestions to improve it, please open
|
||||||
|
> a PR.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="section_buttons">
|
||||||
|
|
||||||
|
| Previous |
|
||||||
|
|:------------------|
|
||||||
|
| [Getting Started](getting-started.html) |
|
||||||
|
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user