Skip to content

Commit

Permalink
tvos
Browse files Browse the repository at this point in the history
  • Loading branch information
wang-bin committed Jan 1, 2024
1 parent 96d3ead commit 08ffb6c
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 9 deletions.
31 changes: 24 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -553,6 +569,7 @@ jobs:


Win64_SRC:
if: false
runs-on: windows-latest
env:
TARGET_OS: windows-desktop
Expand Down
7 changes: 5 additions & 2 deletions ci-before-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand All @@ -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
Expand Down

0 comments on commit 08ffb6c

Please sign in to comment.