diff options
author | Christian Kandeler <[email protected]> | 2025-06-06 10:04:22 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2025-06-06 10:04:22 +0200 |
commit | 220a781485295d5856ab39dfa4a8878cae386323 (patch) | |
tree | bde1aa70e1cb4beb37d54902177aeb6cf0235799 | |
parent | e4e6aab7e5d29770b8ab05d2237a26d6588aa7df (diff) | |
parent | e2b542709b1affd92dfc379b946ead21a0f4e626 (diff) |
Merge 3.0 into master
Change-Id: I42d232d6ed3707ad1c5292990cfdbdec02651704
-rw-r--r-- | .github/actions/download-qt/action.yml | 2 | ||||
-rw-r--r-- | doc/reference/items/probe/conanfile-probe.qdoc | 6 | ||||
-rwxr-xr-x | scripts/install-qt.sh | 7 | ||||
-rw-r--r-- | share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js | 11 | ||||
-rw-r--r-- | share/qbs/imports/qbs/Probes/qmake-probe.js | 7 | ||||
-rw-r--r-- | share/qbs/imports/qbs/ProviderUtils/provider-utils.js | 6 | ||||
-rw-r--r-- | src/lib/corelib/language/evaluator.cpp | 2 |
7 files changed, 32 insertions, 9 deletions
diff --git a/.github/actions/download-qt/action.yml b/.github/actions/download-qt/action.yml index b85efe835..89216d3f0 100644 --- a/.github/actions/download-qt/action.yml +++ b/.github/actions/download-qt/action.yml @@ -18,5 +18,5 @@ runs: - name: Install Qt run: | QT_DIR=$(./scripts/install-qt.sh -d $HOME/Qt --version ${{ inputs.version }} --target ${{ inputs.target }} --toolchain ${{ inputs.toolchain }} qtbase qtdeclarative qttools qtscxml qt5compat qtshadertools) - (cygpath -w ${QTC_DIR} 2>/dev/null || echo ${QT_DIR}) >> ${GITHUB_PATH} + (cygpath -w ${QT_DIR} 2>/dev/null || echo ${QT_DIR}) >> ${GITHUB_PATH} shell: bash diff --git a/doc/reference/items/probe/conanfile-probe.qdoc b/doc/reference/items/probe/conanfile-probe.qdoc index f32b5fe80..5b9bc5f8b 100644 --- a/doc/reference/items/probe/conanfile-probe.qdoc +++ b/doc/reference/items/probe/conanfile-probe.qdoc @@ -60,17 +60,19 @@ import qbs.Probes Project { + property string conanInstallPath: conanProbe.generatedFilesPath Probes.ConanfileProbe { id: conanProbe conanfilePath: project.sourceDirectory + "/conanfile.py" generators: "QbsDeps" } + // somewhere in the project, maybe in a base item CppApplication { type: "application" files: "main.cpp" qbsModuleProviders: "conan" - moduleProviders.conan.installDirectory: conanProbe.generatedFilesPath + moduleProviders.conan.installDirectory: project.conanInstallPath Depends { name: "mylib" } } } @@ -236,7 +238,7 @@ \sa {https://docs.conan.io/en/latest/reference/generators.html}{Available generators} - \autodetected + \defaultvalue \c auto-detected */ /*! diff --git a/scripts/install-qt.sh b/scripts/install-qt.sh index 2d1b48b40..880ce149d 100755 --- a/scripts/install-qt.sh +++ b/scripts/install-qt.sh @@ -412,6 +412,13 @@ for COMPONENT in ${COMPONENTS}; do WASM_QMAKE_FILE="${UNPACK_DIR}/${VERSION}/${TOOLCHAIN_DIR}/bin/qmake" QMAKE_FILE="${UNPACK_DIR}/${VERSION}/gcc_64/bin/qmake" sed -i.bak "s|\/home\/qt\/work\/install\/bin\/qmake|${QMAKE_FILE}|g" "${WASM_QMAKE_FILE}" + elif [ "${TARGET_PLATFORM}" == "desktop" ] && [ "${TOOLCHAIN}" == "win64_msvc2022_arm64_cross_compiled" ] && [ ! "${VERSION}" \< "6.0.0" ]; then + CONF_FILE="${UNPACK_DIR}/${VERSION}/${TOOLCHAIN_DIR}/bin/target_qt.conf" + sed -i.bak "s|HostData=target|HostData=../msvc2022_arm64_cross_compiled|g" "${CONF_FILE}" + sed -i.bak "s|HostPrefix=..\/..\/|HostPrefix=..\/..\/msvc2022_64|g" "${CONF_FILE}" + ARM64_QMAKE_FILE="${UNPACK_DIR}/${VERSION}/${TOOLCHAIN_DIR}/bin/qmake.bat" + QMAKE_FILE='"%~dp0\\\\..\\\\..\\\\msvc2022_64\\\\bin\\\\qmake6.exe"' + sed -i.bak "s|\\\\Users\\\\qt\\\\work\\\\install\\\\bin\\\\qmake6.exe|${QMAKE_FILE}|g" "${ARM64_QMAKE_FILE}" else CONF_FILE="${UNPACK_DIR}/${VERSION}/${TOOLCHAIN_DIR}/bin/qt.conf" echo "[Paths]" > ${CONF_FILE} diff --git a/share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js b/share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js index d382dfb02..596d85aee 100644 --- a/share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js +++ b/share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js @@ -55,7 +55,16 @@ function getQmakePaths(pkg) { } } var suffix = FileInfo.executableSuffix(); - return [FileInfo.joinPaths(binDir, "qmake" + suffix)]; + var ret = []; + const infixes = ["", "5", "6"]; + for (var index in infixes) { + const infix = infixes[index]; + var fileName = FileInfo.joinPaths(binDir, "qmake" + infix + suffix); + if (File.exists(fileName)) { + ret.push(fileName); + } + } + return ret; } } diff --git a/share/qbs/imports/qbs/Probes/qmake-probe.js b/share/qbs/imports/qbs/Probes/qmake-probe.js index 94a5a8b12..bdb930460 100644 --- a/share/qbs/imports/qbs/Probes/qmake-probe.js +++ b/share/qbs/imports/qbs/Probes/qmake-probe.js @@ -157,8 +157,13 @@ function msvcCompilerVersionForYear(year) { return mapping[year]; } +function msvcPrefix() { return "win32-msvc"; } + function msvcCompilerVersionFromMkspecName(mkspecName) { - return msvcCompilerVersionForYear(mkspecName.slice(msvcPrefix().length)); + if (mkspecName.startsWith(msvcPrefix())) { + return msvcCompilerVersionForYear(mkspecName.slice(msvcPrefix().length)); + } + return undefined; } function addQtBuildVariant(qtProps, buildVariantName) { diff --git a/share/qbs/imports/qbs/ProviderUtils/provider-utils.js b/share/qbs/imports/qbs/ProviderUtils/provider-utils.js index 963723ae2..e96fb15e8 100644 --- a/share/qbs/imports/qbs/ProviderUtils/provider-utils.js +++ b/share/qbs/imports/qbs/ProviderUtils/provider-utils.js @@ -35,9 +35,9 @@ function pkgConfigToModuleName(packageName) { return packageName.replace(/\./g, '-'); } -function msvcPrefix() { return "win32-msvc"; } - -function isMsvcQt(qtProps) { return qtProps.mkspecName.startsWith(msvcPrefix()); } +function isMsvcQt(qtProps) { + return qtProps.mkspecName.contains("-msvc"); +} function isMinGwQt(qtProps) { return qtProps.mkspecName.startsWith("win32-g++") || qtProps.mkspecName.startsWith("mingw"); diff --git a/src/lib/corelib/language/evaluator.cpp b/src/lib/corelib/language/evaluator.cpp index 8cc0f8f72..2b0faf2de 100644 --- a/src/lib/corelib/language/evaluator.cpp +++ b/src/lib/corelib/language/evaluator.cpp @@ -587,7 +587,7 @@ public: { JSValue result = m_value.apply(this); if (m_engine.checkForJsError(m_value.location())) - return JS_UNINITIALIZED; + return JS_UNDEFINED; if (JS_IsUninitialized(result)) result = JS_UNDEFINED; convertToPropertyType(&m_engine, &m_item, m_decl, &m_value, ConversionType::Full, result); |