From 08ffb6c42eb53562e608adee77781e78f0467d7c Mon Sep 17 00:00:00 2001 From: wang-bin <wbsecg1@gmail.com> Date: Mon, 1 Jan 2024 21:59:29 +0800 Subject: [PATCH] tvos --- .github/workflows/build.yml | 31 ++++++++++++++++++++++++------- ci-before-build.sh | 7 +++++-- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b31d7da..b9e5e54 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,7 +78,7 @@ jobs: - name: Build shell: bash working-directory: mdk - run: cmake --build build/${TARGET_OS} + run: cmake --build build/${TARGET_OS} --parallel - name: Make SDK shell: bash working-directory: mdk @@ -167,11 +167,12 @@ jobs: iOS: runs-on: macos-13 env: - TARGET_OS: iOS + TARGET_OS: ${{ matrix.os }} LTO_SUFFIX: -lto strategy: fail-fast: false matrix: + os: [iOS, tvOS] config: [MinSizeRel] steps: - uses: actions/checkout@v4 @@ -205,7 +206,7 @@ jobs: - name: Configure CMake shell: bash working-directory: mdk - run: cmake -GNinja -DMIN_SIZE=1 -DUSE_LTO=1 -DWITH_DEB_INFO=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/tools/ios.cmake -DIOS_DEPLOYMENT_TARGET=8.0 -DIOS_ARCH="arm64" -DIOS_BITCODE=0 -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1 -DFFMPEG_EMBED=1 # FFMPEG_EMBED=0 to copy libffmpeg.5.dylib + run: cmake -GNinja -DMIN_SIZE=1 -DUSE_LTO=1 -DWITH_DEB_INFO=1 -DCMAKE_SYSTEM_NAME=${{ matrix.os }} -DIOS_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_IOS_INSTALL_COMBINED=YES -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1 -DFFMPEG_EMBED=1 # FFMPEG_EMBED=0 to copy libffmpeg.5.dylib - name: Build shell: bash working-directory: mdk @@ -238,11 +239,12 @@ jobs: iOSSimulator: runs-on: macos-13 env: - TARGET_OS: iOSSimulator + TARGET_OS: ${{ matrix.os }}Simulator LTO_SUFFIX: -lto strategy: fail-fast: false matrix: + os: [iOS, tvOS] config: [MinSizeRel] steps: - uses: actions/checkout@v4 @@ -276,7 +278,11 @@ jobs: - name: Configure CMake shell: bash working-directory: mdk - run: cmake -GNinja -DMIN_SIZE=1 -DUSE_LTO=1 -DWITH_DEB_INFO=1 -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO -DCMAKE_IOS_INSTALL_COMBINED=YES -DCMAKE_OSX_SYSROOT=iphonesimulator -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1 -DFFMPEG_EMBED=1 # FFMPEG_EMBED=0 to copy libffmpeg.5.dylib + run: | + sdk=$TARGET_OS + sdk=${sdk/iOSS/iphones} + sdk=${sdk/tvOSS/appletvs} + cmake -GNinja -DMIN_SIZE=1 -DUSE_LTO=1 -DWITH_DEB_INFO=1 -DCMAKE_SYSTEM_NAME=${{ matrix.os }} -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO -DCMAKE_IOS_INSTALL_COMBINED=YES -DCMAKE_OSX_SYSROOT=${sdk} -Bbuild/${TARGET_OS} -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk -DCMAKE_VERBOSE_MAKEFILE=1 -DFFMPEG_EMBED=1 # FFMPEG_EMBED=0 to copy libffmpeg.5.dylib - name: Build shell: bash working-directory: mdk @@ -324,6 +330,14 @@ jobs: uses: actions/download-artifact@v3 with: name: mdk-sdk-iOSSimulator-MinSizeRel + - name: Download tvOS sdk + uses: actions/download-artifact@v3 + with: + name: mdk-sdk-tvOS-MinSizeRel + - name: Download tvOSSimulator sdk + uses: actions/download-artifact@v3 + with: + name: mdk-sdk-tvOSSimulator-MinSizeRel - name: Download macCatalyst sdk uses: actions/download-artifact@v3 with: @@ -335,11 +349,13 @@ jobs: shell: bash run: | export XZ_OPT="-9e -T0" - mkdir -p macOS iOS iOSSimulator macCatalyst mdk-sdk/{Frameworks,include,lib} macOS-arm64 macOS-x86_64 + mkdir -p macOS iOS iOSSimulator tvOS tvOSSimulator macCatalyst mdk-sdk/{Frameworks,include,lib} macOS-arm64 macOS-x86_64 tar Jxf mdk-sdk-macOS-x86_64.tar.xz -C macOS-x86_64 tar Jxf mdk-sdk-macOS-arm64.tar.xz -C macOS-arm64 tar Jxf mdk-sdk-iOS.tar.xz -C iOS tar Jxf mdk-sdk-iOSSimulator.tar.xz -C iOSSimulator + tar Jxf mdk-sdk-tvOS.tar.xz -C tvOS + tar Jxf mdk-sdk-tvOSSimulator.tar.xz -C tvOSSimulator tar Jxf mdk-sdk-macCatalyst.tar.xz -C macCatalyst find . cp -af macOS-x86_64/mdk-sdk macOS/ # libffmpeg is already fat @@ -365,7 +381,7 @@ jobs: cp -af macOS/mdk-sdk/lib/cmake mdk-sdk/lib/ cp -af iOS/mdk-sdk/README.md mdk-sdk/README-iOS.md # https://developer.apple.com/forums/thread/655768 (error: the path does not point to a valid debug symbols file: macOS/mdk-sdk/lib/mdk.framework.dSYM) - xcodebuild -create-xcframework -framework macOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/macOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/iOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOSSimulator/mdk-sdk/lib/mdk.framework -framework macCatalyst/mdk-sdk/lib/mdk.framework -output mdk-sdk/lib/mdk.xcframework + xcodebuild -create-xcframework -framework macOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/macOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/iOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOSSimulator/mdk-sdk/lib/mdk.framework -framework tvOS/mdk-sdk/lib/mdk.framework -framework tvOSSimulator/mdk-sdk/lib/mdk.framework -framework macCatalyst/mdk-sdk/lib/mdk.framework -output mdk-sdk/lib/mdk.xcframework mdkfw=`find mdk-sdk/lib/mdk.xcframework -name "macos-*" -depth 1` # ensure bin/* can Find mdk and ffmpeg ln -sf ${mdkfw/mdk-sdk/..}/mdk.framework mdk-sdk/Frameworks @@ -553,6 +569,7 @@ jobs: Win64_SRC: + if: false runs-on: windows-latest env: TARGET_OS: windows-desktop diff --git a/ci-before-build.sh b/ci-before-build.sh index cee69ac..8163af4 100755 --- a/ci-before-build.sh +++ b/ci-before-build.sh @@ -13,7 +13,7 @@ tolower(){ crt_extra=$(tolower ${CRT_EXTRA}) -if [[ "$TARGET_OS" == mac* || "$TARGET_OS" == iOS* || "$TARGET_OS" == android ]]; then +if [[ "$TARGET_OS" == mac* || "$TARGET_OS" == iOS* || "$TARGET_OS" == tvOS* || "$TARGET_OS" == android ]]; then FF_EXTRA= fi if [[ "$TARGET_OS" == "win"* || "$TARGET_OS" == "uwp"* ]]; then @@ -56,7 +56,7 @@ OS=${TARGET_OS/r*pi/rpi} OS=${OS/*store/WinRT} OS=${OS/*uwp*/WinRT} OS=${OS%%-*} -OS=${OS/Simulator/} +#OS=${OS/Simulator/} # [ "$TARGET_OS" == "linux" ] && OS=Linux mkdir -p external/{bin,lib}/$OS @@ -74,6 +74,9 @@ if [[ "$EXTERNAL_DEP_CACHE_HIT" != "true" ]]; then cp -af ${FFPKG}/include external/ cp -af ${FFPKG}/bin/* external/bin/$OS # ffmpeg dll + echo "OS: $OS" + find external + if [ "$TARGET_OS" == "sunxi" ]; then mkdir -p external/lib/sunxi/armv7 cp -af ${FFPKG}/lib/* external/lib/sunxi/armv7 #single arch package