ncnn

Форк
0
/
visionos.yml 
153 строки · 6.5 Кб
1
name: visionos
2
on:
3
  push:
4
    branches: [master]
5
    paths:
6
    - '.github/workflows/visionos.yml'
7
    - 'toolchains/ios.toolchain.cmake'
8
    - 'CMakeLists.txt'
9
    - 'cmake/**'
10
    - 'src/*'
11
    - 'src/layer/*'
12
    - 'src/layer/arm/**'
13
    - 'src/layer/x86/**'
14
  pull_request:
15
    branches: [master]
16
    paths:
17
    - '.github/workflows/visionos.yml'
18
    - 'toolchains/ios.toolchain.cmake'
19
    - 'CMakeLists.txt'
20
    - 'cmake/**'
21
    - 'src/*'
22
    - 'src/layer/*'
23
    - 'src/layer/arm/**'
24
    - 'src/layer/x86/**'
25
concurrency:
26
  group: visionos-${{ github.ref }}
27
  cancel-in-progress: true
28
env:
29
  DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer
30
  VISIONOS_DEPLOYMENT_TARGET: '1.0'
31
  ENABLE_BITCODE: OFF
32
  ENABLE_ARC: OFF
33
  ENABLE_VISIBILITY: OFF
34
permissions:
35
  contents: read
36

37
jobs:
38
  build:
39
    runs-on: macos-13
40
    env:
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 \
54

55
      NCNN_CMAKE_OPTIONS: |
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" \
66

67
    steps:
68
    - uses: actions/checkout@v4
69

70
    - name: cache-openmp
71
      id: cache-openmp
72
      uses: actions/cache@v4
73
      with:
74
        path: openmp-install
75
        key: openmp-visionos-install-20240402
76
    - name: openmp
77
      if: steps.cache-openmp.outputs.cache-hit != 'true'
78
      run: |
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
89
    - name: openmp-arm64
90
      if: steps.cache-openmp.outputs.cache-hit != 'true'
91
      run: |
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" ..
95
        cmake --build . -j 4
96
        cmake --build . --target install
97
    - name: openmp-simulator-x86_64
98
      if: steps.cache-openmp.outputs.cache-hit != 'true'
99
      run: |
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" ..
103
        cmake --build . -j 4
104
        cmake --build . --target install
105
    - name: openmp-simulator-arm64
106
      if: steps.cache-openmp.outputs.cache-hit != 'true'
107
      run: |
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" ..
111
        cmake --build . -j 4
112
        cmake --build . --target install
113
    - name: openmp-merge-fat-library
114
      if: steps.cache-openmp.outputs.cache-hit != 'true'
115
      run: |
116
        mkdir -p $GITHUB_WORKSPACE/openmp-install
117
        mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos
118
        mkdir -p $GITHUB_WORKSPACE/openmp-install/visionos-simulator
119

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
123

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
126
        lipo -create \
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
130

131
    - name: install-openmp
132
      run: |
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
135

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
138

139
    - name: arm64
140
      run: |
141
        mkdir build-arm64 && cd build-arm64
142
        cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=VISIONOS -DARCHS="arm64" ..
143
        cmake --build . -j 4
144
    - name: simulator-x86_64
145
      run: |
146
        mkdir build-simulator-x86_64 && cd build-simulator-x86_64
147
        cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="x86_64" ..
148
        cmake --build . -j 4
149
    - name: simulator-arm64
150
      run: |
151
        mkdir build-simulator-arm64 && cd build-simulator-arm64
152
        cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DPLATFORM=SIMULATOR_VISIONOS -DARCHS="arm64" ..
153
        cmake --build . -j 4
154

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.