blob: 587406a761b54229af3b4028c42acc6a5b405b21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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 -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 \
$$PWD/plugins/pythonextensions \
$$shadowed($$PWD)/plugins/pythonextensions/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)
}
|