dev-libs/qschematic: new package, add 1.5.0

Signed-off-by: Huang Rui <vowstar@gmail.com>
This commit is contained in:
Huang Rui
2023-11-21 10:57:54 +08:00
parent bb27309a20
commit e43fd4312c
4 changed files with 227 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST qschematic-1.5.0.tar.gz 1509508 BLAKE2B b2850e0b31e1d44f750488b94d47beaf606981d77bfbb070b44beb235c531bf190d1e3edcafb214737dc376d74d5e08405a8b3844c9746f9dce9731484685ca8 SHA512 a5ad0a5068c0bed1307c89134814c68192e4af19067d221d27086585f93360307a1293ee7c63021b21c0348f3859a18d6dcd50b3e2e0fe19fd32bf4928942cd4

View File

@@ -0,0 +1,128 @@
From 9beb6fcc19a27bd7a280420bdac8a95b650316ed Mon Sep 17 00:00:00 2001
From: Huang Rui <vowstar@gmail.com>
Date: Tue, 21 Nov 2023 10:25:53 +0800
Subject: [PATCH] build: add build options for gentoo
Signed-off-by: Huang Rui <vowstar@gmail.com>
---
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

View File

@@ -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>vowstar@gmail.com</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>

View File

@@ -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
}