6
- '.github/workflows/visionos.yml'
7
- 'toolchains/ios.toolchain.cmake'
17
- '.github/workflows/visionos.yml'
18
- 'toolchains/ios.toolchain.cmake'
26
group: visionos-${{ github.ref }}
27
cancel-in-progress: true
29
DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer
30
VISIONOS_DEPLOYMENT_TARGET: '1.0'
33
ENABLE_VISIBILITY: OFF
41
OPENMP_VERSION: '18.1.2'
42
OPENMP_CMAKE_OPTIONS: |
43
-DCMAKE_TOOLCHAIN_FILE=../../toolchains/ios.toolchain.cmake \
44
-DDEPLOYMENT_TARGET=$VISIONOS_DEPLOYMENT_TARGET \
45
-DENABLE_BITCODE=$ENABLE_BITCODE \
46
-DENABLE_ARC=$ENABLE_ARC \
47
-DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
48
-DCMAKE_INSTALL_PREFIX=install \
49
-DCMAKE_BUILD_TYPE=Release \
50
-DPERL_EXECUTABLE=/usr/local/bin/perl \
51
-DLIBOMP_ENABLE_SHARED=OFF \
52
-DLIBOMP_OMPT_SUPPORT=OFF \
53
-DLIBOMP_USE_HWLOC=OFF \
56
-DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake \
57
-DDEPLOYMENT_TARGET=$VISIONOS_DEPLOYMENT_TARGET \
58
-DENABLE_BITCODE=$ENABLE_BITCODE \
59
-DENABLE_ARC=$ENABLE_ARC \
60
-DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
61
-DCMAKE_INSTALL_PREFIX=install \
62
-DCMAKE_BUILD_TYPE=Release \
63
-DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
64
-DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
65
-DOpenMP_libomp_LIBRARY="libomp.a" \
68
- uses: actions/checkout@v4
72
uses: actions/cache@v4
75
key: openmp-visionos-install-20240402
77
if: steps.cache-openmp.outputs.cache-hit != 'true'
79
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.OPENMP_VERSION }}/cmake-${{ env.OPENMP_VERSION }}.src.tar.xz
80
tar -xf cmake-${{ env.OPENMP_VERSION }}.src.tar.xz
81
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.OPENMP_VERSION }}/openmp-${{ env.OPENMP_VERSION }}.src.tar.xz
82
tar -xf openmp-${{ env.OPENMP_VERSION }}.src.tar.xz
83
mv cmake-${{ env.OPENMP_VERSION }}.src/Modules/* openmp-${{ env.OPENMP_VERSION }}.src/cmake/
84
cd openmp-${{ env.OPENMP_VERSION }}.src
85
wget https://github.com/nihui/llvm-project/commit/ef8c35bcf5d9cfdb0764ffde6a63c04ec715bc37.patch
86
patch -p2 -i ef8c35bcf5d9cfdb0764ffde6a63c04ec715bc37.patch
87
wget https://github.com/nihui/llvm-project/commit/5c12711f9a21f41bea70566bf15a4026804d6b20.patch
88
patch -p2 -i 5c12711f9a21f41bea70566bf15a4026804d6b20.patch
90
if: steps.cache-openmp.outputs.cache-hit != 'true'
92
cd openmp-${{ env.OPENMP_VERSION }}.src
93
mkdir -p build-arm64 && cd build-arm64
94
cmake ${{ env.OPENMP_CMAKE_OPTIONS }} -DPLATFORM=VISIONOS -DARCHS="arm64" ..
96
cmake --build . --target install
97
- name: openmp-simulator-x86_64
98
if: steps.cache-openmp.outputs.cache-hit != 'true'
100
cd openmp-${{ env.OPENMP_VERSION }}.src
101
mkdir -p build-simulator-x86_64 && cd build-simulator-x86_64
102
cmake ${{ env.OPENMP_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="x86_64" ..
104
cmake --build . --target install
105
- name: openmp-simulator-arm64
106
if: steps.cache-openmp.outputs.cache-hit != 'true'
108
cd openmp-${{ env.OPENMP_VERSION }}.src
109
mkdir -p build-simulator-arm64 && cd build-simulator-arm64
110
cmake ${{ env.OPENMP_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="arm64" ..
112
cmake --build . --target install
113
- name: openmp-merge-fat-library
114
if: steps.cache-openmp.outputs.cache-hit != 'true'
116
mkdir -p $GITHUB_WORKSPACE/openmp-install
117
mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos
118
mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos-simulator
120
cp -a openmp-${{ env.OPENMP_VERSION }}.src/build-arm64/install/include $GITHUB_WORKSPACE/openmp-install/visionos
121
mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos/lib
122
cp openmp-${{ env.OPENMP_VERSION }}.src/build-arm64/install/lib/libomp.a $GITHUB_WORKSPACE/openmp-install/visionos/lib/libomp.a
124
cp -a openmp-${{ env.OPENMP_VERSION }}.src/build-simulator-x86_64/install/include $GITHUB_WORKSPACE/openmp-install/visionos-simulator
125
mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos-simulator/lib
127
openmp-${{ env.OPENMP_VERSION }}.src/build-simulator-x86_64/install/lib/libomp.a \
128
openmp-${{ env.OPENMP_VERSION }}.src/build-simulator-arm64/install/lib/libomp.a \
129
-o $GITHUB_WORKSPACE/openmp-install/visionos-simulator/lib/libomp.a
131
- name: install-openmp
133
sudo cp $GITHUB_WORKSPACE/openmp-install/visionos/include/* $DEVELOPER_DIR/Platforms/XROS.platform/Developer/SDKs/XROS.sdk/usr/include
134
sudo cp $GITHUB_WORKSPACE/openmp-install/visionos/lib/libomp.a $DEVELOPER_DIR/Platforms/XROS.platform/Developer/SDKs/XROS.sdk/usr/lib
136
sudo cp $GITHUB_WORKSPACE/openmp-install/visionos-simulator/include/* $DEVELOPER_DIR/Platforms/XRSimulator.platform/Developer/SDKs/XRSimulator.sdk/usr/include
137
sudo cp $GITHUB_WORKSPACE/openmp-install/visionos-simulator/lib/libomp.a $DEVELOPER_DIR/Platforms/XRSimulator.platform/Developer/SDKs/XRSimulator.sdk/usr/lib
141
mkdir build-arm64 && cd build-arm64
142
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=VISIONOS -DARCHS="arm64" ..
144
- name: simulator-x86_64
146
mkdir build-simulator-x86_64 && cd build-simulator-x86_64
147
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="x86_64" ..
149
- name: simulator-arm64
151
mkdir build-simulator-arm64 && cd build-simulator-arm64
152
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="arm64" ..