Skip to content

Commit 754494d

Browse files
committed
ci: add ohos
1 parent 448ca8e commit 754494d

File tree

4 files changed

+79
-6
lines changed

4 files changed

+79
-6
lines changed

.github/workflows/build.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,78 @@ jobs:
10021002
md5sum mdk-sdk-${TARGET_OS}.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}.7z.md5
10031003
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
10041004
1005+
ohos:
1006+
runs-on: ubuntu-latest
1007+
env:
1008+
TARGET_OS: ohos
1009+
LTO_SUFFIX: -lto
1010+
strategy:
1011+
fail-fast: false
1012+
matrix:
1013+
config: [MinSizeRel]
1014+
steps:
1015+
- uses: actions/checkout@v4
1016+
- name: Checkout source
1017+
uses: actions/checkout@v4
1018+
with:
1019+
repository: ${{ github.repository_owner }}/mdk
1020+
path: mdk
1021+
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
1022+
fetch-depth: 1
1023+
token: ${{ secrets.CLONE_PAT }}
1024+
submodules: 'recursive'
1025+
- name: Setup HarmonyOS CLI tools
1026+
uses: ErBWs/setup-ohos@v1
1027+
with:
1028+
version: latest
1029+
cache: true
1030+
- run: hvigorw -v
1031+
- name: 'Restore External Dep cache'
1032+
id: external-dep-cache
1033+
uses: actions/cache@v4
1034+
with:
1035+
path: ./mdk/external
1036+
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
1037+
- name: Create Build Environment
1038+
shell: bash
1039+
env:
1040+
# SYSROOT_CACHE_HIT: ${{ steps.sysroot-cache.outputs.cache-hit }}
1041+
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
1042+
working-directory: mdk
1043+
run: ../ci-before-build.sh
1044+
- name: Configure for arm64-v8a
1045+
env:
1046+
ARCH: arm64-v8a
1047+
shell: bash
1048+
working-directory: mdk
1049+
run: |
1050+
export OHOS_NDK=$OHOS_NDK_HOME/native
1051+
cmake -DUSE_LTO=1 -DOHOS_ARCH=${ARCH} -DCMAKE_TOOLCHAIN_FILE=$OHOS_NDK/build/cmake/ohos.toolchain.cmake -GNinja -H$PWD -B$PWD/build/${TARGET_OS}-${ARCH} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${ARCH} -DCMAKE_VERBOSE_MAKEFILE=1
1052+
- name: Build for arm64-v8a
1053+
shell: bash
1054+
working-directory: mdk
1055+
run: cmake --build build/${TARGET_OS}-arm64-v8a
1056+
- name: Make SDK
1057+
shell: bash
1058+
working-directory: mdk
1059+
run: |
1060+
export OHOS_NDK=$OHOS_NDK_HOME/native
1061+
../ci-after-build.sh
1062+
mv mdk-sdk-*.7z ..
1063+
- name: Archieve SDK
1064+
uses: actions/upload-artifact@v4
1065+
with:
1066+
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.config }}
1067+
path: mdk-sdk-${{ env.TARGET_OS }}.7z
1068+
- name: Upload to SourceForge
1069+
if: ${{ matrix.config == 'MinSizeRel' && env.SF_UPLOAD == 'true' }}
1070+
shell: bash
1071+
run: |
1072+
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.7z ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
1073+
md5sum mdk-sdk-${TARGET_OS}.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}.7z.md5
1074+
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
1075+
1076+
10051077
abi:
10061078
runs-on: ubuntu-latest
10071079
steps:

ci-after-build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ done
2424
find mdk-sdk* -name "*.a" -delete
2525

