aboutsummaryrefslogtreecommitdiffstats
path: root/shiboken.pri
diff options
context:
space:
mode:
Diffstat (limited to 'shiboken.pri')
-rw-r--r--shiboken.pri63
1 files changed, 63 insertions, 0 deletions
diff --git a/shiboken.pri b/shiboken.pri
new file mode 100644
index 0000000..29e81b9
--- /dev/null
+++ b/shiboken.pri
@@ -0,0 +1,63 @@
+# Usage: Define variables (details below) and include this pri file afterwards.
+#
+# WRAPPED_HEADER
+# WRAPPER_DIR
+# TYPESYSTEM_FILE
+# TYPESYSTEM_NAME
+# SHIBOKEN_QT
+# WRAPPED_CLASSES
+
+PYTHON = python
+
+include(plugins/pythonextensions/pyside2.pri)
+
+# Qt include paths
+for (qt, SHIBOKEN_QT) {
+ SHIBOKEN_INCLUDEPATHS *= $$eval(QT.$${qt}.includes)
+ SHIBOKEN_FRAMEWORKPATHS *= $$eval(QT.$${qt}.frameworks)
+}
+
+# Qt Creator include paths
+SHIBOKEN_INCLUDEPATHS *= $$INCLUDEPATH
+for (path, SHIBOKEN_INCLUDEPATHS): SHIBOKEN_CXXFLAGS *= -I$$path
+for (path, SHIBOKEN_FRAMEWORKPATHS): SHIBOKEN_CXXFLAGS *= -F$$path
+
+SHIBOKEN_OPTIONS = --generator-set=shiboken --enable-parent-ctor-heuristic \
+ --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero \
+ $$SHIBOKEN_CXXFLAGS -I$$PWD -T$$PWD -T$$PYSIDE2/typesystems --output-directory=$$OUT_PWD
+
+win32: SHIBOKEN_OPTIONS += --avoid-protected-hack
+
+## Prepare the shiboken tool
+QT_TOOL.shiboken.binary = $$system_path($$PYSIDE2/shiboken2)
+qtPrepareTool(SHIBOKEN, shiboken)
+
+## Shiboken run that adds the module wrapper to GENERATED_SOURCES
+shiboken.output = $$WRAPPER_DIR/$${TYPESYSTEM_NAME}_module_wrapper.cpp
+shiboken.commands = $$SHIBOKEN $$SHIBOKEN_OPTIONS $$WRAPPED_HEADER ${QMAKE_FILE_IN}
+shiboken.input = TYPESYSTEM_FILE
+shiboken.dependency_type = TYPE_C
+shiboken.variable_out = GENERATED_SOURCES
+
+module_wrapper_dummy_command.output = $$WRAPPER_DIR/${QMAKE_FILE_BASE}_wrapper.cpp
+module_wrapper_dummy_command.commands = echo ${QMAKE_FILE_IN}
+module_wrapper_dummy_command.depends = $$WRAPPER_DIR/$${TYPESYSTEM_NAME}_module_wrapper.cpp
+module_wrapper_dummy_command.input = WRAPPED_CLASSES
+module_wrapper_dummy_command.dependency_type = TYPE_C
+module_wrapper_dummy_command.variable_out = GENERATED_SOURCES
+
+QMAKE_EXTRA_COMPILERS += shiboken module_wrapper_dummy_command
+
+# TODO: Fix some more of these hardcoded include paths
+INCLUDEPATH += $$WRAPPER_DIR \
+ $$WRAPPER_DIR/../../../plugins/pythonextensions \
+ $$WRAPPER_DIR/../../../plugins/pythonextensions/PythonExtension/QtCreator \
+ "$$IDE_SOURCE_TREE/src/plugins/coreplugin" \
+ "$$IDE_SOURCE_TREE/src/plugins/coreplugin/actionmanager" \
+ "$$IDE_SOURCE_TREE/src/plugins/coreplugin/editormanager" \
+ "$$IDE_SOURCE_TREE/src/libs/extensionsystem" \
+ "$$IDE_SOURCE_TREE/src/libs/utils"
+
+for(i, PYSIDE2_INCLUDE) {
+ for (qt, SHIBOKEN_QT): INCLUDEPATH += $$i/$$eval(QT.$${qt}.name)
+}