diff --git a/coin/platform_configs/cmake_platforms_target_harmonyos.yaml b/coin/platform_configs/cmake_platforms_target_harmonyos.yaml index 7eb9cbef..9d6105b2 100644 --- a/coin/platform_configs/cmake_platforms_target_harmonyos.yaml +++ b/coin/platform_configs/cmake_platforms_target_harmonyos.yaml @@ -32,3 +32,19 @@ Configurations: 'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}', 'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw' ] +- + Id: 'harmonyos-23-arm64-on-macos' + Template: 'qtci-macos-26-arm-105' + Target os: 'HarmonyOS_ANY' + Target arch: 'arm64' + Compiler: 'Clang' + Target compiler: 'Clang' + Platform dependency: 'macos-universal-on-arm64' + Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime', + 'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}', + 'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}', + 'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw' + ] diff --git a/coin/provisioning/common/macos/harmonyos.sh b/coin/provisioning/common/macos/harmonyos.sh new file mode 100755 index 00000000..92fdb35e --- /dev/null +++ b/coin/provisioning/common/macos/harmonyos.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +# Copyright (C) 2025 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script install HarmonyOS sdk and patches. + +set -e + +# shellcheck source=../unix/DownloadURL.sh +source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" +# shellcheck source=../unix/check_and_set_proxy.sh +source "${BASH_SOURCE%/*}/../unix/check_and_set_proxy.sh" +# shellcheck source=../unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" + +targetFolder="/opt/harmonyos" +sdkTargetFolder="$targetFolder/command-line-tools" + +sudo mkdir -p "$sdkTargetFolder" + +basePath="http://ci-files01-hki.ci.qt.io/input/harmonyos" + +toolsVersion="6.1.0.860" +toolsFile="commandline-tools-mac-arm64-6.1.0.860.zip" +toolsSha1="4ba9df069fc5c651753c74297d723a2461be12e9" + +toolsTargetFile="/tmp/$toolsFile" +toolsSourceFile="$basePath/$toolsFile" + +echo "Download and unzip HarmonyOS SDK" +DownloadURL "$toolsSourceFile" "$toolsSourceFile" "$toolsSha1" "$toolsTargetFile" +echo "Unzipping HarmonyOS Tools to '$targetFolder'" +sudo unzip -q "$toolsTargetFile" -d "$targetFolder" +rm "$toolsTargetFile" + +patchFile="harmonyos_sdk_patches.zip" +patchSha1="7f912104a5600bc176891bc6e9d97732f4266ad6" + +patchTargetFile="/tmp/$patchFile" +patchSourceFile="$basePath/$patchFile" +patchTargetFolder="$targetFolder/harmonyos_sdk_patches" + +echo "Download and unzip HarmonyOS SDK patches" +DownloadURL "$patchSourceFile" "$patchSourceFile" "$patchSha1" "$patchTargetFile" +echo "Unzipping HarmonyOS SDK patches to '$targetFolder'" +sudo unzip -q "$patchTargetFile" -d "$targetFolder" +rm "$patchTargetFile" + +echo "Changing ownership of HarmonyOS files." +sudo chown -R qt:wheel "$sdkTargetFolder" +sudo chmod -R 755 $sdkTargetFolder +sudo chown -R qt:wheel "$patchTargetFolder" +sudo chmod -R 755 $patchTargetFolder + +echo "Patching HarmonyOS SDK" + +sdkRootFolder="$sdkTargetFolder/sdk/default/openharmony" +echo "Checking the contents of HarmonyOS SDK..." +ls -l "$sdkRootFolder" + +SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkRootFolder" +export HARMONYOS_SDK_ROOT="$sdkRootFolder" + +echo "HarmonyOS SDK setup finished" diff --git a/coin/provisioning/common/linux/install-openssl-headers-ohos.sh b/coin/provisioning/common/unix/install-openssl-headers-ohos.sh similarity index 100% rename from coin/provisioning/common/linux/install-openssl-headers-ohos.sh rename to coin/provisioning/common/unix/install-openssl-headers-ohos.sh diff --git a/coin/provisioning/common/linux/install-vcpkg-ports-ohos.sh b/coin/provisioning/common/unix/install-vcpkg-ports-ohos.sh similarity index 100% rename from coin/provisioning/common/linux/install-vcpkg-ports-ohos.sh rename to coin/provisioning/common/unix/install-vcpkg-ports-ohos.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/43-install-vcpkg-ports-ohos.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/43-install-vcpkg-ports-ohos.sh index 23c77a2f..4482e97a 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/43-install-vcpkg-ports-ohos.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/43-install-vcpkg-ports-ohos.sh @@ -4,5 +4,5 @@ set -ex -# shellcheck source=../common/linux/install-vcpkg-ports-ohos.sh -source "${BASH_SOURCE%/*}/../common/linux/install-vcpkg-ports-ohos.sh" +# shellcheck source=../common/unix/install-vcpkg-ports-ohos.sh +source "${BASH_SOURCE%/*}/../common/unix/install-vcpkg-ports-ohos.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/44-install-openssl-headers-ohos.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/44-install-openssl-headers-ohos.sh index b672afd3..21a7f99f 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/44-install-openssl-headers-ohos.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/44-install-openssl-headers-ohos.sh @@ -4,5 +4,5 @@ set -ex -# shellcheck source=../common/linux/install-openssl-headers-ohos.sh -source "${BASH_SOURCE%/*}/../common/linux/install-openssl-headers-ohos.sh" +# shellcheck source=../common/unix/install-openssl-headers-ohos.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl-headers-ohos.sh" diff --git a/coin/provisioning/qtci-macos-26-arm/40-harmonyos.sh b/coin/provisioning/qtci-macos-26-arm/40-harmonyos.sh new file mode 100755 index 00000000..4f0e282c --- /dev/null +++ b/coin/provisioning/qtci-macos-26-arm/40-harmonyos.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# Copyright (C) 2025 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/macos/harmonyos.sh +source "${BASH_SOURCE%/*}/../common/macos/harmonyos.sh" diff --git a/coin/provisioning/qtci-macos-26-arm/43-install-vcpkg-ports-ohos.sh b/coin/provisioning/qtci-macos-26-arm/43-install-vcpkg-ports-ohos.sh new file mode 100755 index 00000000..975d1872 --- /dev/null +++ b/coin/provisioning/qtci-macos-26-arm/43-install-vcpkg-ports-ohos.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Copyright (C) 2026 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +brew install autoconf autoconf-archive automake libtool + +# shellcheck source=../common/unix/install-vcpkg-ports-ohos.sh +source "${BASH_SOURCE%/*}/../common/unix/install-vcpkg-ports-ohos.sh" diff --git a/coin/provisioning/qtci-macos-26-arm/44-install-openssl-headers-ohos.sh b/coin/provisioning/qtci-macos-26-arm/44-install-openssl-headers-ohos.sh new file mode 100755 index 00000000..21a7f99f --- /dev/null +++ b/coin/provisioning/qtci-macos-26-arm/44-install-openssl-headers-ohos.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# Copyright (C) 2026 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/unix/install-openssl-headers-ohos.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl-headers-ohos.sh"