2626
echo stripping
27-
export PATH=$PATH:$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin
27+
export PATH=$PATH:$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin:$OHOS_NDK/llvm/bin
2828
: ${STRIP:=llvm-strip-$LLVM_VER}
2929
which $STRIP || STRIP=llvm-strip
3030
[ "$TARGET_OS" == "macOS" ] && STRIP=strip && STRIP_ARGS="-u -r"
3131
ls -lh mdk-sdk*/bin/*
3232
which $STRIP && find mdk-sdk*/bin -type f -exec $STRIP $STRIP_ARGS {} \;
3333
ls -lh mdk-sdk*/bin/*
3434
export XZ_OPT="-T0" # -9e. -8/9 will disable mt?
35-
if [[ "$TARGET_OS" == "win"* || "$TARGET_OS" == "uwp"* || "$TARGET_OS" == "android" ]]; then
35+
if [[ "$TARGET_OS" == "win"* || "$TARGET_OS" == "uwp"* || "$TARGET_OS" == "android" || "$TARGET_OS" == ohos ]]; then
3636
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}.7z mdk-sdk
3737
ls -lh mdk-sdk-${TARGET_OS}.7z
3838
else

ci-before-build.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ tolower(){
1313

1414
crt_extra=$(tolower ${CRT_EXTRA})
1515

16-
if [[ "$TARGET_OS" == mac* || "$TARGET_OS" == iOS* || "$TARGET_OS" == tvOS* || "$TARGET_OS" == xr* || "$TARGET_OS" == vision* || "$TARGET_OS" == android ]]; then
16+
if [[ "$TARGET_OS" == mac* || "$TARGET_OS" == iOS* || "$TARGET_OS" == tvOS* || "$TARGET_OS" == xr* || "$TARGET_OS" == vision* || "$TARGET_OS" == android || "$TARGET_OS" == ohos ]]; then
1717
FF_EXTRA=
1818
fi
1919
if [[ "$TARGET_OS" == "win"* || "$TARGET_OS" == "uwp"* ]]; then
@@ -23,7 +23,7 @@ fi
2323
if [ `which dpkg` ]; then # TODO: multi arch
2424
pkgs="sshpass cmake ninja-build p7zip-full"
2525
#wget https://apt.llvm.org/llvm.sh
26-
if [[ "$TARGET_OS" != android ]]; then
26+
if [[ "$TARGET_OS" != android && "$TARGET_OS" != ohos ]]; then
2727
#bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
2828
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
2929
source /etc/os-release
@@ -64,6 +64,7 @@ OS=${OS/*uwp*/WinRT}
6464
OS=${OS%%-*}
6565
#OS=${OS/Simulator/} #
6666
[ "$TARGET_OS" == "linux" ] && OS=Linux
67+
[ "$TARGET_OS" == "ohos" ] && OS=OHOS
6768
mkdir -p external/{bin,lib}/$OS
6869

6970
if [[ "$EXTERNAL_DEP_CACHE_HIT" != "true" ]]; then
@@ -108,7 +109,7 @@ fi
108109
curl -kL -o libmdk-dep.zip https://nightly.link/wang-bin/devpkgs/workflows/build/main/libmdk-dep.zip
109110
7z x libmdk-dep.zip
110111
7z x dep.7z
111-
cp -af dep/* external/
112+
cp -avf dep/* external/
112113

113114
if [[ "$SYSROOT_CACHE_HIT" != "true" ]]; then
114115
if [[ "$TARGET_OS" == "win"* || "$TARGET_OS" == "uwp"* ]]; then

mksdk.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ else
3939
cp -afvL $SDK_DIR/lib/libmdk*.dsym $TMP/
4040
cp -afvL $SDK_DIR/lib/lib{ass,ffmpeg,mdk}.so.? $TMP/
4141
cp -afvL $SDK_DIR/lib/libc++.so.1 $TMP/
42-
elif [ -f "$SDK_DIR/lib/libmdk.so" ]; then # android
42+
elif [ -f "$SDK_DIR/lib/libmdk.so" ]; then # android, ohos
4343
cp -afvL $SDK_DIR/lib/lib{ass,ffmpeg,mdk-*}.so $TMP/
4444
cp -afvL $SDK_DIR/lib/libmdk.so $TMP/
4545
cp -afvL $SDK_DIR/lib/libmdk.so.dsym $TMP/

0 commit comments

Comments
 (0)