瀏覽代碼

Merge branch 'ctkSimplePythonShell'

* ctkSimplePythonShell:
  ENH: ctkSimplePythonShell - Conditionally include wrapper initialization code
  ENH: ctkSimplePythonShell - CTKCore/CTKWidgets PythonQt wrapper are initialized within a custom PythonManager
Jean-Christophe Fillion-Robin 15 年之前
父節點
當前提交
e85af0000b

+ 11 - 0
Applications/ctkSimplePythonShell/CMakeLists.txt

@@ -33,6 +33,17 @@ ctkMacroGetTargetLibraries(KIT_target_libraries)
 SET(KIT_include_directories
   )
 
+# Configure file will be configured using CTK_WRAP_PYTHONQT_{LIGHT, FULL} variable
+CONFIGURE_FILE(
+  ctkSimplePythonShellConfigure.h.in
+  ${CMAKE_CURRENT_BINARY_DIR}/ctkSimplePythonShellConfigure.h
+  )
+  
+IF(CTK_WRAP_PYTHONQT_LIGHT OR CTK_WRAP_PYTHONQT_FULL)
+  LIST(APPEND KIT_target_libraries CTKCorePythonQt)
+  LIST(APPEND KIT_target_libraries CTKWidgetsPythonQt)
+ENDIF()
+
 ctkMacroBuildApp(
   NAME ${PROJECT_NAME}
   INCLUDE_DIRECTORIES ${KIT_include_directories}

+ 17 - 0
Applications/ctkSimplePythonShell/ctkSimplePythonManager.cpp

@@ -1,8 +1,19 @@
 
+// PythonQT includes
+#include <PythonQt.h>
+
 // CTK includes
 #include "ctkSimplePythonManager.h"
 #include "ctkSimplePythonQtDecorators.h"
 
+#include "ctkScriptingPythonCoreConfigure.h" // For CTK_WRAP_PYTHONQT_{LIGHT, FULL}
+
+#if defined(CTK_WRAP_PYTHONQT_LIGHT) || defined(CTK_WRAP_PYTHONQT_FULL)
+// PythonQt wrapper initialization methods
+void PythonQt_init_org_commontk_CTKCore(PyObject*);
+void PythonQt_init_org_commontk_CTKWidgets(PyObject*);
+#endif
+
 //-----------------------------------------------------------------------------
 ctkSimplePythonManager::ctkSimplePythonManager(QObject* _parent) : Superclass(_parent)
 {
@@ -27,6 +38,12 @@ void ctkSimplePythonManager::preInitialization()
 {
   Superclass::preInitialization();
 
+#if defined(CTK_WRAP_PYTHONQT_LIGHT) || defined(CTK_WRAP_PYTHONQT_FULL)
+  // Initialize wrappers
+  PythonQt_init_org_commontk_CTKCore(0);
+  PythonQt_init_org_commontk_CTKWidgets(0);
+#endif
+
   // Register decorators
   this->registerPythonQtDecorator(new ctkSimplePythonQtDecorators(this));  
   

+ 13 - 0
Applications/ctkSimplePythonShell/ctkSimplePythonShellConfigure.h.in

@@ -0,0 +1,13 @@
+#ifndef __ctkSimplePythonShellConfigure_h
+#define __ctkSimplePythonShellConfigure_h
+
+
+///
+/// Here is where system computed values get stored
+///
+
+#cmakedefine CTK_WRAP_PYTHONQT_LIGHT
+#cmakedefine CTK_WRAP_PYTHONQT_FULL
+
+#endif
+