From 102296a73af4b677cff6c51770213aaabfa92d4c Mon Sep 17 00:00:00 2001 From: Aaron Colwell <300262+acolwell@users.noreply.github.com> Date: Mon, 11 Mar 2024 22:49:26 -0700 Subject: [PATCH] Fixes to get a Qt6 installer build --- .github/workflows/build_installer.yml | 12 ++- App/App.pro | 1 + Engine/Engine.pro | 105 ++--------------------- Gui/Gui.pro | 12 ++- Renderer/Renderer.pro | 1 + Tests/Tests.pro | 1 + global.pri | 56 ++++++++---- tools/jenkins/build-Windows-installer.sh | 17 ++-- tools/jenkins/build-natron.sh | 29 +++++-- tools/jenkins/common.sh | 2 +- tools/jenkins/compiler-common.sh | 2 +- tools/jenkins/genDllVersions.sh | 17 ++++ 12 files changed, 111 insertions(+), 144 deletions(-) diff --git a/.github/workflows/build_installer.yml b/.github/workflows/build_installer.yml index 9b9ddee8d..9d609a418 100644 --- a/.github/workflows/build_installer.yml +++ b/.github/workflows/build_installer.yml @@ -34,6 +34,9 @@ jobs: ${GITHUB_WORKSPACE}/.github/workflows/install_natron_pacman_repo.sh ${GITHUB_WORKSPACE} ${GITHUB_WORKSPACE}/natron_pacman_repo pacman -S --needed --noconfirm mingw-w64-x86_64-natron-build-deps-qt5 + pacman -Rs mingw-w64-x86_64-qt5-base mingw-w64-x86_64-pyside2 mingw-w64-x86_64-shiboken2 + pacman -S --needed --noconfirm mingw-w64-x86_64-qt6-base mingw-w64-x86_64-pyside6 mingw-w64-x86_64-shiboken6 + - name: Build id: build run: | @@ -42,7 +45,7 @@ jobs: cd tools/jenkins - WORKSPACE=${NATRON_BUILD_WORKSPACE_UNIX} BUILD_NAME=natron BUILD_NUMBER=1 BITS=64 NATRON_LICENSE=GPL GIT_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git GIT_URL_IS_NATRON=1 SNAPSHOT_BRANCH=${GITHUB_REF_NAME} QT_VERSION_MAJOR=5 DISABLE_BREAKPAD=1 NOUPDATE=1 MKJOBS=$(nproc) MINIMIZE_DISK_USAGE=1 ./launchBuildMain.sh + WORKSPACE=${NATRON_BUILD_WORKSPACE_UNIX} BUILD_NAME=natron BUILD_NUMBER=1 BITS=64 NATRON_LICENSE=GPL GIT_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git GIT_URL_IS_NATRON=1 SNAPSHOT_BRANCH=${GITHUB_REF_NAME} QT_VERSION_MAJOR=6 DISABLE_BREAKPAD=1 NOUPDATE=1 MKJOBS=$(nproc) MINIMIZE_DISK_USAGE=1 ./launchBuildMain.sh ARCHIVE_DIR=${NATRON_BUILD_WORKSPACE_UNIX}/builds_archive/natron/1 INSTALLER_ZIP_UNIX=$(ls ${ARCHIVE_DIR}/Natron*Windows-x86_64.zip) @@ -66,7 +69,7 @@ jobs: - name: Uninstall Natron dependencies run: | pacman -Rs --noconfirm mingw-w64-x86_64-natron-build-deps-qt5 - + pacman -Rs mingw-w64-x86_64-qt6-base mingw-w64-x86_64-pyside6 mingw-w64-x86_64-shiboken6 - name: Verify plugin loading run: | INSTALLER_DIR=$(cygpath -u '${{ steps.build.outputs.INSTALLER_DIR }}')/${{ steps.build.outputs.INSTALLER_NAME }} @@ -106,6 +109,8 @@ jobs: ${GITHUB_WORKSPACE}/.github/workflows/install_natron_pacman_repo.sh ${GITHUB_WORKSPACE} ${GITHUB_WORKSPACE}/natron_pacman_repo pacman -S --needed --noconfirm mingw-w64-x86_64-natron-build-deps-qt5 + pacman -Rs mingw-w64-x86_64-qt5-base mingw-w64-x86_64-pyside2 mingw-w64-x86_64-shiboken2 + pacman -S --needed --noconfirm mingw-w64-x86_64-qt6-base mingw-w64-x86_64-pyside6 mingw-w64-x86_64-shiboken6 - name: Build id: build run: | @@ -114,7 +119,7 @@ jobs: cd tools/jenkins - WORKSPACE=${NATRON_BUILD_WORKSPACE_UNIX} BUILD_NAME=natron BUILD_NUMBER=1 BITS=64 NATRON_LICENSE=GPL GIT_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git GIT_URL_IS_NATRON=1 SNAPSHOT_BRANCH=${GITHUB_REF_NAME} QT_VERSION_MAJOR=5 NOUPDATE=1 MKJOBS=$(nproc) MINIMIZE_DISK_USAGE=1 ./launchBuildMain.sh + WORKSPACE=${NATRON_BUILD_WORKSPACE_UNIX} BUILD_NAME=natron BUILD_NUMBER=1 BITS=64 NATRON_LICENSE=GPL GIT_URL=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git GIT_URL_IS_NATRON=1 SNAPSHOT_BRANCH=${GITHUB_REF_NAME} QT_VERSION_MAJOR=6 NOUPDATE=1 MKJOBS=$(nproc) MINIMIZE_DISK_USAGE=1 ./launchBuildMain.sh ARCHIVE_DIR=${NATRON_BUILD_WORKSPACE_UNIX}/builds_archive/natron/1 INSTALLER_ZIP_UNIX=$(ls ${ARCHIVE_DIR}/Natron*-breakpad.zip) @@ -148,6 +153,7 @@ jobs: - name: Uninstall Natron dependencies run: | pacman -Rs --noconfirm mingw-w64-x86_64-natron-build-deps-qt5 + pacman -Rs mingw-w64-x86_64-qt6-base mingw-w64-x86_64-pyside6 mingw-w64-x86_64-shiboken6 - name: Verify plugin loading run: | diff --git a/App/App.pro b/App/App.pro index f2e3461a1..7b9ba41c0 100644 --- a/App/App.pro +++ b/App/App.pro @@ -42,6 +42,7 @@ CONFIG += static-gui static-engine static-host-support static-breakpadclient sta QT += gui core opengl network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets concurrent +greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat openglwidgets !noexpat: CONFIG += expat diff --git a/Engine/Engine.pro b/Engine/Engine.pro index 748d7be8e..3d9f411b4 100644 --- a/Engine/Engine.pro +++ b/Engine/Engine.pro @@ -24,6 +24,7 @@ CONFIG += moc CONFIG += boost boost-serialization-lib qt cairo python shiboken pyside QT += core network greaterThan(QT_MAJOR_VERSION, 4): QT += concurrent +greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat ENGINE_WRAPPER_DIR = Qt$${QT_MAJOR_VERSION}/NatronEngine @@ -433,54 +434,10 @@ HEADERS += \ $${ENGINE_WRAPPER_DIR}/natronengine_python.h \ ENGINE_GENERATED_SOURCES = \ - animatedparam_wrapper \ - app_wrapper \ - appsettings_wrapper \ - beziercurve_wrapper \ - booleanparam_wrapper \ - boolnodecreationproperty_wrapper \ - buttonparam_wrapper \ - choiceparam_wrapper \ - colorparam_wrapper \ - colortuple_wrapper \ - double2dparam_wrapper \ - double2dtuple_wrapper \ - double3dparam_wrapper \ - double3dtuple_wrapper \ - doubleparam_wrapper \ - effect_wrapper \ - exprutils_wrapper \ - fileparam_wrapper \ - floatnodecreationproperty_wrapper \ - group_wrapper \ - groupparam_wrapper \ - imagelayer_wrapper \ - int2dparam_wrapper \ - int2dtuple_wrapper \ - int3dparam_wrapper \ - int3dtuple_wrapper \ - intnodecreationproperty_wrapper \ - intparam_wrapper \ - itembase_wrapper \ - layer_wrapper \ - natron_enum_wrapper \ - nodecreationproperty_wrapper \ - outputfileparam_wrapper \ - pageparam_wrapper \ - param_wrapper \ - parametricparam_wrapper \ - pathparam_wrapper \ - pycoreapplication_wrapper \ - rectd_wrapper \ - recti_wrapper \ - roto_wrapper \ - separatorparam_wrapper \ - stringnodecreationproperty_wrapper \ - stringparam_wrapper \ - stringparambase_wrapper \ - track_wrapper \ - tracker_wrapper \ - userparamholder_wrapper \ + natron_python_wrapper \ + natron_rectd_wrapper \ + natron_recti_wrapper \ + natron_wrapper \ for(name, ENGINE_GENERATED_SOURCES) { SOURCES += $${ENGINE_WRAPPER_DIR}/$${name}.cpp @@ -491,58 +448,6 @@ for(name, ENGINE_GENERATED_SOURCES) { OTHER_FILES += \ typesystem_engine.xml -# 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 - -# defineReplace(shibokenWorkaround) { -# SOURCES += $$GENERATED_SOURCES -# return("%_wrapper.cpp") -# } - -# isEmpty(SHIBOKEN) { -# SHIBOKEN = shiboken -# } - -# 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 { diff --git a/Gui/Gui.pro b/Gui/Gui.pro index 7ef0aaf45..3041b78b6 100644 --- a/Gui/Gui.pro +++ b/Gui/Gui.pro @@ -26,6 +26,10 @@ QT += gui core network greaterThan(QT_MAJOR_VERSION, 4) { QT += concurrent widgets + + greaterThan(QT_MAJOR_VERSION, 5) { + QT += core5compat openglwidgets + } } else { QT += opengl } @@ -386,13 +390,7 @@ HEADERS += \ ../libs/OpenFX_extensions/ofxhParametricParam.h \ $${GUI_WRAPPER_DIR}/natrongui_python.h \ -GUI_GENERATED_SOURCES = \ - guiapp_wrapper \ - pyguiapplication_wrapper \ - pymodaldialog_wrapper \ - pypanel_wrapper \ - pytabwidget_wrapper \ - pyviewer_wrapper +GUI_GENERATED_SOURCES = for(name, GUI_GENERATED_SOURCES) { SOURCES += $${GUI_WRAPPER_DIR}/$${name}.cpp diff --git a/Renderer/Renderer.pro b/Renderer/Renderer.pro index d225ee8c7..651cfead2 100644 --- a/Renderer/Renderer.pro +++ b/Renderer/Renderer.pro @@ -20,6 +20,7 @@ QT += core network QT -= gui greaterThan(QT_MAJOR_VERSION, 4): QT += concurrent +greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat TARGET = NatronRenderer CONFIG += console diff --git a/Tests/Tests.pro b/Tests/Tests.pro index af421fc5c..204b309e4 100644 --- a/Tests/Tests.pro +++ b/Tests/Tests.pro @@ -25,6 +25,7 @@ CONFIG += boost boost-serialization-lib opengl qt cairo python shiboken pyside CONFIG += static-gui static-engine static-host-support static-breakpadclient static-libmv static-openmvg static-ceres static-libtess QT += gui core opengl network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets concurrent +greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat openglwidgets CONFIG += openmvg-flags glad-flags diff --git a/global.pri b/global.pri index 4290f314b..6f569dfa7 100644 --- a/global.pri +++ b/global.pri @@ -17,7 +17,7 @@ # along with Natron. If not, see # ***** END LICENSE BLOCK ***** -CONFIG += c++11 c++14 +CONFIG += c++11 c++17 # libs may modify the config (eg openmp), so it must be included before include(libs.pri) @@ -309,10 +309,10 @@ macx-clang-libc++ { QMAKE_OBJECTIVE_CFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET QMAKE_OBJECTIVE_CXXFLAGS += -stdlib=libc++ -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET c++11 { - c++14 { - QMAKE_OBJECTIVE_CXXFLAGS += -std=c++14 + c++17 { + QMAKE_OBJECTIVE_CXXFLAGS += -std=c++17 } - !c++14 { + !c++17 { QMAKE_OBJECTIVE_CXXFLAGS += -std=c++11 } } @@ -323,10 +323,10 @@ macx-clang { QMAKE_OBJECTIVE_CFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET QMAKE_OBJECTIVE_CXXFLAGS += -mmacosx-version-min=$$QMAKE_MACOSX_DEPLOYMENT_TARGET c++11 { - c++14 { - QMAKE_OBJECTIVE_CXXFLAGS += -std=c++14 + c++17 { + QMAKE_OBJECTIVE_CXXFLAGS += -std=c++17 } - !c++14 { + !c++17 { QMAKE_OBJECTIVE_CXXFLAGS += -std=c++11 } } @@ -418,6 +418,16 @@ win32-g++ { expat: PKGCONFIG += expat cairo: PKGCONFIG += cairo fontconfig + equals(QT_MAJOR_VERSION, 6) { + shiboken: INCLUDEPATH += $$system(pkg-config --variable=includedir shiboken6) + PYSIDE_INCLUDEDIR = $$system(pkg-config --variable=includedir pyside6) + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtCore + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtGui + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtWidgets + shiboken: PKGCONFIG += shiboken6 + pyside: PKGCONFIG += pyside6 + } equals(QT_MAJOR_VERSION, 5) { shiboken: INCLUDEPATH += $$system(pkg-config --variable=includedir shiboken2) PYSIDE_INCLUDEDIR = $$system(pkg-config --variable=includedir pyside2) @@ -472,7 +482,19 @@ unix { INCLUDEPATH *= $$PYTHON_INCLUDEPATH } - equals(QT_MAJOR_VERSION, 5) { + equals(QT_MAJOR_VERSION, 6) { + system(pkg-config --exists pyside6) { + shiboken: PKGCONFIG += shiboken6 + pyside: PKGCONFIG += pyside6 + # add QtCore to includes + PYSIDE_INCLUDEDIR = $$system(pkg-config --variable=includedir pyside6) + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtCore + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtGui + pyside: INCLUDEPATH += $$PYSIDE_INCLUDEDIR/QtWidgets + } + } + + equals(QT_MAJOR_VERSION, 5) { system(pkg-config --exists pyside2) { shiboken: PKGCONFIG += shiboken2 pyside: PKGCONFIG += pyside2 @@ -528,13 +550,13 @@ unix { symbols_hidden_by_default.value = YES QMAKE_MAC_XCODE_SETTINGS += symbols_hidden_by_default c++11 { - c++14 { - QMAKE_CXXFLAGS += -std=c++14 - enable_cxx14.name = CLANG_CXX_LANGUAGE_STANDARD - enable_cxx14.value = c++14 - QMAKE_MAC_XCODE_SETTINGS += enable_cxx14 + c++17 { + QMAKE_CXXFLAGS += -std=c++17 + enable_cxx17.name = CLANG_CXX_LANGUAGE_STANDARD + enable_cxx17.value = c++17 + QMAKE_MAC_XCODE_SETTINGS += enable_cxx17 } - !c++14 { + !c++17 { QMAKE_CXXFLAGS += -std=c++11 enable_cxx11.name = CLANG_CXX_LANGUAGE_STANDARD enable_cxx11.value = c++0x @@ -547,10 +569,10 @@ unix { QMAKE_CXXFLAGS += -ftemplate-depth-1024 QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions c++11 { - c++14 { - QMAKE_CXXFLAGS += -std=c++14 + c++17 { + QMAKE_CXXFLAGS += -std=c++17 } - !c++14 { + !c++17 { QMAKE_CXXFLAGS += -std=c++11 } } diff --git a/tools/jenkins/build-Windows-installer.sh b/tools/jenkins/build-Windows-installer.sh index b70c9a071..91b3cb228 100755 --- a/tools/jenkins/build-Windows-installer.sh +++ b/tools/jenkins/build-Windows-installer.sh @@ -132,14 +132,14 @@ cp "$INC_PATH/config/"*.png "$INSTALLER_PATH/config/" # make sure we have mt and qtifw -if ! which mt.exe; then +MT_EXE=mt.exe +if ! which ${MT_EXE}; then # Add Windows SDK to path so that mt.exe is available. WIN_SDK_MAJOR_VERSION=10 WIN_SDK_BASE_PATH="/c/Program Files (x86)/Windows Kits/${WIN_SDK_MAJOR_VERSION}/bin" - WIN_SDK_VERSION=$(ls "${WIN_SDK_BASE_PATH}" | grep "${WIN_SDK_MAJOR_VERSION}." | sort -n | tail -1) - PATH="${WIN_SDK_BASE_PATH}/${WIN_SDK_VERSION}/x64/":${PATH} + MT_EXE=$(find "${WIN_SDK_BASE_PATH}" -name mt.exe | grep x64 | sort -n | tail -1) - if ! which mt.exe; then + if ! which "${MT_EXE}"; then echo "Failed to find mt.exe" exit 1 fi @@ -222,7 +222,7 @@ function installPlugin() { done echo "" >> "$PLUGIN_MANIFEST" for location in "$PKG_PATH/data" "${TMP_PORTABLE_DIR}"; do - (cd "$location/Plugins/OFX/Natron/${OFX_BINARY}.ofx.bundle/Contents/Win${BITS}"; mt -nologo -manifest "$PLUGIN_MANIFEST" -outputresource:"${OFX_BINARY}.ofx;2") + (cd "$location/Plugins/OFX/Natron/${OFX_BINARY}.ofx.bundle/Contents/Win${BITS}"; "${MT_EXE}" -nologo -manifest "$PLUGIN_MANIFEST" -outputresource:"${OFX_BINARY}.ofx;2") done fi @@ -410,7 +410,10 @@ mkdir -p "${TMP_PORTABLE_DIR}/Plugins" cp -a "$SDK_HOME/lib/python${PYVER}" "${TMP_PORTABLE_DIR}/lib/" -if [[ ${QT_VERSION_MAJOR} -ge 5 ]]; then +if [[ ${QT_VERSION_MAJOR} -ge 6 ]]; then + PYSIDE_PLUGIN_PATH="${TMP_PORTABLE_DIR}/Plugins/PySide6" + mv "${TMP_PORTABLE_DIR}/lib/python${PYVER}/site-packages/PySide6" "${TMP_PORTABLE_DIR}/lib/python${PYVER}/site-packages/shiboken6" "${TMP_PORTABLE_DIR}/Plugins" +elif [[ ${QT_VERSION_MAJOR} -eq 5 ]]; then PYSIDE_PLUGIN_PATH="${TMP_PORTABLE_DIR}/Plugins/PySide2" mv "${TMP_PORTABLE_DIR}/lib/python${PYVER}/site-packages/PySide2" "${TMP_PORTABLE_DIR}/lib/python${PYVER}/site-packages/shiboken2" "${TMP_PORTABLE_DIR}/Plugins" else @@ -450,7 +453,7 @@ fi # python zip if [ "${USE_QT5:-}" != 1 ]; then - rm -rf "$PYDIR"/site-packages/shiboken2* "$PYDIR"/site-packages/PySide2 || true + rm -rf "$PYDIR"/site-packages/shiboken2* "$PYDIR"/site-packages/PySide2 "$PYDIR"/site-packages/shiboken6* "$PYDIR"/site-packages/PySide6 || true fi export PY_BIN="$SDK_HOME/bin/python.exe" diff --git a/tools/jenkins/build-natron.sh b/tools/jenkins/build-natron.sh index c69ed54f9..640392488 100755 --- a/tools/jenkins/build-natron.sh +++ b/tools/jenkins/build-natron.sh @@ -56,7 +56,10 @@ if [ "$PKGOS" = "Linux" ]; then # export C_INCLUDE_PATH="${SDK_HOME}/gcc/include:${SDK_HOME}/include:${SDK_HOME}/qt${QT_VERSION_MAJOR}/include" # export CPLUS_INCLUDE_PATH="${C_INCLUDE_PATH}" fi -QMAKE="$QTDIR/bin/qmake" +QMAKE="$QTDIR/bin/qmake${QT_VERSION_MAJOR}" +if [ ! -x "$QMAKE" ]; then + QMAKE="$QTDIR/bin/qmake" +fi cd "$TMP_PATH" @@ -153,7 +156,7 @@ cat config.pri echo "========================================================================" # Generate pyside bindings (cmake can generate these, qmake can't) -if [ "$QT_VERSION_MAJOR" = 5 ]; then +if [ $QT_VERSION_MAJOR -ge 5 ]; then UNIX_PYTHON_HOME="${PYTHON_HOME}" UNIX_SDK_HOME="${SDK_HOME}" case "$system" in @@ -172,15 +175,25 @@ if [ "$QT_VERSION_MAJOR" = 5 ]; then ;; esac + SHIBOKEN=shiboken2 + PYSIDE_NAME=PySide2 + POST_SHIBOKEN_NAME=runPostShiboken2.sh + if [ $QT_VERSION_MAJOR -gt 5 ]; then + SHIBOKEN=shiboken${QT_VERSION_MAJOR} + PYSIDE_NAME=PySide${QT_VERSION_MAJOR} + POST_SHIBOKEN_NAME=runPostShiboken${QT_VERSION_MAJOR}.sh + fi + rm Engine/Qt${QT_VERSION_MAJOR}/NatronEngine/* Gui/Qt${QT_VERSION_MAJOR}/NatronGui/* || true - SHIBOKEN_INCLUDE_PATHS="-I. -I./Engine -I./Global -Ilibs/OpenFX/include -I${UNIX_SDK_HOME}/include -I${QTDIR}/include -I${UNIX_PYTHON_HOME}/include/python${PYVER} -I${UNIX_PYTHON_HOME}/include/PySide2 -I${UNIX_PYTHON_HOME}/lib/python${PYVER}/site-packages/PySide2/include" - SHIBOKEN_TYPESYSTEM_PATHS="-T${UNIX_PYTHON_HOME}/share/PySide2/typesystems -T${UNIX_PYTHON_HOME}/lib/python${PYVER}/site-packages/PySide2/typesystems" - shiboken2 --avoid-protected-hack --enable-pyside-extensions ${SHIBOKEN_INCLUDE_PATHS} ${SHIBOKEN_TYPESYSTEM_PATHS} --output-directory=Engine/Qt${QT_VERSION_MAJOR} Engine/Pyside2_Engine_Python.h Engine/typesystem_engine.xml + SHIBOKEN_INCLUDE_PATHS="-I. -I./Engine -I./Global -Ilibs/OpenFX/include -I${UNIX_SDK_HOME}/include -I${QTDIR}/include -I${QTDIR}/include/qt${QT_VERSION_MAJOR} -I${UNIX_PYTHON_HOME}/include/python${PYVER} -I${UNIX_PYTHON_HOME}/include/${PYSIDE_NAME} -I${UNIX_PYTHON_HOME}/lib/python${PYVER}/site-packages/${PYSIDE_NAME}/include" + SHIBOKEN_TYPESYSTEM_PATHS="-T${UNIX_PYTHON_HOME}/share/${PYSIDE_NAME}/typesystems -T${UNIX_PYTHON_HOME}/lib/python${PYVER}/site-packages/${PYSIDE_NAME}/typesystems" + + ${SHIBOKEN} --avoid-protected-hack --enable-pyside-extensions ${SHIBOKEN_INCLUDE_PATHS} ${SHIBOKEN_TYPESYSTEM_PATHS} --output-directory=Engine/Qt${QT_VERSION_MAJOR} Engine/${PYSIDE_NAME}_Engine_Python.h Engine/typesystem_engine.xml - shiboken2 --avoid-protected-hack --enable-pyside-extensions ${SHIBOKEN_INCLUDE_PATHS} -I${QTDIR}/include/QtWidgets -I${QTDIR}/include/QtCore ${SHIBOKEN_TYPESYSTEM_PATHS} -T./Engine -T./Shiboken --output-directory=Gui/Qt${QT_VERSION_MAJOR} Gui/Pyside2_Gui_Python.h Gui/typesystem_natronGui.xml + ${SHIBOKEN} --avoid-protected-hack --enable-pyside-extensions ${SHIBOKEN_INCLUDE_PATHS} -I${QTDIR}/include/qt${QT_VERSION_MAJOR}/QtWidgets -I${QTDIR}/include/qt${QT_VERSION_MAJOR}/QtCore ${SHIBOKEN_TYPESYSTEM_PATHS} -T./Engine -T./Shiboken --output-directory=Gui/Qt${QT_VERSION_MAJOR} Gui/${PYSIDE_NAME}_Gui_Python.h Gui/typesystem_natronGui.xml - tools/utils/runPostShiboken2.sh Engine/Qt${QT_VERSION_MAJOR}/NatronEngine natronengine - tools/utils/runPostShiboken2.sh Gui/Qt${QT_VERSION_MAJOR}/NatronGui natrongui + tools/utils/${POST_SHIBOKEN_NAME} Engine/Qt${QT_VERSION_MAJOR}/NatronEngine natronengine + tools/utils/${POST_SHIBOKEN_NAME} Gui/Qt${QT_VERSION_MAJOR}/NatronGui natrongui fi diff --git a/tools/jenkins/common.sh b/tools/jenkins/common.sh index 496c3ef9b..c287bed5d 100644 --- a/tools/jenkins/common.sh +++ b/tools/jenkins/common.sh @@ -397,7 +397,7 @@ if [ -d "$SDK_HOME/qt${QT_VERSION_MAJOR}" ]; then QTDIR="$SDK_HOME/qt${QT_VERSION_MAJOR}" elif [ -d "$SDK_HOME/libexec/qt${QT_VERSION_MAJOR}" ]; then QTDIR="$SDK_HOME/libexec/qt${QT_VERSION_MAJOR}" -elif [ -x "$SDK_HOME/bin/qmake" ] || [ -x "$SDK_HOME/bin/qmake.exe" ]; then +elif [ -x "$SDK_HOME/bin/qmake" ] || [ -x "$SDK_HOME/bin/qmake.exe" ] || [ -x "$SDK_HOME/bin/qmake${QT_VERSION_MAJOR}" ] || [ -x "$SDK_HOME/bin/qmake${QT_VERSION_MAJOR}.exe"]; then QTDIR="$SDK_HOME" else (>&2 echo "Warning: Qt cannot be found in $SDK_HOME or $SDK_HOME/qt${QT_VERSION_MAJOR}") diff --git a/tools/jenkins/compiler-common.sh b/tools/jenkins/compiler-common.sh index 534cf2e20..7ec258efc 100644 --- a/tools/jenkins/compiler-common.sh +++ b/tools/jenkins/compiler-common.sh @@ -203,7 +203,7 @@ fi COMPILER=${COMPILER:-gcc} CC=${CC:-gcc} -CXX=${CXX:-g++ -std=${STD14}} +CXX=${CXX:-g++ -std=${STD17}} CXX17=${CXX17:-g++ -std=${STD17}} OBJECTIVE_CC=${OBJECTIVE_CC:-${CC}} OBJECTIVE_CXX=${OBJECTIVE_CXX:-${CXX}} diff --git a/tools/jenkins/genDllVersions.sh b/tools/jenkins/genDllVersions.sh index 6503dda63..54e24cade 100755 --- a/tools/jenkins/genDllVersions.sh +++ b/tools/jenkins/genDllVersions.sh @@ -136,6 +136,20 @@ elif [ "$QT_VERSION_MAJOR" = "5" ]; then catDll Qt5Xml catDll Qt5XmlPatterns + catDll libdouble-conversion + catDll libicuin + catDll libpcre2-16- + catDll libmd4c +elif [ "$QT_VERSION_MAJOR" = "6" ]; then + catDll Qt6Concurrent + catDll Qt6Core + catDll Qt6Core5Compat + catDll Qt6Gui + catDll Qt6Network + catDll Qt6OpenGL + catDll Qt6OpenGLWidgets + catDll Qt6Widgets + catDll libdouble-conversion catDll libicuin catDll libpcre2-16- @@ -272,6 +286,9 @@ catDll libpython${PYVER} if [ "$PYV" = 2 ]; then catDll libpyside-python${PYVER} catDll libshiboken-python${PYVER} +elif [ "$QT_VERSION_MAJOR" = "6" ]; then + catDll libpyside6. + catDll libshiboken6 else catDll libpyside catDll libshiboken