aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Brazhnikov <makc@FreeBSD.org>2024-02-19 22:34:55 +0000
committerMax Brazhnikov <makc@FreeBSD.org>2024-02-19 22:34:55 +0000
commitddd7c2bdcad5f945bb45b623300baba1e2dbe760 (patch)
tree46ace55b7ef0144735b8c38e2250fc7f1bf4bd85
parent6751c3211a047a9b5aebf71df214591d019e8029 (diff)
downloadports-ddd7c2bdcad5f945bb45b623300baba1e2dbe760.tar.gz
ports-ddd7c2bdcad5f945bb45b623300baba1e2dbe760.zip
graphics/qcustomplot: add support for Qt5 and Qt6 flavors
- Add support for Qt5 and Qt6 flavors - Switch to cmake using patches from Debian Differential Revision: https://reviews.freebsd.org/D43969
-rw-r--r--audio/polyphone/Makefile2
-rw-r--r--devel/hotspot/Makefile2
-rw-r--r--graphics/qcustomplot/Makefile40
-rw-r--r--graphics/qcustomplot/files/CMakeLists.txt113
-rw-r--r--graphics/qcustomplot/files/Config.cmake.in5
-rw-r--r--graphics/qcustomplot/pkg-plist.qt57
-rw-r--r--graphics/qcustomplot/pkg-plist.qt67
-rw-r--r--misc/nn-insight/Makefile2
8 files changed, 153 insertions, 25 deletions
diff --git a/audio/polyphone/Makefile b/audio/polyphone/Makefile
index fc6d9072c7a4..a22c4f9a019b 100644
--- a/audio/polyphone/Makefile
+++ b/audio/polyphone/Makefile
@@ -14,7 +14,7 @@ LIB_DEPENDS= libFLAC.so:audio/flac \
libjack.so:audio/jack \
libogg.so:audio/libogg \
libportaudio.so:audio/portaudio \
- libQCustomPlot-qt5.so:graphics/qcustomplot \
+ libQCustomPlot-qt5.so:graphics/qcustomplot@qt5 \
librtmidi.so:audio/rtmidi \
libstk.so:audio/stk \
libvorbisfile.so:audio/libvorbis
diff --git a/devel/hotspot/Makefile b/devel/hotspot/Makefile
index 9160d8cc51d4..ccacf5f4163c 100644
--- a/devel/hotspot/Makefile
+++ b/devel/hotspot/Makefile
@@ -13,7 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.GPL.txt
BUILD_DEPENDS= ${LOCALBASE}/lib/librustc_demangle.a:devel/rustc-demangle
LIB_DEPENDS= libdw.so:devel/elfutils \
- libQCustomPlot-qt5.so:graphics/qcustomplot \
+ libQCustomPlot-qt5.so:graphics/qcustomplot@qt5 \
libkddockwidgets.so:x11-toolkits/kddockwidgets \
libzstd.so:archivers/zstd
diff --git a/graphics/qcustomplot/Makefile b/graphics/qcustomplot/Makefile
index e55b7be07c25..9b70a3c0ede1 100644
--- a/graphics/qcustomplot/Makefile
+++ b/graphics/qcustomplot/Makefile
@@ -1,8 +1,9 @@
PORTNAME= qcustomplot
DISTVERSION= 2.1.1
+PORTREVISION= 1
CATEGORIES= graphics
MASTER_SITES= https://www.qcustomplot.com/release/${PORTVERSION}/
-PKGNAMESUFFIX= ${SUFFIX}
+PKGNAMESUFFIX= -${FLAVOR}
DISTNAME= QCustomPlot
DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
@@ -13,30 +14,25 @@ WWW= https://www.qcustomplot.com
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/GPL.txt
-USES= compiler:c++11-lang pkgconfig qt:5
-USE_QT= core gui widgets printsupport buildtools:build
+FLAVORS= qt5 qt6
+FLAVOR?= qt5
+
+USES= cmake compiler:c++11-lang qt:${FLAVOR:S/qt//}
+USE_QT= ${_USE_QT_${FLAVOR}}
USE_LDCONFIG= yes
+_USE_QT_qt5= core gui printsupport widgets buildtools:build qmake:build
+_USE_QT_qt6= base tools:build
+
+CMAKE_ARGS= -DUSE_QT_VERSION=${FLAVOR:S/qt//}
WRKSRC= ${WRKDIR}/${PORTNAME}
-SUFFIX= -qt5
-
-PLIST_FILES= include/qcustomplot.h \
- lib/libQCustomPlot${SUFFIX}.so
-
-do-build:
- @cd ${WRKSRC} && \
- ${MOC} qcustomplot.h > qcustomplot_moc.cpp && \
- ${CXX} ${CXXFLAGS} -shared -fPIC \
- -I${PREFIX}/include \
- `pkg-config --cflags --libs Qt5Core Qt5Gui Qt5Widgets Qt5PrintSupport` \
- qcustomplot.cpp \
- qcustomplot_moc.cpp \
- -o ${WRKSRC}/libQCustomPlot${SUFFIX}.so \
- -Wl,-soname,libQCustomPlot${SUFFIX}.so
-
-do-install:
- ${INSTALL_DATA} ${WRKSRC}/qcustomplot.h ${STAGEDIR}${PREFIX}/include
- ${INSTALL_LIB} ${WRKSRC}/libQCustomPlot${SUFFIX}.so ${STAGEDIR}${PREFIX}/lib
+PLIST_SUB= SHLIB_VER=${DISTVERSION}
+
+${FLAVOR}_PLIST= ${.CURDIR}/pkg-plist.${FLAVOR}
+
+post-patch:
+ ${CP} ${FILESDIR}/CMakeLists.txt ${FILESDIR}/Config.cmake.in \
+ ${WRKSRC}
.include <bsd.port.mk>
diff --git a/graphics/qcustomplot/files/CMakeLists.txt b/graphics/qcustomplot/files/CMakeLists.txt
new file mode 100644
index 000000000000..d1b0a12201a5
--- /dev/null
+++ b/graphics/qcustomplot/files/CMakeLists.txt
@@ -0,0 +1,113 @@
+cmake_minimum_required(VERSION 3.18.4)
+
+SET(QCustomPlot_MAJOR_VERSION "2")
+SET(QCustomPlot_MINOR_VERSION "1")
+SET(QCustomPlot_PATCH_VERSION "1")
+
+set(QCustomPlot_VERSION "${QCustomPlot_MAJOR_VERSION}.${QCustomPlot_MINOR_VERSION}.${QCustomPlot_PATCH_VERSION}")
+set(QCustomPlot_SOVERSION "${QCustomPlot_MAJOR_VERSION}")
+
+PROJECT(QCustomPlot LANGUAGES CXX VERSION ${QCustomPlot_VERSION})
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+
+include(GNUInstallDirs)
+include(FeatureSummary)
+
+#-----------------------------------------------------------#
+# Dependencies
+#-----------------------------------------------------------#
+
+set(REQUIRED_QT_COMPONENTS Core Widgets PrintSupport)
+
+set(MIN_REQUIRED_QT5_VERSION "5.12")
+set(MIN_REQUIRED_QT6_VERSION "6.2.0")
+
+
+find_package(Qt${USE_QT_VERSION} ${MIN_REQUIRED_QT${USE_QT_VERSION}_VERSION}
+ COMPONENTS ${REQUIRED_QT_COMPONENTS} REQUIRED)
+set(QT_VERSION_MAJOR ${USE_QT_VERSION})
+
+
+#-----------------------------------------------------------#
+# Definitions
+#-----------------------------------------------------------#
+
+set(LIB5_SUFFIX "-qt5")
+set(LIB6_SUFFIX "Qt6")
+set(LIB_SUFFIX "${LIB${QT_VERSION_MAJOR}_SUFFIX}")
+
+set(LIB_NAME QCustomPlot${LIB_SUFFIX})
+set(CMAKE_CONFIG_FILE_NAME ${LIB_NAME}Config.cmake)
+set(CMAKE_CONFIG_LIB_NAMES ${LIB_NAME} lib${LIB_NAME})
+
+set(INC5_SUBDIR "")
+set(INC6_SUBDIR "${LIB_NAME}")
+set(QCUSTOMPLOT_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${INC${QT_VERSION_MAJOR}_SUBDIR}")
+
+
+#-----------------------------------------------------------#
+# Compiler Settings
+#-----------------------------------------------------------#
+
+#set(CMAKE_CXX_STANDARD 17)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+# Only enable strict warnings in debug mode
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wextra -Werror -pedantic")
+
+# As per the author of the library, we should export the symbols under
+# MS-Windows.
+add_definitions(-DQCUSTOMPLOT_COMPILE_LIBRARY)
+
+#-----------------------------------------------------------#
+# Sources
+#-----------------------------------------------------------#
+
+add_library(${LIB_NAME} SHARED qcustomplot.cpp)
+
+set_target_properties(${LIB_NAME} PROPERTIES
+ VERSION ${QCustomPlot_VERSION}
+ SOVERSION ${QCustomPlot_SOVERSION})
+
+target_link_libraries(${LIB_NAME}
+ Qt${QT_VERSION_MAJOR}::Widgets
+ Qt${QT_VERSION_MAJOR}::PrintSupport)
+
+#-----------------------------------------------------------#
+# Installation
+#-----------------------------------------------------------#
+
+install(TARGETS ${LIB_NAME}
+ EXPORT ${LIB_NAME}Targets
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ INCLUDES DESTINATION ${QCUSTOMPLOT_INSTALL_INCLUDEDIR})
+
+install(FILES qcustomplot.h DESTINATION "${QCUSTOMPLOT_INSTALL_INCLUDEDIR}")
+
+install(EXPORT ${LIB_NAME}Targets
+ FILE ${LIB_NAME}Targets.cmake
+ NAMESPACE ${LIB_NAME}::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LIB_NAME})
+
+include(CMakePackageConfigHelpers)
+
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
+ "${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}Config.cmake"
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LIB_NAME})
+
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}Config.cmake"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LIB_NAME})
+
+#-----------------------------------------------------------#
+# Summary
+#-----------------------------------------------------------#
+
+feature_summary(FATAL_ON_MISSING_REQUIRED_PACKAGES WHAT ALL)
+
diff --git a/graphics/qcustomplot/files/Config.cmake.in b/graphics/qcustomplot/files/Config.cmake.in
new file mode 100644
index 000000000000..07b184a53912
--- /dev/null
+++ b/graphics/qcustomplot/files/Config.cmake.in
@@ -0,0 +1,5 @@
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@LIB_NAME@Targets.cmake")
+
+check_required_components(@LIB_NAME@)
diff --git a/graphics/qcustomplot/pkg-plist.qt5 b/graphics/qcustomplot/pkg-plist.qt5
new file mode 100644
index 000000000000..c662cc44b810
--- /dev/null
+++ b/graphics/qcustomplot/pkg-plist.qt5
@@ -0,0 +1,7 @@
+include/qcustomplot.h
+lib/cmake/QCustomPlot-qt5/QCustomPlot-qt5Config.cmake
+lib/cmake/QCustomPlot-qt5/QCustomPlot-qt5Targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/QCustomPlot-qt5/QCustomPlot-qt5Targets.cmake
+lib/libQCustomPlot-qt5.so
+lib/libQCustomPlot-qt5.so.2
+lib/libQCustomPlot-qt5.so.%%SHLIB_VER%%
diff --git a/graphics/qcustomplot/pkg-plist.qt6 b/graphics/qcustomplot/pkg-plist.qt6
new file mode 100644
index 000000000000..9dd841ce2959
--- /dev/null
+++ b/graphics/qcustomplot/pkg-plist.qt6
@@ -0,0 +1,7 @@
+include/QCustomPlotQt6/qcustomplot.h
+lib/cmake/QCustomPlotQt6/QCustomPlotQt6Config.cmake
+lib/cmake/QCustomPlotQt6/QCustomPlotQt6Targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/QCustomPlotQt6/QCustomPlotQt6Targets.cmake
+lib/libQCustomPlotQt6.so
+lib/libQCustomPlotQt6.so.2
+lib/libQCustomPlotQt6.so.%%SHLIB_VER%%
diff --git a/misc/nn-insight/Makefile b/misc/nn-insight/Makefile
index 32ff7832631b..578dc429ac55 100644
--- a/misc/nn-insight/Makefile
+++ b/misc/nn-insight/Makefile
@@ -18,7 +18,7 @@ BUILD_DEPENDS= avir>0:graphics/avir \
png++>0:graphics/png++
LIB_DEPENDS= libcgraph.so:graphics/graphviz \
libpng.so:graphics/png \
- libQCustomPlot-qt5.so:graphics/qcustomplot \
+ libQCustomPlot-qt5.so:graphics/qcustomplot@qt5 \
libtcmalloc.so:devel/google-perftools
USES= compiler:c++17-lang cmake pkgconfig qt:5