aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2025-06-06 10:04:22 +0200
committerChristian Kandeler <[email protected]>2025-06-06 10:04:22 +0200
commit220a781485295d5856ab39dfa4a8878cae386323 (patch)
treebde1aa70e1cb4beb37d54902177aeb6cf0235799
parente4e6aab7e5d29770b8ab05d2237a26d6588aa7df (diff)
parente2b542709b1affd92dfc379b946ead21a0f4e626 (diff)
Merge 3.0 into master
-rw-r--r--.github/actions/download-qt/action.yml2
-rw-r--r--doc/reference/items/probe/conanfile-probe.qdoc6
-rwxr-xr-xscripts/install-qt.sh7
-rw-r--r--share/qbs/imports/qbs/Probes/qbs-pkg-config-probe.js11
-rw-r--r--share/qbs/imports/qbs/Probes/qmake-probe.js7
-rw-r--r--share/qbs/imports/qbs/ProviderUtils/provider-utils.js6
-rw-r--r--src/lib/corelib/language/evaluator.cpp2
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);