From c8b9e6da572bbce50bf54b44611f2e88d4496dfb Mon Sep 17 00:00:00 2001 From: Martin Reboredo Date: Fri, 22 Jul 2022 10:33:39 -0300 Subject: [PATCH] Revert Shiboken generation in QMake --- Engine/Engine.pro | 95 ++++++++++++++++++++++++++--------------------- Gui/Gui.pro | 51 ++----------------------- global.pri | 10 ----- 3 files changed, 57 insertions(+), 99 deletions(-) diff --git a/Engine/Engine.pro b/Engine/Engine.pro index 91292ba086..e91bdaf943 100644 --- a/Engine/Engine.pro +++ b/Engine/Engine.pro @@ -210,6 +210,7 @@ SOURCES += \ ../Global/PythonUtils.cpp \ ../Global/StrUtils.cpp \ ../libs/SequenceParsing/SequenceParsing.cpp \ + $${ENGINE_WRAPPER_DIR}/natronengine_module_wrapper.cpp \ HEADERS += \ AbortableRenderInfo.h \ @@ -426,9 +427,7 @@ HEADERS += \ ../libs/OpenFX/include/nuke/fnPublicOfxExtensions.h \ ../libs/OpenFX/include/tuttle/ofxReadWrite.h \ ../libs/OpenFX_extensions/ofxhParametricParam.h \ - -GENERATED_SOURCES += $${ENGINE_WRAPPER_DIR}/natronengine_module_wrapper.cpp -GENERATED_HEADERS += $${ENGINE_WRAPPER_DIR}/natronengine_python.h + $${ENGINE_WRAPPER_DIR}/natronengine_python.h \ ENGINE_GENERATED_SOURCES = \ animatedparam_wrapper \ @@ -481,55 +480,67 @@ ENGINE_GENERATED_SOURCES = \ userparamholder_wrapper \ for(name, ENGINE_GENERATED_SOURCES) { - GENERATED_SOURCES += $${ENGINE_WRAPPER_DIR}/$${name}.cpp - GENERATED_HEADERS += $${ENGINE_WRAPPER_DIR}/$${name}.h + SOURCES += $${ENGINE_WRAPPER_DIR}/$${name}.cpp + HEADERS += $${ENGINE_WRAPPER_DIR}/$${name}.h } OTHER_FILES += \ typesystem_engine.xml -defineReplace(shibokenEngine) { - SOURCES += $$GENERATED_SOURCES - HEADERS += $$GENERATED_HEADERS - return("%_wrapper.cpp") -} +# GENERATED_SOURCES = \ +# NatronEngine/animatedparam_wrapper.cpp \ +# NatronEngine/app_wrapper.cpp \ +# NatronEngine/beziercurve_wrapper.cpp \ +# NatronEngine/booleanparam_wrapper.cpp \ +# NatronEngine/buttonparam_wrapper.cpp \ +# NatronEngine/choiceparam_wrapper.cpp \ +# NatronEngine/colorparam_wrapper.cpp \ +# NatronEngine/colortuple_wrapper.cpp \ +# NatronEngine/double2dparam_wrapper.cpp \ +# NatronEngine/double2dtuple_wrapper.cpp \ +# NatronEngine/double3dparam_wrapper.cpp \ +# NatronEngine/double3dtuple_wrapper.cpp \ +# NatronEngine/doubleparam_wrapper.cpp \ +# NatronEngine/effect_wrapper.cpp \ +# NatronEngine/fileparam_wrapper.cpp \ +# NatronEngine/group_wrapper.cpp \ +# NatronEngine/groupparam_wrapper.cpp \ +# NatronEngine/int2dparam_wrapper.cpp \ +# NatronEngine/int2dtuple_wrapper.cpp \ +# NatronEngine/int3dparam_wrapper.cpp \ +# NatronEngine/int3dtuple_wrapper.cpp \ +# NatronEngine/intparam_wrapper.cpp \ +# NatronEngine/itembase_wrapper.cpp \ +# NatronEngine/layer_wrapper.cpp \ +# NatronEngine/natron_wrapper.cpp \ +# NatronEngine/natronengine_module_wrapper.cpp \ +# NatronEngine/outputfileparam_wrapper.cpp \ +# NatronEngine/pageparam_wrapper.cpp \ +# NatronEngine/param_wrapper.cpp \ +# NatronEngine/parametricparam_wrapper.cpp \ +# NatronEngine/pathparam_wrapper.cpp \ +# NatronEngine/roto_wrapper.cpp \ +# NatronEngine/stringparam_wrapper.cpp \ +# NatronEngine/stringparambase_wrapper.cpp -QT_INCLUDEPATH = $$PYTHON_INCLUDEPATH $$PYSIDE_INCLUDEDIR -for(dep, QT) { - QT_INCLUDEPATH += $$eval(QT.$${dep}.includes) - QT_INCLUDEPATH += $$absolute_path($$eval(QT.$${dep}.name), $$PYSIDE_INCLUDEDIR) -} - -equals(QT_MAJOR_VERSION, 5) { - PYENGINE_HEADER = PySide2_Engine_Python.h - POST_SHIBOKEN = bash $$shell_path(../tools/utils/runPostShiboken2.sh) -} else:equals(QT_MAJOR_VERSION, 4) { - PYENGINE_HEADER = Pyside_Engine_Python.h - POST_SHIBOKEN = bash $$shell_path(../tools/utils/runPostShiboken.sh) -} +# defineReplace(shibokenWorkaround) { +# SOURCES += $$GENERATED_SOURCES +# return("%_wrapper.cpp") +# } -SRC_PATH = $$relative_path($$PWD, $$OUT_PWD)/ -DEP_GROUP = $$PYENGINE_HEADER typesystem_engine.xml $$HEADERS -enginesbk.input = $$PYENGINE_HEADER typesystem_engine.xml -enginesbk.depends = $$eval($$list($$join(DEP_GROUP, " "$$SRC_PATH, $$SRC_PATH))) -enginesbk.target = enginesbk -enginesbk.commands = cd $$PWD && $$SHIBOKEN \ - --enable-parent-ctor-heuristic --use-isnull-as-nb_nonzero \ - --avoid-protected-hack --enable-pyside-extensions \ - -I.:..:../Global:../libs/OpenFX/include:$$PYTHON_SITE_PACKAGES/PySide2/include:$$[QT_INSTALL_PREFIX]/include \ - $$join(INCLUDEPATH, ":", "-I") \ - $$join(QT_INCLUDEPATH, ":", "-I") \ - -T$$TYPESYSTEMPATH --output-directory=$$OUT_PWD/Qt$$QT_MAJOR_VERSION \ - $$PYENGINE_HEADER typesystem_engine.xml && \ - $$POST_SHIBOKEN $$OUT_PWD/Qt$$QT_MAJOR_VERSION/NatronEngine natronengine -pyengine.depends = enginesbk -pyengine.target = $$shell_path($$ENGINE_WRAPPER_DIR/%_wrapper.cpp) -pyengine.output_function = shibokenEngine -pyengine.commands = bash -c 'true' +# isEmpty(SHIBOKEN) { +# SHIBOKEN = shiboken +# } -QMAKE_EXTRA_TARGETS += enginesbk pyengine +# SHIBOKEN_FILE = . # Need to give some bogus input +# SHIBOKEN.input = SHIBOKEN_FILE +# SHIBOKEN.output_function = shibokenWorkaround +# SHIBOKEN.commands = $$SHIBOKEN --include-paths=..:$$system(pkg-config --variable=includedir pyside) --typesystem-paths=$$system(pkg-config --variable=typesystemdir pyside) Pyside_Engine_Python.h typesystem_engine.xml +# SHIBOKEN.CONFIG = no_link # don't add the .cpp target file to OBJECTS +# SHIBOKEN.clean = dummy # don't remove the %_wrapper.cpp file by "make clean" +# QMAKE_EXTRA_COMPILERS += SHIBOKEN macx { OBJECTIVE_SOURCES += \ diff --git a/Gui/Gui.pro b/Gui/Gui.pro index 24b4223ffd..ec30c66aba 100644 --- a/Gui/Gui.pro +++ b/Gui/Gui.pro @@ -227,6 +227,7 @@ SOURCES += \ ViewerTabPrivate.cpp \ ViewerToolButton.cpp \ ticks.cpp \ + $${GUI_WRAPPER_DIR}/natrongui_module_wrapper.cpp \ HEADERS += \ AboutWindow.h \ @@ -383,9 +384,7 @@ HEADERS += \ ../libs/OpenFX/include/nuke/fnPublicOfxExtensions.h \ ../libs/OpenFX/include/tuttle/ofxReadWrite.h \ ../libs/OpenFX_extensions/ofxhParametricParam.h \ - -GENERATED_SOURCES += $${GUI_WRAPPER_DIR}/natrongui_module_wrapper.cpp -GENERATED_HEADERS += $${GUI_WRAPPER_DIR}/natrongui_python.h + $${GUI_WRAPPER_DIR}/natrongui_python.h \ GUI_GENERATED_SOURCES = \ guiapp_wrapper \ @@ -396,8 +395,8 @@ GUI_GENERATED_SOURCES = \ pyviewer_wrapper for(name, GUI_GENERATED_SOURCES) { - GENERATED_SOURCES += $${GUI_WRAPPER_DIR}/$${name}.cpp - GENERATED_HEADERS += $${GUI_WRAPPER_DIR}/$${name}.h + SOURCES += $${GUI_WRAPPER_DIR}/$${name}.cpp + HEADERS += $${GUI_WRAPPER_DIR}/$${name}.h } RESOURCES += \ @@ -421,48 +420,6 @@ OTHER_FILES += \ Resources/Images/searchSize.png \ Resources/Images/splashscreen.svg -defineReplace(shibokenGui) { - SOURCES += $$GENERATED_SOURCES - HEADERS += $$GENERATED_HEADERS - return("%_wrapper.cpp") -} - -QT_INCLUDEPATH = $$PYTHON_INCLUDEPATH $$PYSIDE_INCLUDEDIR -for(dep, QT) { - QT_INCLUDEPATH += $$eval(QT.$${dep}.includes) - QT_INCLUDEPATH += $$absolute_path($$eval(QT.$${dep}.name), $$PYSIDE_INCLUDEDIR) -} - -equals(QT_MAJOR_VERSION, 5) { - PYGUI_HEADER = PySide2_Gui_Python.h - POST_SHIBOKEN = bash $$shell_path($$PWD/../tools/utils/runPostShiboken2.sh) -} else:equals(QT_MAJOR_VERSION, 4) { - PYGUI_HEADER = Pyside_Gui_Python.h - POST_SHIBOKEN = bash $$shell_path($$PWD/../tools/utils/runPostShiboken.sh) -} - - -SRC_PATH = $$relative_path($$PWD, $$OUT_PWD)/ -DEP_GROUP = $$PYGUI_HEADER typesystem_natronGui.xml $$HEADERS -guisbk.input = $$PYGUI_HEADER typesystem_natronGui.xml -guisbk.depends = $$eval($$list($$join(DEP_GROUP, " "$$SRC_PATH, $$SRC_PATH))) -guisbk.target = guisbk -guisbk.commands = cd $$PWD && $$SHIBOKEN \ - --enable-parent-ctor-heuristic --use-isnull-as-nb_nonzero \ - --avoid-protected-hack --enable-pyside-extensions \ - -I.:..:../Global:../Engine:../libs/OpenFX/include:$$PYTHON_SITE_PACKAGES/PySide2/include:$$[QT_INSTALL_PREFIX]/include \ - $$join(INCLUDEPATH, ":", "-I") \ - $$join(QT_INCLUDEPATH, ":", "-I") \ - -T../Engine:$$TYPESYSTEMPATH --output-directory=$$OUT_PWD/Qt$$QT_MAJOR_VERSION \ - $$PYGUI_HEADER typesystem_natronGui.xml && \ - $$POST_SHIBOKEN $$OUT_PWD/Qt$$QT_MAJOR_VERSION/NatronGui natrongui -pygui.depends = guisbk -pygui.target = $$shell_path($$GUI_WRAPPER_DIR/%_wrapper.cpp) -pygui.output_function = shibokenGui -pygui.commands = bash -c 'true' - -QMAKE_EXTRA_TARGETS += guisbk pygui - macx { HEADERS += TaskBarMac.h OBJECTIVE_SOURCES += \ diff --git a/global.pri b/global.pri index c8b9cd2081..78a2cbb21a 100644 --- a/global.pri +++ b/global.pri @@ -33,8 +33,6 @@ DEFINES += OFX_SUPPORTS_DIALOG #for QString(const char*) assumes ASCII strings, we may run into troubles DEFINES += QT_NO_CAST_FROM_ASCII -greaterThan(QT_MAJOR_VERSION, 4): CONFIG += python3 - # To run Natron without Python functionnalities (for debug purposes) run-without-python { message("Natron will run (not build) without Python") @@ -404,21 +402,17 @@ win32-g++ { cairo: PKGCONFIG += cairo fontconfig equals(QT_MAJOR_VERSION, 5) { shiboken: INCLUDEPATH += $$PYTHON_SITE_PACKAGES/PySide2/include/shiboken2 - shiboken: SHIBOKEN = $$system(pkg-config --variable=generator_location shiboken2) pyside: INCLUDEPATH += $$PYTHON_SITE_PACKAGES/PySide2/include/PySide2 pyside: INCLUDEPATH += $$PYTHON_SITE_PACKAGES/PySide2/include/PySide2/QtCore pyside: INCLUDEPATH += $$PYTHON_SITE_PACKAGES/PySide2/include/PySide2/QtGui pyside: INCLUDEPATH += $$PYTHON_SITE_PACKAGES/PySide2/include/PySide2/QtWidgets - pyside: TYPESYSTEMPATH *= $$system(pkg-config --variable=typesystemdir pyside2) } equals(QT_MAJOR_VERSION, 4) { shiboken: PKGCONFIG += shiboken-py$$PYV - shiboken: SHIBOKEN = $$system(pkg-config --variable=generator_location shiboken) pyside: PKGCONFIG += pyside-py$$PYV PYSIDE_INCLUDEDIR = $$system(pkg-config --variable=includedir pyside-py$$PYV) pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtCore pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtGui - pyside: TYPESYSTEMPATH *= $$system(pkg-config --variable=typesystemdir pyside) } python: PKGCONFIG += python-$$PYVER$$PY_PKG_SUFFIX boost: LIBS += -lboost_serialization-mt @@ -460,14 +454,12 @@ unix { equals(QT_MAJOR_VERSION, 5) { system(pkg-config --exists pyside2) { shiboken: PKGCONFIG += shiboken2 - shiboken: SHIBOKEN = $$system(pkg-config --variable=generator_location shiboken2) pyside: PKGCONFIG += pyside2 # add QtCore to includes PYSIDE_INCLUDEDIR = $$system(pkg-config --variable=includedir pyside2) pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtCore pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtGui pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtWidgets - pyside: TYPESYSTEMPATH *= $$system(pkg-config --variable=typesystemdir pyside2) } } @@ -477,9 +469,7 @@ unix { # See for example tools/travis/install_dependencies.sh for a solution that works on Linux, # using a custom config.pri shiboken: PKGCONFIG += shiboken - shiboken: SHIBOKEN = $$system(pkg-config --variable=generator_location shiboken) pyside: PKGCONFIG += pyside - pyside: TYPESYSTEMPATH *= $$system(pkg-config --variable=typesystemdir pyside) # The following hack also works with Homebrew if pyside is installed with option --with-python3 macx { QMAKE_LFLAGS += '-Wl,-rpath,\'@loader_path/../Frameworks\''