git: adca0ccff21d - main - graphics/quickqanava: new port, QML-based graph+node viewer library

From: Adriaan de Groot <adridg_at_FreeBSD.org>
Date: Thu, 07 Oct 2021 12:44:33 UTC
The branch main has been updated by adridg:

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

commit adca0ccff21db8863c18b171e1088a6749d1b4a1
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2021-10-07 11:23:07 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2021-10-07 12:44:09 +0000

    graphics/quickqanava: new port, QML-based graph+node viewer library
    
    The samples are not built, so right now this is a leaf port
    that is only a library with no consumers; we'll see if it gets
    picked up by something.
---
 graphics/Makefile                                  |  1 +
 graphics/quickqanava/Makefile                      | 24 ++++++
 graphics/quickqanava/distinfo                      |  3 +
 .../quickqanava/files/patch-exports_CMakeLists.txt | 15 ++++
 .../patch-exports_cmake_LibraryConfig.cmake.in     |  8 ++
 graphics/quickqanava/pkg-descr                     |  8 ++
 graphics/quickqanava/pkg-plist                     | 99 ++++++++++++++++++++++
 7 files changed, 158 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 1453852d8596..0c49d10e4816 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -940,6 +940,7 @@
     SUBDIR += quat-gui
     SUBDIR += quesa
     SUBDIR += quesoglc
+    SUBDIR += quickqanava
     SUBDIR += qvge
     SUBDIR += radiance
     SUBDIR += radius-engine
