From 8238bfea5bcca8856613a507fe0e56aeec2b408d Mon Sep 17 00:00:00 2001 From: TNTwise <77559100+TNTwise@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:21:17 -0600 Subject: [PATCH] Update release.yml --- .github/workflows/release.yml | 125 +++++++++++++++++++++++++++++++++- 1 file changed, 124 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 76fc571..527451e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,6 +59,129 @@ jobs: zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }} + openmp-macos: + runs-on: macos-latest + steps: + - name: cache-openmp + id: cache-openmp + uses: actions/cache@v1 + with: + path: openmp-install + key: openmp-macos-release-11.0.0 + - name: checkout + if: steps.cache-openmp.outputs.cache-hit != 'true' + uses: actions/checkout@v2 + - name: openmp + if: steps.cache-openmp.outputs.cache-hit != 'true' + run: | + wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/openmp-11.0.0.src.tar.xz + tar -xf openmp-11.0.0.src.tar.xz + cd openmp-11.0.0.src + sed -i'' -e '/.size __kmp_unnamed_critical_addr/d' runtime/src/z_Linux_asm.S + sed -i'' -e 's/__kmp_unnamed_critical_addr/___kmp_unnamed_critical_addr/g' runtime/src/z_Linux_asm.S + - name: build-x86_64 + if: steps.cache-openmp.outputs.cache-hit != 'true' + run: | + cd openmp-11.0.0.src + mkdir build-x86_64 && cd build-x86_64 + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DCMAKE_OSX_ARCHITECTURES="x86_64" \ + -DLIBOMP_ENABLE_SHARED=OFF -DLIBOMP_OMPT_SUPPORT=OFF -DLIBOMP_USE_HWLOC=OFF .. + cmake --build . -j 3 + cmake --build . --target install + - name: build-arm64 + if: steps.cache-openmp.outputs.cache-hit != 'true' + run: | + cd openmp-11.0.0.src + mkdir build-arm64 && cd build-arm64 + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DCMAKE_OSX_ARCHITECTURES="arm64" \ + -DLIBOMP_ENABLE_SHARED=OFF -DLIBOMP_OMPT_SUPPORT=OFF -DLIBOMP_USE_HWLOC=OFF .. + cmake --build . -j 3 + cmake --build . --target install + - name: merge-fat-library + if: steps.cache-openmp.outputs.cache-hit != 'true' + run: | + rm -rf $GITHUB_WORKSPACE/openmp-install + mkdir -p $GITHUB_WORKSPACE/openmp-install + cp -r openmp-11.0.0.src/build-x86_64/install/include $GITHUB_WORKSPACE/openmp-install + mkdir -p $GITHUB_WORKSPACE/openmp-install/lib + lipo -create openmp-11.0.0.src/build-x86_64/install/lib/libomp.a openmp-11.0.0.src/build-arm64/install/lib/libomp.a -o $GITHUB_WORKSPACE/openmp-install/lib/libomp.a + - name: upload + uses: actions/upload-artifact@v2 + with: + name: openmp-macos + path: openmp-install + + macos: + needs: [setup, openmp-macos] + runs-on: macos-latest + env: + PACKAGENAME: ${{ needs.setup.outputs.APPNAME }}-${{ needs.setup.outputs.VERSION }}-macos + steps: + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + - name: download-openmp-macos + uses: actions/download-artifact@v2 + with: + name: openmp-macos + path: openmp-macos + - name: install-openmp + run: | + sudo cp openmp-macos/include/* $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include + sudo cp openmp-macos/lib/libomp.a $DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib + - name: cache-vulkansdk + id: cache-vulkansdk + uses: actions/cache@v1 + with: + path: "vulkansdk-macos-1.2.162.0" + key: vulkansdk-macos-1.2.162.0 + - name: vulkansdk + if: steps.cache-vulkansdk.outputs.cache-hit != 'true' + run: | + wget https://sdk.lunarg.com/sdk/download/1.2.162.0/mac/vulkansdk-macos-1.2.162.0.dmg?Human=true -O vulkansdk-macos-1.2.162.0.dmg + hdiutil attach vulkansdk-macos-1.2.162.0.dmg + cp -r /Volumes/vulkansdk-macos-1.2.162.0 . + rm -rf vulkansdk-macos-1.2.162.0/Applications + find vulkansdk-macos-1.2.162.0 -type f | grep -v -E 'vulkan|glslang|MoltenVK' | xargs rm + hdiutil detach /Volumes/vulkansdk-macos-1.2.162.0 + - name: build-x86_64 + run: | + export VULKAN_SDK=`pwd`/vulkansdk-macos-1.2.162.0/macOS + mkdir build-x86_64 && cd build-x86_64 + cmake -DUSE_STATIC_MOLTENVK=ON -DCMAKE_OSX_ARCHITECTURES="x86_64" \ + -DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \ + -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \ + -DOpenMP_libomp_LIBRARY="$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libomp.a" \ + -DVulkan_INCLUDE_DIR=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/include \ + -DVulkan_LIBRARY=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/MoltenVK.xcframework/macos-arm64_x86_64/libMoltenVK.a \ + ../src + cmake --build . -j 3 + - name: build-arm64 + run: | + export VULKAN_SDK=`pwd`/vulkansdk-macos-1.2.162.0/macOS + mkdir build-arm64 && cd build-arm64 + cmake -DUSE_STATIC_MOLTENVK=ON -DCMAKE_OSX_ARCHITECTURES="arm64" \ + -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR=arm64 \ + -DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \ + -DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \ + -DOpenMP_libomp_LIBRARY="$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libomp.a" \ + -DVulkan_INCLUDE_DIR=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/include \ + -DVulkan_LIBRARY=`pwd`/../vulkansdk-macos-1.2.162.0/MoltenVK/MoltenVK.xcframework/macos-arm64_x86_64/libMoltenVK.a \ + ../src + cmake --build . -j 3 + - name: package + run: | + mkdir -p ${{ env.PACKAGENAME }} + cp README.md LICENSE ${{ env.PACKAGENAME }} + lipo -create build-x86_64/${{ needs.setup.outputs.APPNAME }} build-arm64/${{ needs.setup.outputs.APPNAME }} -o ${{ env.PACKAGENAME }}/${{ needs.setup.outputs.APPNAME }} + strip ${{ env.PACKAGENAME }}/${{ needs.setup.outputs.APPNAME }} + cp -r models/* ${{ env.PACKAGENAME }} + zip -9 -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }} + - name: upload + uses: actions/upload-artifact@v2 + with: + name: ${{ env.PACKAGENAME }} + path: ${{ env.PACKAGENAME }}.zip windows: needs: [setup] @@ -103,7 +226,7 @@ jobs: path: ${{ env.PACKAGENAME }}.zip release: - needs: [setup, ubuntu, macos, windows] + needs: [setup, ubuntu] runs-on: ubuntu-latest steps: - name: download