commit:     e43fd4312cbd8f0decbe83f31a4d87699b4be710
Author:     Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Tue Nov 21 02:57:54 2023 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Tue Nov 21 02:57:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e43fd431

dev-libs/qschematic: new package, add 1.5.0

Signed-off-by: Huang Rui <vowstar <AT> gmail.com>

 dev-libs/qschematic/Manifest                       |   1 +
 .../qschematic-1.5.0-gentoo-cmake-option.patch     | 128 +++++++++++++++++++++
 dev-libs/qschematic/metadata.xml                   |  31 +++++
 dev-libs/qschematic/qschematic-1.5.0.ebuild        |  67 +++++++++++
 4 files changed, 227 insertions(+)

diff --git a/dev-libs/qschematic/Manifest b/dev-libs/qschematic/Manifest
new file mode 100644
index 0000000000..97fbdad4b5
--- /dev/null
+++ b/dev-libs/qschematic/Manifest
@@ -0,0 +1 @@
+DIST qschematic-1.5.0.tar.gz 1509508 BLAKE2B 
b2850e0b31e1d44f750488b94d47beaf606981d77bfbb070b44beb235c531bf190d1e3edcafb214737dc376d74d5e08405a8b3844c9746f9dce9731484685ca8
 SHA512 
a5ad0a5068c0bed1307c89134814c68192e4af19067d221d27086585f93360307a1293ee7c63021b21c0348f3859a18d6dcd50b3e2e0fe19fd32bf4928942cd4