diff --git a/graphics/quickqanava/Makefile b/graphics/quickqanava/Makefile
new file mode 100644
index 000000000000..9446272f8261
--- /dev/null
+++ b/graphics/quickqanava/Makefile
@@ -0,0 +1,24 @@
+PORTNAME=	quickqanava
+PORTVERSION=	0.1
+CATEGORIES=	graphics
+
+MAINTAINER=	adridg@FreeBSD.org
+COMMENT=	Library for QML-based Graph Visualisation
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/licence.txt
+
+USES=		cmake compiler:c++14-lang qt:5
+USE_QT=		core declarative gui network quickcontrols2 \
+		buildtools_build qmake_build
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	cneben
+GH_PROJECT=	QuickQanava
+GH_TAGNAME=	ab88d77ec62175b9fd499a154ffaf92f7bf23989
+
+# There are no releases, even though the project is years old,
+# and the site mentions "alpha, pre-1.0". Once there's an actual
+# release, can switch to DISTVERSION and release-tarballs.
+
+.include <bsd.port.mk>
diff --git a/graphics/quickqanava/distinfo b/graphics/quickqanava/distinfo
new file mode 100644
index 000000000000..36401a8cde12
--- /dev/null
+++ b/graphics/quickqanava/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1633603473
+SHA256 (cneben-QuickQanava-0.1-ab88d77ec62175b9fd499a154ffaf92f7bf23989_GH0.tar.gz) = 5537b3e2a5952c7dce1aa86cd4daa3f05177b12e6074cd9a969ae7020b06d4bf
+SIZE (cneben-QuickQanava-0.1-ab88d77ec62175b9fd499a154ffaf92f7bf23989_GH0.tar.gz) = 10067428
diff --git a/graphics/quickqanava/files/patch-exports_CMakeLists.txt b/graphics/quickqanava/files/patch-exports_CMakeLists.txt
new file mode 100644
index 000000000000..7555b30ba895
--- /dev/null
+++ b/graphics/quickqanava/files/patch-exports_CMakeLists.txt
@@ -0,0 +1,15 @@
+--- exports/CMakeLists.txt.orig	2021-10-07 12:17:49 UTC
++++ exports/CMakeLists.txt
+@@ -27,12 +27,5 @@ install(
+         "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+         "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+     DESTINATION
+-        . # Root Directory
+-    )
+-
+-install(
+-    FILES
+-        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+-    DESTINATION
+         share/cmake/${PROJECT_NAME}/
+     )
diff --git a/graphics/quickqanava/files/patch-exports_cmake_LibraryConfig.cmake.in b/graphics/quickqanava/files/patch-exports_cmake_LibraryConfig.cmake.in
new file mode 100644
index 000000000000..e7d153583cf4
--- /dev/null
+++ b/graphics/quickqanava/files/patch-exports_cmake_LibraryConfig.cmake.in
@@ -0,0 +1,8 @@
+--- exports/cmake/LibraryConfig.cmake.in.orig	2021-10-07 12:18:50 UTC
++++ exports/cmake/LibraryConfig.cmake.in
+@@ -5,4 +5,4 @@ find_package(Qt5Qml REQUIRED)
+ find_package(Qt5Quick REQUIRED)
+ find_package(Qt5QuickControls2 REQUIRED)
+ 
+-include("${CMAKE_CURRENT_LIST_DIR}/share/cmake/@PROJECT_NAME@/@PROJECT_NAME@Targets.cmake")
++include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
diff --git a/graphics/quickqanava/pkg-descr b/graphics/quickqanava/pkg-descr
new file mode 100644
index 000000000000..43a8da73d11a
--- /dev/null
+++ b/graphics/quickqanava/pkg-descr
@@ -0,0 +1,8 @@
+QuickQanava is a C++14 library designed to display graphs and relational content
+in a QtQuick application. QuickQanava provide QML components and C++ classes
+to visualize medium-sized directed graphs in a C++/QML application. QuickQanava
+does not provide advanced layout algorithms, but rather focus on displaying
+relational content in advanced dynamic user interfaces (with DnD support,
+resizable content, visual connection of nodes).
+
+WWW: http://cneben.github.io/QuickQanava/index.html
diff --git a/graphics/quickqanava/pkg-plist b/graphics/quickqanava/pkg-plist
new file mode 100644
index 000000000000..a3da487ef1d4
--- /dev/null
+++ b/graphics/quickqanava/pkg-plist
@@ -0,0 +1,99 @@
+include/gtpo/GTpo
+include/gtpo/GTpo.h
+include/gtpo/algorithm.h
+include/gtpo/algorithm.hpp
+include/gtpo/behaviour.h
+include/gtpo/behaviourable.h
+include/gtpo/behaviourable.hpp
+include/gtpo/config.h
+include/gtpo/container_adapter.h
+include/gtpo/edge.h
+include/gtpo/edge.hpp
+include/gtpo/functional.h
+include/gtpo/generator.h
+include/gtpo/generator.hpp
+include/gtpo/graph.h
+include/gtpo/graph.hpp
+include/gtpo/graph_behaviour.h
+include/gtpo/graph_behaviour.hpp
+include/gtpo/graph_property.h
+include/gtpo/node.h
+include/gtpo/node.hpp
+include/gtpo/node_behaviour.h
+include/gtpo/node_behaviour.hpp
+include/gtpo/utils.h
+include/quickcontainers/QuickContainers
+include/quickcontainers/QuickContainers.h
+include/quickcontainers/qcmAbstractContainer.h
+include/quickcontainers/qcmAdapter.h
+include/quickcontainers/qcmContainer.h
+include/quickcontainers/qcmContainerModel.h
+include/quickqanava/QuickQanava.h
+include/quickqanava/qanAbstractDraggableCtrl.h
+include/quickqanava/qanBehaviour.h
+include/quickqanava/qanBottomRightResizer.h
+include/quickqanava/qanConnector.h
+include/quickqanava/qanContainerAdapter.h
+include/quickqanava/qanDraggable.h
+include/quickqanava/qanDraggableCtrl.h
+include/quickqanava/qanEdge.h
+include/quickqanava/qanEdgeItem.h
+include/quickqanava/qanGraph.h
+include/quickqanava/qanGraphConfig.h
+include/quickqanava/qanGraphView.h
+include/quickqanava/qanGrid.h
+include/quickqanava/qanGroup.h
+include/quickqanava/qanGroupItem.h
+include/quickqanava/qanNavigable.h
+include/quickqanava/qanNavigablePreview.h
+include/quickqanava/qanNode.h
+include/quickqanava/qanNodeItem.h
+include/quickqanava/qanPortItem.h
+include/quickqanava/qanSelectable.h
+include/quickqanava/qanStyle.h
+include/quickqanava/qanStyleManager.h
+include/quickqanava/qanUtils.h
+lib/libQuickContainers.a
+lib/libQuickQanava.a
+%%QT_QMLDIR%%/QuickContainers/libquickcontainersplugin.so
+%%QT_QMLDIR%%/QuickContainers/qmldir
+%%QT_QMLDIR%%/QuickQanava/CanvasNodeTemplate.qml
+%%QT_QMLDIR%%/QuickQanava/Edge.qml
+%%QT_QMLDIR%%/QuickQanava/EdgeTemplate.qml
+%%QT_QMLDIR%%/QuickQanava/GraphPreview.qml
+%%QT_QMLDIR%%/QuickQanava/GraphView.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects5/DropShadow.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects5/Glow.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects5/LinearGradient.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects5/OpacityMask.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects6/DropShadow.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects6/Glow.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects6/LinearGradient.qml
+%%QT_QMLDIR%%/QuickQanava/GraphicalEffects6/OpacityMask.qml
+%%QT_QMLDIR%%/QuickQanava/Group.qml
+%%QT_QMLDIR%%/QuickQanava/HorizontalDock.qml
+%%QT_QMLDIR%%/QuickQanava/LabelEditor.qml
+%%QT_QMLDIR%%/QuickQanava/LineGrid.qml
+%%QT_QMLDIR%%/QuickQanava/NavigablePreview.qml
+%%QT_QMLDIR%%/QuickQanava/Node.qml
+%%QT_QMLDIR%%/QuickQanava/Port.qml
+%%QT_QMLDIR%%/QuickQanava/RectGlowEffect.qml
+%%QT_QMLDIR%%/QuickQanava/RectGradientBackground.qml
+%%QT_QMLDIR%%/QuickQanava/RectGradientGlowBackground.qml
+%%QT_QMLDIR%%/QuickQanava/RectGradientShadowBackground.qml
+%%QT_QMLDIR%%/QuickQanava/RectGroupTemplate.qml
+%%QT_QMLDIR%%/QuickQanava/RectNodeTemplate.qml
+%%QT_QMLDIR%%/QuickQanava/RectShadowEffect.qml
+%%QT_QMLDIR%%/QuickQanava/RectSolidBackground.qml
+%%QT_QMLDIR%%/QuickQanava/RectSolidGlowBackground.qml
+%%QT_QMLDIR%%/QuickQanava/RectSolidShadowBackground.qml
+%%QT_QMLDIR%%/QuickQanava/SelectionItem.qml
+%%QT_QMLDIR%%/QuickQanava/StyleListView.qml
+%%QT_QMLDIR%%/QuickQanava/VerticalDock.qml
+%%QT_QMLDIR%%/QuickQanava/VisualConnector.qml
+%%QT_QMLDIR%%/QuickQanava/libquickqanavaplugin.so
+%%QT_QMLDIR%%/QuickQanava/qmldir
+share/cmake/QuickQanava/QuickQanavaConfig.cmake
+share/cmake/QuickQanava/QuickQanavaTargets-%%CMAKE_BUILD_TYPE%%.cmake
+share/cmake/QuickQanava/QuickQanavaTargets.cmake
+share/cmake/QuickQanava/QuickQanavaConfigVersion.cmake