From f23bf986d6bc3c6b96d39bed3f06205be29ccab4 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Mon, 12 Feb 2018 17:48:24 +0100
Subject: [PATCH] Fix compilation of PyQgv plugin.

---
 CMakeLists.txt                         | 6 +++---
 include/gepetto/gui/windows-manager.hh | 1 +
 plugins/pyqgv/CMakeLists.txt           | 2 +-
 plugins/pyqgv/decorator.cc             | 2 +-
 plugins/pyqgv/plugin.cc                | 2 ++
 plugins/pyqgv/plugin.hh                | 3 +++
 6 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a100e4d..53ecdf3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,9 +69,6 @@ IF(NOT CLIENT_ONLY)
   SET(CMAKE_INCLUDE_CURRENT_DIR ON)
   IF(USE_QT4)
     FIND_PACKAGE(Qt4 REQUIRED QtCore QtGui QtOpenGl QtNetwork)
-    # TODO PythonQt is currently only handled with Qt 4
-    FIND_PACKAGE(PythonQt COMPONENTS QtAll)
-    SET(GEPETTO_GUI_HAS_PYTHONQT (${PythonQt_FOUND} AND ${PythonQt_QtAll_FOUND}) CACHE BOOL "Use PythonQt dependency")
     ADD_DEFINITIONS(-DUSE_QT4)
     SET(PKG_CONFIG_EXTRA "qtversion: ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
   ELSE(USE_QT4)
@@ -83,6 +80,9 @@ IF(NOT CLIENT_ONLY)
     SET(PKG_CONFIG_EXTRA "qtversion=${Qt5Core_VERSION}")
   ENDIF(USE_QT4)
 
+  FIND_PACKAGE(PythonQt COMPONENTS QtAll)
+  SET(GEPETTO_GUI_HAS_PYTHONQT (${PythonQt_FOUND} AND ${PythonQt_QtAll_FOUND}) CACHE BOOL "Use PythonQt dependency")
+
   PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
 
   INCLUDE_DIRECTORIES(SYSTEM ${EIGEN3_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
diff --git a/include/gepetto/gui/windows-manager.hh b/include/gepetto/gui/windows-manager.hh
index 6c75aea..d4872ef 100644
--- a/include/gepetto/gui/windows-manager.hh
+++ b/include/gepetto/gui/windows-manager.hh
@@ -6,6 +6,7 @@
 
 #include <gepetto/gui/meta.hh>
 #include <QColor>
+#include <QObject>
 #include <QVector3D>
 
 namespace gepetto {
diff --git a/plugins/pyqgv/CMakeLists.txt b/plugins/pyqgv/CMakeLists.txt
index 0c76cad..b0d8142 100644
--- a/plugins/pyqgv/CMakeLists.txt
+++ b/plugins/pyqgv/CMakeLists.txt
@@ -43,7 +43,7 @@ ELSE(USE_QT4)
   QT5_ADD_RESOURCES(${PLUGIN_NAME}_RESOURCES_RCC ${${PLUGIN_NAME}_RESOURCES})
 ENDIF(USE_QT4)
 
-INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+INCLUDE_DIRECTORIES("${PYTHON_INCLUDE_DIR}" "${PYTHONQT_INCLUDE_DIR}")
 ADD_DEFINITIONS(${QT_DEFINITIONS})
 ADD_DEFINITIONS(-DQT_PLUGIN)
 ADD_DEFINITIONS(-DQT_NO_DEBUG)
diff --git a/plugins/pyqgv/decorator.cc b/plugins/pyqgv/decorator.cc
index 3f562c2..506051c 100644
--- a/plugins/pyqgv/decorator.cc
+++ b/plugins/pyqgv/decorator.cc
@@ -16,7 +16,7 @@
 
 #include <decorator.hh>
 
-#include <PythonQt/PythonQt.h>
+#include <PythonQt.h>
 #include <QGVScene.h>
 #include <QGVNode.h>
 #include <QGVEdge.h>
diff --git a/plugins/pyqgv/plugin.cc b/plugins/pyqgv/plugin.cc
index adef98e..a6709a1 100644
--- a/plugins/pyqgv/plugin.cc
+++ b/plugins/pyqgv/plugin.cc
@@ -25,5 +25,7 @@ namespace PyQgv {
     registerQGV();
   }
 
+#ifdef USE_QT4
   Q_EXPORT_PLUGIN2 (pyqgv, Plugin)
+#endif // USE_QT4
 } // namespace PyQgv
diff --git a/plugins/pyqgv/plugin.hh b/plugins/pyqgv/plugin.hh
index 3b4f8e8..bd5d8b2 100644
--- a/plugins/pyqgv/plugin.hh
+++ b/plugins/pyqgv/plugin.hh
@@ -31,6 +31,9 @@ namespace PyQgv {
   class Plugin : public QObject, public gepetto::gui::PluginInterface {
     Q_OBJECT
     Q_INTERFACES (gepetto::gui::PluginInterface)
+#ifndef USE_QT4
+    Q_PLUGIN_METADATA (IID "gepetto-viewer-corba.pyqgv")
+#endif // USE_QT4
 
     public:
       QString name () const { return QString("PyQGV"); }
-- 
GitLab