Skip to content

Commit d5529a2

Browse files
authored
feat: add ftxui 6.1.9 (C++ TUI library) (#9)
Pure compiled C++ library (no C++23 modules); uses mcpp 0.0.4's new glob exclusion syntax to skip the ~46 *_test.cpp / *_fuzzer.cpp files that live alongside the library sources: sources = { "*/src/ftxui/**/*.cpp", "!*/src/ftxui/**/*_test.cpp", "!*/src/ftxui/**/*_fuzzer.cpp", } Produces a single `libftxui.a` covering screen + dom + component. Public headers exposed via `include_dirs = { "*/include" }`. Tarball: https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v6.1.9.tar.gz SHA256: 45819c1e54914783d4a1ca5633885035d74146778a1f74e1213cdb7b76340e71
1 parent 259e7ef commit d5529a2

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

pkgs/f/ftxui.lua

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
-- M6.x glob-aware Form B descriptor for FTXUI 6.1.9.
2+
--
3+
-- Pure C++ library (no C++23 modules); compiled sources + public headers.
4+
-- Uses mcpp 0.0.4's glob exclusion (`!` prefix) to skip the ~46
5+
-- *_test.cpp / *_fuzzer.cpp files that live alongside the library
6+
-- sources in the same directories.
7+
--
8+
-- Produces a single static archive `libftxui.a` covering all three
9+
-- upstream cmake targets (ftxui-screen, ftxui-dom, ftxui-component).
10+
11+
package = {
12+
spec = "1",
13+
name = "ftxui",
14+
description = "C++ Functional Terminal User Interface (screen + dom + component)",
15+
licenses = {"MIT"},
16+
repo = "https://github.com/ArthurSonzogni/FTXUI",
17+
type = "package",
18+
19+
xpm = {
20+
linux = {
21+
["6.1.9"] = {
22+
url = "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v6.1.9.tar.gz",
23+
sha256 = "45819c1e54914783d4a1ca5633885035d74146778a1f74e1213cdb7b76340e71",
24+
},
25+
},
26+
macosx = {
27+
["6.1.9"] = {
28+
url = "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v6.1.9.tar.gz",
29+
sha256 = "45819c1e54914783d4a1ca5633885035d74146778a1f74e1213cdb7b76340e71",
30+
},
31+
},
32+
windows = {
33+
["6.1.9"] = {
34+
url = "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v6.1.9.tar.gz",
35+
sha256 = "45819c1e54914783d4a1ca5633885035d74146778a1f74e1213cdb7b76340e71",
36+
},
37+
},
38+
},
39+
40+
-- Form B `mcpp` segment: paths are globs relative to the verdir.
41+
-- The leading `*/` absorbs the GitHub tarball's `FTXUI-6.1.9/` wrap.
42+
mcpp = {
43+
language = "c++23",
44+
import_std = false, -- pure compiled lib, no `import std;`
45+
include_dirs = { "*/include" },
46+
sources = {
47+
"*/src/ftxui/**/*.cpp",
48+
"!*/src/ftxui/**/*_test.cpp", -- 30+ gtest files
49+
"!*/src/ftxui/**/*_fuzzer.cpp", -- ~16 fuzz targets
50+
},
51+
targets = { ["ftxui"] = { kind = "lib" } },
52+
deps = { },
53+
},
54+
}

0 commit comments

Comments
 (0)