Skip to content

Commit

Permalink
q
Browse files Browse the repository at this point in the history
  • Loading branch information
nihui committed Aug 13, 2024
1 parent e835c8d commit 53dce61
Showing 1 changed file with 39 additions and 41 deletions.
80 changes: 39 additions & 41 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,14 @@ jobs:

macos:
needs: [setup, openmp-macos]
strategy:
matrix:
opt:
- { vulkan: OFF, id: macos }
- { vulkan: ON, id: macos-vulkan }
runs-on: macos-13
env:
PACKAGENAME: ncnn-${{ needs.setup.outputs.VERSION }}-macos
PACKAGENAME: ncnn-${{ needs.setup.outputs.VERSION }}-${{ matrix.opt.id }}
NCNN_CMAKE_OPTIONS: |
-DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake \
-DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET \
Expand All @@ -186,6 +191,7 @@ jobs:
-DNCNN_BUILD_TOOLS=OFF \
-DNCNN_BUILD_EXAMPLES=OFF \
-DNCNN_BUILD_BENCHMARK=OFF \
-DNCNN_VULKAN=${{ matrix.opt.vulkan }} \
steps:
- uses: actions/checkout@v4
Expand All @@ -212,18 +218,6 @@ jobs:
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" ..
cmake --build . -j 4
cmake --build . --target install/strip
- name: build-x86_64-vulkan
run: |
mkdir build-x86_64-vulkan && cd build-x86_64-vulkan
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=MAC -DARCHS="x86_64" -DNCNN_VULKAN=ON ..
cmake --build . -j 4
cmake --build . --target install/strip
- name: build-arm64-vulkan
run: |
mkdir build-arm64-vulkan && cd build-arm64-vulkan
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=MAC_ARM64 -DARCHS="arm64" -DNCNN_VULKAN=ON ..
cmake --build . -j 4
cmake --build . --target install/strip
- name: package-openmp
run: |
rm -rf openmp.framework
Expand All @@ -236,21 +230,8 @@ jobs:
cp openmp-macos/lib/libomp.a openmp.framework/Versions/A/openmp
cp -a openmp-macos/include/* openmp.framework/Versions/A/Headers/
sed -e 's/__NAME__/openmp/g' -e 's/__IDENTIFIER__/org.llvm.openmp/g' -e 's/__VERSION__/18.1/g' Info.plist > openmp.framework/Versions/A/Resources/Info.plist
- name: package
run: |
rm -rf ncnn.framework
mkdir -p ncnn.framework/Versions/A/Headers
mkdir -p ncnn.framework/Versions/A/Resources
ln -s A ncnn.framework/Versions/Current
ln -s Versions/Current/Headers ncnn.framework/Headers
ln -s Versions/Current/Resources ncnn.framework/Resources
ln -s Versions/Current/ncnn ncnn.framework/ncnn
lipo -create build-x86_64/install/lib/libncnn.a build-arm64/install/lib/libncnn.a -o ncnn.framework/Versions/A/ncnn
cp -a build-x86_64/install/include/* ncnn.framework/Versions/A/Headers/
sed -e 's/__NAME__/ncnn/g' -e 's/__IDENTIFIER__/com.tencent.ncnn/g' -e 's/__VERSION__/1.0/g' Info.plist > ncnn.framework/Versions/A/Resources/Info.plist
rm -f ${{ env.PACKAGENAME }}.zip
zip -9 -y -r ${{ env.PACKAGENAME }}.zip openmp.framework ncnn.framework
- name: package-glslang
if: matrix.opt.vulkan == 'ON'
run: |
rm -rf glslang.framework
mkdir -p glslang.framework/Versions/A/Headers
Expand All @@ -259,12 +240,26 @@ jobs:
ln -s Versions/Current/Headers glslang.framework/Headers
ln -s Versions/Current/Resources glslang.framework/Resources
ln -s Versions/Current/glslang glslang.framework/glslang
libtool -static build-x86_64-vulkan/install/lib/libglslang.a build-x86_64-vulkan/install/lib/libMachineIndependent.a build-x86_64-vulkan/install/lib/libGenericCodeGen.a build-x86_64-vulkan/install/lib/libSPIRV.a build-x86_64-vulkan/install/lib/libOGLCompiler.a build-x86_64-vulkan/install/lib/libOSDependent.a -o build-x86_64-vulkan/install/lib/libglslang_combined.a
libtool -static build-arm64-vulkan/install/lib/libglslang.a build-arm64-vulkan/install/lib/libMachineIndependent.a build-arm64-vulkan/install/lib/libGenericCodeGen.a build-arm64-vulkan/install/lib/libSPIRV.a build-arm64-vulkan/install/lib/libOGLCompiler.a build-arm64-vulkan/install/lib/libOSDependent.a -o build-arm64-vulkan/install/lib/libglslang_combined.a
lipo -create build-x86_64-vulkan/install/lib/libglslang_combined.a build-arm64-vulkan/install/lib/libglslang_combined.a -o glslang.framework/Versions/A/glslang
cp -a build-x86_64-vulkan/install/include/glslang glslang.framework/Versions/A/Headers/
libtool -static \
build-x86_64/install/lib/libglslang.a \
build-x86_64/install/lib/libMachineIndependent.a \
build-x86_64/install/lib/libGenericCodeGen.a \
build-x86_64/install/lib/libSPIRV.a \
build-x86_64/install/lib/libOGLCompiler.a \
build-x86_64/install/lib/libOSDependent.a \
-o build-x86_64/install/lib/libglslang_combined.a
libtool -static \
build-arm64/install/lib/libglslang.a \
build-arm64/install/lib/libMachineIndependent.a \
build-arm64/install/lib/libGenericCodeGen.a \
build-arm64/install/lib/libSPIRV.a \
build-arm64/install/lib/libOGLCompiler.a \
build-arm64/install/lib/libOSDependent.a \
-o build-arm64/install/lib/libglslang_combined.a
lipo -create build-x86_64/install/lib/libglslang_combined.a build-arm64/install/lib/libglslang_combined.a -o glslang.framework/Versions/A/glslang
cp -a build-x86_64/install/include/glslang glslang.framework/Versions/A/Headers/
sed -e 's/__NAME__/glslang/g' -e 's/__IDENTIFIER__/org.khronos.glslang/g' -e 's/__VERSION__/1.0/g' Info.plist > glslang.framework/Versions/A/Resources/Info.plist
- name: package-vulkan
- name: package-ncnn
run: |
rm -rf ncnn.framework
mkdir -p ncnn.framework/Versions/A/Headers
Expand All @@ -273,21 +268,24 @@ jobs:
ln -s Versions/Current/Headers ncnn.framework/Headers
ln -s Versions/Current/Resources ncnn.framework/Resources
ln -s Versions/Current/ncnn ncnn.framework/ncnn
lipo -create build-x86_64-vulkan/install/lib/libncnn.a build-arm64-vulkan/install/lib/libncnn.a -o ncnn.framework/Versions/A/ncnn
cp -a build-x86_64-vulkan/install/include/* ncnn.framework/Versions/A/Headers/
lipo -create build-x86_64/install/lib/libncnn.a build-arm64/install/lib/libncnn.a -o ncnn.framework/Versions/A/ncnn
cp -a build-x86_64/install/include/* ncnn.framework/Versions/A/Headers/
sed -e 's/__NAME__/ncnn/g' -e 's/__IDENTIFIER__/com.tencent.ncnn/g' -e 's/__VERSION__/1.0/g' Info.plist > ncnn.framework/Versions/A/Resources/Info.plist
rm -f ${{ env.PACKAGENAME }}-vulkan.zip
zip -9 -y -r ${{ env.PACKAGENAME }}-vulkan.zip openmp.framework glslang.framework ncnn.framework
- name: package
if: matrix.opt.vulkan == 'OFF'
run: |
rm -f ${{ env.PACKAGENAME }}.zip
zip -9 -y -r ${{ env.PACKAGENAME }}.zip openmp.framework ncnn.framework
- name: package
if: matrix.opt.vulkan == 'ON'
run: |
rm -f ${{ env.PACKAGENAME }}.zip
zip -9 -y -r ${{ env.PACKAGENAME }}.zip openmp.framework glslang.framework ncnn.framework
- name: upload-zip
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGENAME }}
path: ${{ env.PACKAGENAME }}.zip
- name: upload-zip-vulkan
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGENAME }}-vulkan
path: ${{ env.PACKAGENAME }}-vulkan.zip

openmp-ios:
runs-on: macos-13
Expand Down

0 comments on commit 53dce61

Please sign in to comment.