git: 68619f3e6b5a - main - graphics/clang-uml: Clang-based diagram generator

From: Gleb Popov <arrowd_at_FreeBSD.org>
Date: Tue, 11 Mar 2025 14:59:29 UTC
The branch main has been updated by arrowd:

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

commit 68619f3e6b5ad266410472b69bffd0582a3e8c3a
Author:     Stazhkov Michael <mvstazhk@mts.ru>
AuthorDate: 2025-03-11 14:52:53 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2025-03-11 14:59:25 +0000

    graphics/clang-uml: Clang-based diagram generator
    
    Sponsored by:   Future Crew, LLC
---
 graphics/Makefile                                  |  1 +
 graphics/clang-uml/Makefile                        | 22 ++++++++++++++++++++++
 graphics/clang-uml/distinfo                        |  3 +++
 .../files/patch-src_common_clang__utils.cc         | 11 +++++++++++
 graphics/clang-uml/pkg-descr                       |  2 ++
 graphics/clang-uml/pkg-plist                       |  5 +++++
 6 files changed, 44 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 4c680e5ead76..9c86ada2e949 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -105,6 +105,7 @@
     SUBDIR += chafa
     SUBDIR += charls
     SUBDIR += cimg
+    SUBDIR += clang-uml
     SUBDIR += cloudcompare
     SUBDIR += clutter
     SUBDIR += clutter-gtk3
diff --git a/graphics/clang-uml/Makefile b/graphics/clang-uml/Makefile
new file mode 100644
index 000000000000..783c7d7f6f16
--- /dev/null
+++ b/graphics/clang-uml/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	clang-uml
+PORTVERSION=	0.6.1
+CATEGORIES=	graphics lang textproc
+
+MAINTAINER=	arrowd@FreeBSD.org
+COMMENT=	C++ UML diagram generator based on Clang
+WWW=		https://github.com/bkryza/clang-uml
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+LIB_DEPENDS=	libyaml-cpp.so:devel/yaml-cpp
+
+USES=		cmake compiler:c++17-lang llvm:noexport,lib localbase:ldflags
+
+CMAKE_ARGS+=	-DCLANG_UML_ENABLE_BACKTRACE=OFF \
+		-DBUILD_TESTS=OFF
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	bkryza
+
+.include <bsd.port.mk>
diff --git a/graphics/clang-uml/distinfo b/graphics/clang-uml/distinfo
new file mode 100644
index 000000000000..8eac317b1ec0
--- /dev/null
+++ b/graphics/clang-uml/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1741688300
+SHA256 (bkryza-clang-uml-0.6.1_GH0.tar.gz) = a64c3cae87a282be207e4c5faf47534dca21b06cb6f463bb7b04de979dccf17e
+SIZE (bkryza-clang-uml-0.6.1_GH0.tar.gz) = 3059231
diff --git a/graphics/clang-uml/files/patch-src_common_clang__utils.cc b/graphics/clang-uml/files/patch-src_common_clang__utils.cc
new file mode 100644
index 000000000000..81f081831420
--- /dev/null
+++ b/graphics/clang-uml/files/patch-src_common_clang__utils.cc
@@ -0,0 +1,11 @@
+--- src/common/clang_utils.cc.orig	2025-01-20 07:36:53 UTC
++++ src/common/clang_utils.cc
+@@ -1019,7 +1019,7 @@ clang::RawComment *get_raw_comment(const clang::Source
+ 
+     if (!context.Comments.empty() &&
+         context.Comments.getCommentsInFile(file_id) != nullptr) {
+-        for (const auto [offset, raw_comment] :
++        for (const auto & [offset, raw_comment] :
+             *context.Comments.getCommentsInFile(sm.getFileID(expr_begin))) {
+             const auto comment_end_line = sm.getSpellingLineNumber(
+                 raw_comment->getSourceRange().getEnd());
diff --git a/graphics/clang-uml/pkg-descr b/graphics/clang-uml/pkg-descr
new file mode 100644
index 000000000000..351b3e495e05
--- /dev/null
+++ b/graphics/clang-uml/pkg-descr
@@ -0,0 +1,2 @@
+clang-uml is an automatic C++ to UML class, sequence, package and
+include diagram generator, driven by YAML configuration files.
diff --git a/graphics/clang-uml/pkg-plist b/graphics/clang-uml/pkg-plist
new file mode 100644
index 000000000000..862da0f55f5f
--- /dev/null
+++ b/graphics/clang-uml/pkg-plist
@@ -0,0 +1,5 @@
+bin/clang-uml
+%%DOCSDIR%%/AUTHORS.md
+%%DOCSDIR%%/CHANGELOG.md
+%%DOCSDIR%%/LICENSE.md
+%%DOCSDIR%%/README.md