diff --git 
a/dev-libs/qschematic/files/qschematic-1.5.0-gentoo-cmake-option.patch 
b/dev-libs/qschematic/files/qschematic-1.5.0-gentoo-cmake-option.patch
new file mode 100644
index 0000000000..229b93a727
--- /dev/null
+++ b/dev-libs/qschematic/files/qschematic-1.5.0-gentoo-cmake-option.patch
@@ -0,0 +1,128 @@
+From 9beb6fcc19a27bd7a280420bdac8a95b650316ed Mon Sep 17 00:00:00 2001
+From: Huang Rui <[email protected]>
+Date: Tue, 21 Nov 2023 10:25:53 +0800
+Subject: [PATCH] build: add build options for gentoo
+
+Signed-off-by: Huang Rui <[email protected]>
+---
+ CMakeLists.txt                        |  2 ++
+ demo/CMakeLists.txt                   |  2 ++
+ qschematic/CMakeLists.txt             | 10 ++++++----
+ qschematic/external.cmake             |  2 ++
+ qschematic/qschematic-config.cmake.in |  3 +++
+ 5 files changed, 15 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7a265d7e523f..bfe5cfe8d8bf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,8 @@ project(
+ # User options
+ option(QSCHEMATIC_BUILD_DEMO "Whether to build the demo project" ON)
+ option(QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD "Whether to pull the GPDS 
dependency via FetchContent" ON)
++option(QSCHEMATIC_BUILD_QT6 "Whether to build with QT6" ON)
++option(QSCHEMATIC_BUILD_STATIC "Whether to build static library" ON)
+ 
+ # User settings
+ set(QSCHEMATIC_DEPENDENCY_GPDS_TARGET "gpds::gpds-static" CACHE STRING "The 
CMake target of the GPDS library to use")
+diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt
+index 6c315c2894b2..db206dd156ac 100644
+--- a/demo/CMakeLists.txt
++++ b/demo/CMakeLists.txt
+@@ -2,11 +2,13 @@
+ include(../qschematic/external.cmake)
+ 
+ # Qt
++if (QSCHEMATIC_BUILD_QT6)
+ find_package(
+     Qt6
+     COMPONENTS
+         PrintSupport
+ )
++endif()
+ if (NOT Qt6_FOUND)
+     find_package(
+         Qt5
+diff --git a/qschematic/CMakeLists.txt b/qschematic/CMakeLists.txt
+index ec56b33ad264..6b4d353127bc 100644
+--- a/qschematic/CMakeLists.txt
++++ b/qschematic/CMakeLists.txt
+@@ -150,7 +150,6 @@ setup_target_common(${TARGET_SHARED})
+ 
################################################################################
+ # Static library                                                              
 #
+ 
################################################################################
+-
+ add_library(${TARGET_STATIC} STATIC)
+ setup_target_common(${TARGET_STATIC})
+ 
+@@ -160,7 +159,6 @@ target_compile_definitions(
+         QSCHEMATIC_STATIC_DEFINE
+ )
+ 
+-
+ 
################################################################################
+ # Install                                                                     
 #
+ 
################################################################################
+@@ -171,10 +169,14 @@ include(CMakePackageConfigHelpers)
+ set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/qschematic)
+ 
+ # Targets
++if (QSCHEMATIC_BUILD_STATIC)
++    set(INSTALL_TARGETS ${INSTALL_TARGETS} ${TARGET_STATIC} ${TARGET_SHARED})
++else()
++    set(INSTALL_TARGETS ${INSTALL_TARGETS} ${TARGET_SHARED})
++endif()
+ install(
+     TARGETS
+-        ${TARGET_STATIC}
+-        ${TARGET_SHARED}
++        ${INSTALL_TARGETS}
+     EXPORT qschematic-targets
+     FILE_SET
+         HEADERS
+diff --git a/qschematic/external.cmake b/qschematic/external.cmake
+index 80aae6c29b94..7e57f0852ac5 100644
+--- a/qschematic/external.cmake
++++ b/qschematic/external.cmake
+@@ -35,6 +35,7 @@ endif()
+ 
########################################################################################################################
+ 
+ # Try to find Qt6
++if (QSCHEMATIC_BUILD_QT6)
+ find_package(
+     Qt6
+     COMPONENTS
+@@ -42,6 +43,7 @@ find_package(
+         Gui
+         Widgets
+ )
++endif()
+ 
+ # If Qt6 was not found, fallback to Qt5
+ # Require minimum Qt 5.15 for versionless cmake targets. This can be relaxed 
down to Qt 5.6 (?) if needed by modifying
+diff --git a/qschematic/qschematic-config.cmake.in 
b/qschematic/qschematic-config.cmake.in
+index 7452408bcd09..5b2a14a4c9c2 100644
+--- a/qschematic/qschematic-config.cmake.in
++++ b/qschematic/qschematic-config.cmake.in
+@@ -6,8 +6,10 @@ include(CMakeFindDependencyMacro)
+ 
+ set(QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD @QSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD@)
+ set(QSCHEMATIC_DEPENDENCY_GPDS_MINIMUM_VERSION 
@QSCHEMATIC_DEPENDENCY_GPDS_MINIMUM_VERSION@)
++set(QSCHEMATIC_BUILD_QT6 @QSCHEMATIC_BUILD_QT6@)
+ 
+ # Qt
++if (QSCHEMATIC_BUILD_QT6)
+ find_dependency(
+     Qt6
+     COMPONENTS
+@@ -15,6 +17,7 @@ find_dependency(
+         Gui
+         Widgets
+ )
++endif()
+ if (NOT Qt6_FOUND)
+     find_dependency(
+         Qt5 5.15
+-- 
+2.42.1
+

diff --git a/dev-libs/qschematic/metadata.xml b/dev-libs/qschematic/metadata.xml
new file mode 100644
index 0000000000..a7e051e5ce
--- /dev/null
+++ b/dev-libs/qschematic/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Huang Rui</name>
+       </maintainer>
+       <use>
+               <flag name="qt6">Build with Qt6 support</flag>
+       </use>
+       <upstream>
+               <remote-id type="github">simulton/QSchematic</remote-id>
+               <bugs-to>https://github.com/simulton/QSchematic/issues</bugs-to>
+               
<changelog>https://github.com/simulton/QSchematic/releases</changelog>
+       </upstream>
+       <longdescription lang="en">
+               QSchematic is a library to draw diagrams and schematics with 
Qt. It uses
+               Qt's graphics view framework.
+               The library provides base classes for objects such as nodes and 
wires
+               and implements logic to move objects around while keeping the 
wires
+               connected, generating netlists and so on. A typical application 
would
+               include this library and subclass the Item class to implement 
custom
+               items.
+       </longdescription>
+       <longdescription lang="zh">
+               QSchematic 是一个基于 Qt 的图形视图框架的绘制图表和原理图的库。
+               该库为节点和连线等对象提供基类,并实现在保持连线连接的同时移动对象的逻
+               辑、生成网表等。典型的应用程序包含此库,并允许继承 Item 类以实现自定义
+               项。
+       </longdescription>
+</pkgmetadata>

diff --git a/dev-libs/qschematic/qschematic-1.5.0.ebuild 
b/dev-libs/qschematic/qschematic-1.5.0.ebuild
new file mode 100644
index 0000000000..39c94b151e
--- /dev/null
+++ b/dev-libs/qschematic/qschematic-1.5.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+MY_PN="QSchematic"
+
+inherit cmake
+
+DESCRIPTION="Library for creating flowcharts and engineering diagrams"
+HOMEPAGE="https://github.com/simulton/QSchematic";
+
+if [[ "${PV}" == "9999" ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/simulton/QSchematic/${MY_PN}.git";
+else
+       SRC_URI="https://github.com/simulton/${MY_PN}/archive/${PV}.tar.gz -> 
${P}.tar.gz"
+       KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+       S="${WORKDIR}/${MY_PN}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="examples qt6 static-libs test wayland +X"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+       examples? ( static-libs )
+       test? ( static-libs )
+"
+RDEPEND="
+       !qt6? (
+               >=dev-qt/qtcore-5.15:5=
+               >=dev-qt/qtgui-5.15:5=[jpeg,png,wayland?,X?]
+               >=dev-qt/qtsvg-5.15:5
+               >=dev-qt/qtwidgets-5.15:5[png,X?]
+       )
+       qt6? (
+               >=dev-qt/qtbase-6.5:6=[gui,wayland?,widgets,X?]
+               >=dev-qt/qtimageformats-6.5:6
+               >=dev-qt/qtsvg-6.5:6
+       )
+       >=dev-libs/gpds-1.6.0[static-libs?]
+"
+
+DEPEND="
+       ${RDEPEND}
+"
+
+BDEPEND="
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.5.0-gentoo-cmake-option.patch"
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+               -DQSCHEMATIC_DEPENDENCY_GPDS_TARGET:STRING="gpds::gpds-shared"
+               -DQSCHEMATIC_DEPENDENCY_GPDS_DOWNLOAD=OFF
+               -DQSCHEMATIC_BUILD_DEMO=$(usex examples)
+               -DQSCHEMATIC_BUILD_QT6=$(usex qt6)
+               -DQSCHEMATIC_BUILD_STATIC=$(usex static-libs)
+       )
+
+       cmake_src_configure
+}

Reply via email to