aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2025-05-23 12:56:24 +0200
committerChristian Kandeler <[email protected]>2025-05-23 12:56:24 +0200
commite4e6aab7e5d29770b8ab05d2237a26d6588aa7df (patch)
treee79ce4c51cce1f2ead2d68659bced5ba48f36096
parentaa2e23297cd77b2a8b9efe3338615a65283c4cb3 (diff)
parente8e15f62f1804ff9758ec8e1055b38e2d44286ca (diff)
Merge 3.0 into masterHEADmaster
-rw-r--r--changelogs/changes-3.0.0.md2
-rw-r--r--docker-compose.yml4
-rwxr-xr-xscripts/install-qt.sh16
-rw-r--r--share/qbs/imports/qbs/ModUtils/utils.js4
-rw-r--r--share/qbs/module-providers/conan.js12
5 files changed, 24 insertions, 14 deletions
diff --git a/changelogs/changes-3.0.0.md b/changelogs/changes-3.0.0.md
index 164a07910..20668306d 100644
--- a/changelogs/changes-3.0.0.md
+++ b/changelogs/changes-3.0.0.md
@@ -5,6 +5,8 @@
a better idea about what is going wrong.
* The JavaScript backend was switched to `QuickJS-NG`, which is actively maintained.
* Added support for C++ standard library modules - "import std;" and "import std.compat;".
+* Fixed support for arm64/armv7 with MSVC.
+* Fixed Conan module provider when there are multiple values in array.
# Language
* Introduced new property `minimal` to `Depends` item that controls whether the
diff --git a/docker-compose.yml b/docker-compose.yml
index df7d85f8c..e5226d6d4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -26,12 +26,12 @@ services:
noble-qt6: &noble-qt6
<< : *linux
hostname: noble-qt6
- image: ${DOCKER_USER:-qbsbuild}/qbsdev:noble-qt6-6.7.3_2.5.1-3
+ image: ${DOCKER_USER:-qbsbuild}/qbsdev:noble-qt6-6.8.3_2.5.1-0
build:
dockerfile: docker/noble/Dockerfile
context: .
args:
- QT_VERSION: 6.7.3
+ QT_VERSION: 6.8.3
QBS_VERSION: 2.5.1
noble:
diff --git a/scripts/install-qt.sh b/scripts/install-qt.sh
index 2a454d4a4..2d1b48b40 100755
--- a/scripts/install-qt.sh
+++ b/scripts/install-qt.sh
@@ -271,17 +271,22 @@ function compute_url(){
return 0
fi
else
+ HOST_OS_NAME=${HOST_OS//_x64/}
REMOTE_BASES=(
# New repository format (>=6.8.0)
# qt6_680/qt6_680/qt.qt6.680.clang_64/6.8.3-0-*qtbase-*.7z
"qt6_${VERSION//./}/qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
- # qt6_680/qt6_680/qt.qt6.680.addons.qt5compat/6.8.3-0-*.7z
+ # qt6_680/qt6_680/qt.qt6.680.linux_gcc_64/6.8.3-0-*qtbase-*.7z
+ "qt6_${VERSION//./}/qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${HOST_OS_NAME}_${TOOLCHAIN}"
+ # qt6_680/qt6_680/qt.qt6.680.addons.qt5compat.clang_64/6.8.3-0-*.7z
"qt6_${VERSION//./}/qt6_${VERSION//./}/qt.qt6.${VERSION//./}.addons.${COMPONENT}.${TOOLCHAIN}"
+ # qt6_680/qt6_680/qt.qt6.680.addons.qt5compat.linux_gcc_64/6.8.3-0-*.7z
+ "qt6_${VERSION//./}/qt6_${VERSION//./}/qt.qt6.${VERSION//./}.addons.${COMPONENT}.${HOST_OS_NAME}_${TOOLCHAIN}"
# New repository format (>=6.0.0)
"qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
- "qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${HOST_OS//_x64/}_${TOOLCHAIN}"
+ "qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${HOST_OS_NAME}_${TOOLCHAIN}"
"qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${COMPONENT}.${TOOLCHAIN}"
- "qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${COMPONENT}.${HOST_OS//_x64/}_${TOOLCHAIN}"
+ "qt6_${VERSION//./}/qt.qt6.${VERSION//./}.${COMPONENT}.${HOST_OS_NAME}_${TOOLCHAIN}"
"qt6_${VERSION//./}_${ANDROID_ARCH}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
"qt6_${VERSION//./}_${ANDROID_ARCH}/qt.qt6.${VERSION//./}.${COMPONENT}.${TOOLCHAIN}"
"qt${VERSION//./_}/qt6_${VERSION//./}_${TOOLCHAIN}/qt.qt6.${VERSION//./}.${TOOLCHAIN}"
@@ -340,9 +345,12 @@ for COMPONENT in ${COMPONENTS}; do
UNPACK_DIR="${INSTALL_DIR}/Tools/QtCreator"
ARCHIVER_DIR="${UNPACK_DIR}"
mkdir -p ${UNPACK_DIR}
- elif [[ ! "${COMPONENT}" =~ "qtcreator" ]] && [[ "${VERSION}" > "6.8.1" ]]; then
+ elif [[ ! "${COMPONENT}" =~ "qtcreator" ]] && [[ "${VERSION}" > "6.8.0" ]]; then
UNPACK_DIR="${INSTALL_DIR}"
ARCHIVER_DIR="${UNPACK_DIR}/${VERSION}/${TOOLCHAIN_DIR}"
+ if [[ "${COMPONENT}" =~ "icu" ]]; then
+ ARCHIVER_DIR="${ARCHIVER_DIR}/lib"
+ fi
mkdir -p ${ARCHIVER_DIR}
else
UNPACK_DIR="${INSTALL_DIR}"
diff --git a/share/qbs/imports/qbs/ModUtils/utils.js b/share/qbs/imports/qbs/ModUtils/utils.js
index 3385f3617..b1f1a4212 100644
--- a/share/qbs/imports/qbs/ModUtils/utils.js
+++ b/share/qbs/imports/qbs/ModUtils/utils.js
@@ -510,7 +510,7 @@ function guessArchitecture(m) {
var architecture;
if (m) {
// based on the search algorithm from qprocessordetection.h in qtbase
- var arm64Defs = ["_M_ARM64", "__aarch64__", "__ARM64__"];
+ var arm64Defs = ["_M_ARM64", "__aarch64__", "__ARM64__", "__ARM_ARCH_ISA_A64"];
if (hasAnyOf(m, ["__arm__", "__TARGET_ARCH_ARM", "_M_ARM"].concat(arm64Defs))) {
if (hasAnyOf(m, arm64Defs)) {
architecture = "arm64";
@@ -529,7 +529,7 @@ function guessArchitecture(m) {
}
}
- if (i === 7 && m["_ARM_ARCH_7"] !== undefined) {
+ if (i === 7 && (m["_ARM_ARCH_7"] !== undefined || m["_M_ARM"] === "7")) {
architecture += "v7";
foundSubarch = true;
}
diff --git a/share/qbs/module-providers/conan.js b/share/qbs/module-providers/conan.js
index 3f56b5574..1d2b6cd24 100644
--- a/share/qbs/module-providers/conan.js
+++ b/share/qbs/module-providers/conan.js
@@ -204,27 +204,27 @@ function configure(installDirectory, moduleName, outputBaseDir, jsonProbe) {
+ "; version: " + ModUtils.toJSLiteral(dep.version) + "}");
});
- const buildBindirs = FileInfo.fromNativeSeparators(moduleInfo.build_bindirs);
+ const buildBindirs = moduleInfo.build_bindirs.map(FileInfo.fromNativeSeparators);
writeLine(" readonly property stringList hostBinDirs: (" + ModUtils.toJSLiteral(buildBindirs) + ")");
- const targetBindirs = FileInfo.fromNativeSeparators(cppInfo.bindirs);
+ const targetBindirs = cppInfo.bindirs.map(FileInfo.fromNativeSeparators);
writeLine(" readonly property stringList binDirs: (" + ModUtils.toJSLiteral(targetBindirs) + ")");
// TODO: there's a weird issue with system include dirs with xcode-less clang - incorrect include order?
- writeCppProperty("includePaths", FileInfo.fromNativeSeparators(cppInfo.includedirs));
- writeCppProperty("frameworkPaths", FileInfo.fromNativeSeparators(cppInfo.frameworkdirs));
+ writeCppProperty("includePaths", cppInfo.includedirs.map(FileInfo.fromNativeSeparators));
+ writeCppProperty("frameworkPaths", cppInfo.frameworkdirs.map(FileInfo.fromNativeSeparators));
writeCppProperty("frameworks", cppInfo.frameworks);
writeCppProperty("defines", cppInfo.defines);
writeCppProperty("cFlags", cppInfo.cflags);
writeCppProperty("cxxFlags", cppInfo.cxxflags);
writeCppProperty("linkerFlags", (cppInfo.sharedlinkflags || []).concat(cppInfo.exelinkflags || []));
- writeProperty("resources", FileInfo.fromNativeSeparators(cppInfo.resdirs));
+ writeProperty("resources", cppInfo.resdirs.map(FileInfo.fromNativeSeparators));
const isForImport = targetOS.includes("windows")
const libraryTypes = getLibraryTypes(moduleInfo.options);
libraryTypes.forEach(function(libraryType){
const cppInfoLibs = cppInfo.libs === null ? [] : cppInfo.libs;
- const libdirs = FileInfo.fromNativeSeparators(cppInfo.libdirs);
+ const libdirs = cppInfo.libdirs.map(FileInfo.fromNativeSeparators);
const libs = findLibs(cppInfoLibs, libdirs, libraryType, targetOS, isForImport)
.concat(cppInfo.system_libs === null ? [] : cppInfo.system_libs);
const property = libraryType === "shared" ? "dynamicLibraries" : "staticLibraries";