6
- '.github/workflows/mac-catalyst.yml'
7
- 'toolchains/ios.toolchain.cmake'
14
- 'src/layer/vulkan/**'
18
- '.github/workflows/mac-catalyst.yml'
19
- 'toolchains/ios.toolchain.cmake'
26
- 'src/layer/vulkan/**'
28
group: mac-catalyst-${{ github.ref }}
29
cancel-in-progress: true
31
DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer
32
MAC_CATALYST_DEPLOYMENT_TARGET: '13.1'
35
ENABLE_VISIBILITY: OFF
43
OPENMP_VERSION: '18.1.2'
44
OPENMP_CMAKE_OPTIONS: |
45
-DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
46
-DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET \
47
-DENABLE_BITCODE=$ENABLE_BITCODE \
48
-DENABLE_ARC=$ENABLE_ARC \
49
-DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
50
-DCMAKE_INSTALL_PREFIX=install \
51
-DCMAKE_BUILD_TYPE=Release \
52
-DPERL_EXECUTABLE=/usr/local/bin/perl \
53
-DLIBOMP_ENABLE_SHARED=OFF \
54
-DLIBOMP_OMPT_SUPPORT=OFF \
55
-DLIBOMP_USE_HWLOC=OFF \
57
MOLTENVK_VERSION: 'v1.2.8'
59
-DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake \
60
-DDEPLOYMENT_TARGET=$MAC_CATALYST_DEPLOYMENT_TARGET \
61
-DENABLE_BITCODE=$ENABLE_BITCODE \
62
-DENABLE_ARC=$ENABLE_ARC \
63
-DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
64
-DCMAKE_INSTALL_PREFIX=install \
65
-DCMAKE_BUILD_TYPE=Release \
66
-DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
67
-DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
68
-DOpenMP_libomp_LIBRARY="libomp.a" \
72
- uses: actions/checkout@v4
78
uses: actions/cache@v4
81
key: openmp-mac-catalyst-install-20240403
83
if: steps.cache-openmp.outputs.cache-hit != 'true'
85
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.OPENMP_VERSION }}/cmake-${{ env.OPENMP_VERSION }}.src.tar.xz
86
tar -xf cmake-${{ env.OPENMP_VERSION }}.src.tar.xz
87
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.OPENMP_VERSION }}/openmp-${{ env.OPENMP_VERSION }}.src.tar.xz
88
tar -xf openmp-${{ env.OPENMP_VERSION }}.src.tar.xz
89
mv cmake-${{ env.OPENMP_VERSION }}.src/Modules/* openmp-${{ env.OPENMP_VERSION }}.src/cmake/
90
cd openmp-${{ env.OPENMP_VERSION }}.src
91
wget https://github.com/nihui/llvm-project/commit/ef8c35bcf5d9cfdb0764ffde6a63c04ec715bc37.patch
92
patch -p2 -i ef8c35bcf5d9cfdb0764ffde6a63c04ec715bc37.patch
93
wget https://github.com/nihui/llvm-project/commit/5c12711f9a21f41bea70566bf15a4026804d6b20.patch
94
patch -p2 -i 5c12711f9a21f41bea70566bf15a4026804d6b20.patch
96
if: steps.cache-openmp.outputs.cache-hit != 'true'
98
cd openmp-${{ env.OPENMP_VERSION }}.src
99
mkdir -p build-x86_64 && cd build-x86_64
100
cmake ${{ env.OPENMP_CMAKE_OPTIONS }} -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" ..
102
cmake --build . --target install
104
if: steps.cache-openmp.outputs.cache-hit != 'true'
106
cd openmp-${{ env.OPENMP_VERSION }}.src
107
mkdir -p build-arm64 && cd build-arm64
108
cmake ${{ env.OPENMP_CMAKE_OPTIONS }} -DPLATFORM=MAC_CATALYST_ARM64 -DARCHS="arm64" ..
110
cmake --build . --target install
111
- name: openmp-merge-fat-library
112
if: steps.cache-openmp.outputs.cache-hit != 'true'
114
mkdir -p $GITHUB_WORKSPACE/openmp-install
115
mkdir -p $GITHUB_WORKSPACE/openmp-install/mac-catalyst
117
cp -a openmp-${{ env.OPENMP_VERSION }}.src/build-x86_64/install/include $GITHUB_WORKSPACE/openmp-install/mac-catalyst
118
mkdir -p $GITHUB_WORKSPACE/openmp-install/mac-catalyst/lib
120
openmp-${{ env.OPENMP_VERSION }}.src/build-x86_64/install/lib/libomp.a \
121
openmp-${{ env.OPENMP_VERSION }}.src/build-arm64/install/lib/libomp.a \
122
-o $GITHUB_WORKSPACE/openmp-install/mac-catalyst/lib/libomp.a
124
- name: install-openmp
126
sudo cp $GITHUB_WORKSPACE/openmp-install/mac-catalyst/include/* $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
127
sudo cp $GITHUB_WORKSPACE/openmp-install/mac-catalyst/lib/libomp.a $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
131
wget -q https://github.com/KhronosGroup/MoltenVK/releases/download/${{ env.MOLTENVK_VERSION }}/MoltenVK-all.tar
132
tar -xf MoltenVK-all.tar
136
mkdir build-x86_64 && cd build-x86_64
137
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=MAC_CATALYST -DARCHS="x86_64" \
138
-DVulkan_LIBRARY=$GITHUB_WORKSPACE/MoltenVK/MoltenVK/static/MoltenVK.xcframework/ios-arm64_x86_64-maccatalyst/libMoltenVK.a ..
142
mkdir build-arm64 && cd build-arm64
143
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=MAC_CATALYST_ARM64 -DARCHS="arm64" \
144
-DVulkan_LIBRARY=$GITHUB_WORKSPACE/MoltenVK/MoltenVK/static/MoltenVK.xcframework/ios-arm64_x86_64-maccatalyst/libMoltenVK.a ..