diff --git a/audio/polyphone/Makefile b/audio/polyphone/Makefile --- a/audio/polyphone/Makefile +++ b/audio/polyphone/Makefile @@ -14,7 +14,7 @@ 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 --- a/devel/hotspot/Makefile +++ b/devel/hotspot/Makefile @@ -13,7 +13,7 @@ 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 --- 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 @@ 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 diff --git a/graphics/qcustomplot/files/CMakeLists.txt b/graphics/qcustomplot/files/CMakeLists.txt new file mode 100644 --- /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 --- /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 --- /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 --- /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 --- a/misc/nn-insight/Makefile +++ b/misc/nn-insight/Makefile @@ -18,7 +18,7 @@ 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