From fe7cbf16254a38ce4a8b7c9f1cd36344ff4003da Mon Sep 17 00:00:00 2001 From: Pierre Willenbrock Date: Wed, 9 Aug 2023 13:04:21 +0200 Subject: [PATCH 1/2] Allow qt4 and qt5 side-by-side --- CMakeLists.txt | 1 + viz/CMakeLists.txt | 49 ++++++++++++++++++++++-------- viz/SmurfCollidableViz.cpp | 5 ++- viz/SmurfCollidableViz.hpp | 2 ++ viz/SmurfVisualViz.cpp | 5 ++- viz/SmurfVisualViz.hpp | 2 ++ viz/smurf_collidable-viz-qt5.pc.in | 12 ++++++++ viz/smurf_visual-viz-qt5.pc.in | 12 ++++++++ 8 files changed, 73 insertions(+), 15 deletions(-) create mode 100644 viz/smurf_collidable-viz-qt5.pc.in create mode 100644 viz/smurf_visual-viz-qt5.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index ccc990a..952d57c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,4 +7,5 @@ set(ROCK_TEST_ENABLED ON) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x" ) rock_init(smurf 0.1) +rock_feature(NOCURDIR) rock_standard_layout() diff --git a/viz/CMakeLists.txt b/viz/CMakeLists.txt index 0e71507..ecc42a8 100644 --- a/viz/CMakeLists.txt +++ b/viz/CMakeLists.txt @@ -1,18 +1,41 @@ pkg_check_modules(OSGVIZ osgViz) -if(OSGVIZ) -rock_vizkit_plugin(smurf-collidable-viz - SmurfCollidableViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC SmurfCollidableViz.hpp - HEADERS SmurfCollidableViz.hpp) -rock_vizkit_plugin(smurf-visual-viz - SmurfVisualViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC SmurfVisualViz.hpp - HEADERS SmurfVisualViz.hpp) +rock_find_qt4(OPTIONAL) +rock_find_qt5(OPTIONAL Widgets Core Gui) + +if(OSGVIZ_FOUND) + if(ROCK_QT_VERSION_4) + rock_vizkit_plugin(smurf_collidable-viz + SmurfCollidableViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC SmurfCollidableViz.hpp + HEADERS SmurfCollidableViz.hpp + LIBS Qt4::QtCore Qt4::QtGui) + rock_vizkit_plugin(smurf_visual-viz + SmurfVisualViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC SmurfVisualViz.hpp + HEADERS SmurfVisualViz.hpp + LIBS Qt4::QtCore Qt4::QtGui) + endif(ROCK_QT_VERSION_4) + if(ROCK_QT_VERSION_5) + rock_vizkit_plugin_qt5(smurf_collidable-viz-qt5 + SmurfCollidableViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC5 SmurfCollidableViz.hpp + HEADERS SmurfCollidableViz.hpp + LIBS Qt5::Core Qt5::Gui) + rock_vizkit_plugin_qt5(smurf_visual-viz-qt5 + SmurfVisualViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC5 SmurfVisualViz.hpp + HEADERS SmurfVisualViz.hpp + LIBS Qt5::Core Qt5::Gui Qt5::Widgets) + endif(ROCK_QT_VERSION_5) else() message(STATUS "Could not find osgViz: vizkit plugins cannot be generated") endif() diff --git a/viz/SmurfCollidableViz.cpp b/viz/SmurfCollidableViz.cpp index 267e866..c96f818 100644 --- a/viz/SmurfCollidableViz.cpp +++ b/viz/SmurfCollidableViz.cpp @@ -56,4 +56,7 @@ void SmurfCollidableViz::updateDataIntern(smurf::Collidable const& value) } -VizkitQtPlugin(SmurfCollidableViz) +namespace vizkit3d +{ + VizkitQtPluginImpl(SmurfCollidableViz) +} diff --git a/viz/SmurfCollidableViz.hpp b/viz/SmurfCollidableViz.hpp index 7e0d552..ed03f44 100644 --- a/viz/SmurfCollidableViz.hpp +++ b/viz/SmurfCollidableViz.hpp @@ -27,4 +27,6 @@ namespace vizkit3d struct Data; Data* p; }; + + VizkitQtPluginHeaderDecls(SmurfCollidableViz) } diff --git a/viz/SmurfVisualViz.cpp b/viz/SmurfVisualViz.cpp index 393929d..aadf285 100644 --- a/viz/SmurfVisualViz.cpp +++ b/viz/SmurfVisualViz.cpp @@ -62,4 +62,7 @@ void SmurfVisualViz::updateDataIntern(smurf::Visual const& value) } -VizkitQtPlugin(SmurfVisualViz) +namespace vizkit3d +{ + VizkitQtPluginImpl(SmurfVisualViz) +} diff --git a/viz/SmurfVisualViz.hpp b/viz/SmurfVisualViz.hpp index eabc801..2d94b43 100644 --- a/viz/SmurfVisualViz.hpp +++ b/viz/SmurfVisualViz.hpp @@ -27,4 +27,6 @@ namespace vizkit3d struct Data; Data* p; }; + + VizkitQtPluginHeaderDecls(SmurfVisualViz) } diff --git a/viz/smurf_collidable-viz-qt5.pc.in b/viz/smurf_collidable-viz-qt5.pc.in new file mode 100644 index 0000000..8781af4 --- /dev/null +++ b/viz/smurf_collidable-viz-qt5.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: smurf_collidable-viz-qt5 +Description: vizKit plugin for smurf collidables +Requires: smurf @PKGCONFIG_DEPS@ +Version: @PROJECT_VERSION@ +Libs: -L${libdir} -lsmurf_collidable-viz-qt5 +Cflags: -I${includedir} + diff --git a/viz/smurf_visual-viz-qt5.pc.in b/viz/smurf_visual-viz-qt5.pc.in new file mode 100644 index 0000000..25708f3 --- /dev/null +++ b/viz/smurf_visual-viz-qt5.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: smurf_visual-viz-qt5 +Description: vizKit plugin for smurf visuals +Requires: smurf @PKGCONFIG_DEPS@ +Version: @PROJECT_VERSION@ +Libs: -L${libdir} -lsmurf_visual-viz-qt5 +Cflags: -I${includedir} + From a1839b47bd3bc268dc500ab6d827c7f8c9a6dc51 Mon Sep 17 00:00:00 2001 From: Pierre Willenbrock Date: Wed, 27 Aug 2025 18:58:43 +0200 Subject: [PATCH 2/2] Use RockQt to deduplicate visualization library declaration --- viz/CMakeLists.txt | 62 ++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/viz/CMakeLists.txt b/viz/CMakeLists.txt index ecc42a8..5a6304f 100644 --- a/viz/CMakeLists.txt +++ b/viz/CMakeLists.txt @@ -1,41 +1,33 @@ pkg_check_modules(OSGVIZ osgViz) -rock_find_qt4(OPTIONAL) -rock_find_qt5(OPTIONAL Widgets Core Gui) - if(OSGVIZ_FOUND) - if(ROCK_QT_VERSION_4) - rock_vizkit_plugin(smurf_collidable-viz - SmurfCollidableViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC SmurfCollidableViz.hpp - HEADERS SmurfCollidableViz.hpp - LIBS Qt4::QtCore Qt4::QtGui) - rock_vizkit_plugin(smurf_visual-viz - SmurfVisualViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC SmurfVisualViz.hpp - HEADERS SmurfVisualViz.hpp - LIBS Qt4::QtCore Qt4::QtGui) - endif(ROCK_QT_VERSION_4) - if(ROCK_QT_VERSION_5) - rock_vizkit_plugin_qt5(smurf_collidable-viz-qt5 - SmurfCollidableViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC5 SmurfCollidableViz.hpp - HEADERS SmurfCollidableViz.hpp - LIBS Qt5::Core Qt5::Gui) - rock_vizkit_plugin_qt5(smurf_visual-viz-qt5 - SmurfVisualViz.cpp - DEPS smurf - DEPS_PKGCONFIG osgViz - MOC5 SmurfVisualViz.hpp - HEADERS SmurfVisualViz.hpp - LIBS Qt5::Core Qt5::Gui Qt5::Widgets) - endif(ROCK_QT_VERSION_5) + rock_find_qt4(OPTIONAL) + rock_find_qt5(OPTIONAL Widgets Core Gui) + + include(RockQt) + + rock_qt_vizkit_plugin( + TARGETPREFIX smurf_collidable-viz + QT4_SUFFIX "" + MISSINGQTDEPS_NOBUILD + SOURCES SmurfCollidableViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC SmurfCollidableViz.hpp + HEADERS SmurfCollidableViz.hpp + LIBS_QT4 Qt4::QtCore Qt4::QtGui + LIBS_QT5 Qt5::Core Qt5::Gui) + rock_qt_vizkit_plugin( + TARGETPREFIX smurf_visual-viz + QT4_SUFFIX "" + MISSINGQTDEPS_NOBUILD + SOURCES SmurfVisualViz.cpp + DEPS smurf + DEPS_PKGCONFIG osgViz + MOC SmurfVisualViz.hpp + HEADERS SmurfVisualViz.hpp + LIBS_QT4 Qt4::QtCore Qt4::QtGui + LIBS_QT5 Qt5::Core Qt5::Gui Qt5::Widgets) else() message(STATUS "Could not find osgViz: vizkit plugins cannot be generated") endif()