git: b58ddb1e7aeb - main - devel/ftxui: New port: C++ Functional Terminal User Interface library

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 10 Jan 2023 08:35:19 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b58ddb1e7aeb3d124437c870de2ff74ec0cee6d6

commit b58ddb1e7aeb3d124437c870de2ff74ec0cee6d6
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-10 08:34:47 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-10 08:35:17 +0000

    devel/ftxui: New port: C++ Functional Terminal User Interface library
---
 devel/Makefile        |  1 +
 devel/ftxui/Makefile  | 27 +++++++++++++++++++++++++++
 devel/ftxui/distinfo  |  3 +++
 devel/ftxui/pkg-descr | 15 +++++++++++++++
 devel/ftxui/pkg-plist | 37 +++++++++++++++++++++++++++++++++++++
 5 files changed, 83 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 7c4ac1a32906..26b71e4fb3df 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -706,6 +706,7 @@
     SUBDIR += fstrm
     SUBDIR += ftjam
     SUBDIR += ftnchek
+    SUBDIR += ftxui
     SUBDIR += fuel
     SUBDIR += functionalplus
     SUBDIR += fungw
diff --git a/devel/ftxui/Makefile b/devel/ftxui/Makefile
new file mode 100644
index 000000000000..f3583b07b65e
--- /dev/null
+++ b/devel/ftxui/Makefile
@@ -0,0 +1,27 @@
+PORTNAME=	ftxui
+DISTVERSIONPREFIX=	v
+DISTVERSION=	3.0.0-69
+DISTVERSIONSUFFIX=	-g90dfcee
+CATEGORIES=	devel science
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	C++ Functional Terminal User Interface library
+WWW=		https://github.com/ArthurSonzogni/FTXUI
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake:testing compiler:c++17-lang
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	ArthurSonzogni
+GH_PROJECT=	FTXUI
+
+CMAKE_OFF=	FTXUI_BUILD_DOCS FTXUI_BUILD_EXAMPLES FTXUI_BUILD_TESTS
+CMAKE_ON=	BUILD_SHARED_LIBS
+CMAKE_TESTING_ON=	FTXUI_BUILD_TESTS
+
+# tests fail to build, see https://github.com/ArthurSonzogni/FTXUI/issues/551
+
+.include <bsd.port.mk>
diff --git a/devel/ftxui/distinfo b/devel/ftxui/distinfo
new file mode 100644
index 000000000000..50c875a867aa
--- /dev/null
+++ b/devel/ftxui/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673338251
+SHA256 (ArthurSonzogni-FTXUI-v3.0.0-69-g90dfcee_GH0.tar.gz) = e52a5217715dd13df1be7638be5820f3429813ab9ef07c7440297ab7d9ab3f37
+SIZE (ArthurSonzogni-FTXUI-v3.0.0-69-g90dfcee_GH0.tar.gz) = 1147107
diff --git a/devel/ftxui/pkg-descr b/devel/ftxui/pkg-descr
new file mode 100644
index 000000000000..76144e997aec
--- /dev/null
+++ b/devel/ftxui/pkg-descr
@@ -0,0 +1,15 @@
+FTXUI is 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
+* Learn by examples, and tutorials
+* Multiple packages: CMake FetchContent (preferred), vcpkg, pkgbuild, conan.
+* Good practises: documentation, tests, fuzzers, performance tests, automated
+  CI, automated packaging, etc
diff --git a/devel/ftxui/pkg-plist b/devel/ftxui/pkg-plist
new file mode 100644
index 000000000000..1b8c0a77abed
--- /dev/null
+++ b/devel/ftxui/pkg-plist
@@ -0,0 +1,37 @@
+include/ftxui/component/animation.hpp
+include/ftxui/component/captured_mouse.hpp
+include/ftxui/component/component.hpp
+include/ftxui/component/component_base.hpp
+include/ftxui/component/component_options.hpp
+include/ftxui/component/event.hpp
+include/ftxui/component/loop.hpp
+include/ftxui/component/mouse.hpp
+include/ftxui/component/receiver.hpp
+include/ftxui/component/screen_interactive.hpp
+include/ftxui/component/task.hpp
+include/ftxui/dom/canvas.hpp
+include/ftxui/dom/deprecated.hpp
+include/ftxui/dom/elements.hpp
+include/ftxui/dom/flexbox_config.hpp
+include/ftxui/dom/node.hpp
+include/ftxui/dom/requirement.hpp
+include/ftxui/dom/table.hpp
+include/ftxui/dom/take_any_args.hpp
+include/ftxui/screen/box.hpp
+include/ftxui/screen/color.hpp
+include/ftxui/screen/color_info.hpp
+include/ftxui/screen/deprecated.hpp
+include/ftxui/screen/screen.hpp
+include/ftxui/screen/string.hpp
+include/ftxui/screen/terminal.hpp
+include/ftxui/util/autoreset.hpp
+include/ftxui/util/ref.hpp
+lib/cmake/ftxui/ftxui-config-version-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/ftxui/ftxui-config-version.cmake
+lib/cmake/ftxui/ftxui-config.cmake
+lib/libftxui-component.so
+lib/libftxui-component.so.3.0.0
+lib/libftxui-dom.so
+lib/libftxui-dom.so.3.0.0
+lib/libftxui-screen.so
+lib/libftxui-screen.so.3.0.0