diff options
author | Christian Kandeler <[email protected]> | 2025-05-23 12:56:24 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2025-05-23 12:56:24 +0200 |
commit | e4e6aab7e5d29770b8ab05d2237a26d6588aa7df (patch) | |
tree | e79ce4c51cce1f2ead2d68659bced5ba48f36096 | |
parent | aa2e23297cd77b2a8b9efe3338615a65283c4cb3 (diff) | |
parent | e8e15f62f1804ff9758ec8e1055b38e2d44286ca (diff) |
Change-Id: I6e8f0233e4b04f4516c0016deccc374a3fad102e
-rw-r--r-- | changelogs/changes-3.0.0.md | 2 | ||||
-rw-r--r-- | docker-compose.yml | 4 | ||||
-rwxr-xr-x | scripts/install-qt.sh | 16 | ||||
-rw-r--r-- | share/qbs/imports/qbs/ModUtils/utils.js | 4 | ||||
-rw-r--r-- | share/qbs/module-providers/conan.js | 12 |
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"; |