test #295
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS | |
on: | |
workflow_dispatch: | |
push: | |
paths: | |
- '**' | |
- 'examples/**' | |
- '.github/workflows/macos.yml' | |
pull_request: | |
paths: | |
- '**' | |
- 'examples/**' | |
- '.github/workflows/macos.yml' | |
release: | |
types: [published] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
permissions: | |
contents: write # for actions/upload-release-asset to upload release asset | |
runs-on: macos-latest | |
env: | |
RELEASE_NAME: RSGL-dev_macos | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Setup Release Version | |
run: | | |
echo "RELEASE_NAME=RSGL-${{ github.event.release.tag_name }}_macos" >> $GITHUB_ENV | |
shell: bash | |
if: github.event_name == 'release' && github.event.action == 'published' | |
- name: Setup Environment | |
run: | | |
mkdir build | |
cd build | |
mkdir ${{ env.RELEASE_NAME }} | |
cd ${{ env.RELEASE_NAME }} | |
mkdir include | |
mkdir lib | |
cd ../.. | |
# Generating static + shared library, note that i386 architecture is deprecated | |
# Defining GL_SILENCE_DEPRECATION because OpenGL is deprecated on macOS | |
- name: Build Library | |
run: | | |
clang --version | |
# Extract version numbers from Makefile | |
brew install grep | |
# Build RSGL x86_64 static | |
make CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION" | |
mv libRSGL.a /tmp/libRSGL_x86_64.a | |
rm -f RSGL.o | |
# Build RSGL arm64 static | |
make CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" | |
mv libRSGL.a /tmp/libRSGL_arm64.a | |
rm -f RSGL.o | |
# Join x86_64 and arm64 static | |
lipo -create -output build/${{ env.RELEASE_NAME }}/lib/libRSGL.a /tmp/libRSGL_x86_64.a /tmp/libRSGL_arm64.a | |
# Build RSGL x86_64 dynamic | |
make CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION" | |
mv libRSGL.dylib /tmp/libRSGL_x86_64.dylib | |
rm -f RSGL.o | |
# Build RSGL arm64 dynamic | |
make CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" | |
mv libRSGL.dylib /tmp/libRSGL_arm64.dylib | |
# Join x86_64 and arm64 dynamic | |
rm -f ./build/lib/* | |
lipo -create -output libRSGL.dylib /tmp/libRSGL_x86_64.dylib /tmp/libRSGL_arm64.dylib | |
ln -sv libRSGL.dylib build/${{ env.RELEASE_NAME }}/lib/libRSGL.dylib | |
- name: Generate Artifacts | |
run: | | |
mkdir -p build | |
mkdir -p build/include | |
mkdir -p build/lib | |
cp -v ./RSGL.h ./build/${{ env.RELEASE_NAME }}/include | |
cp -v ./RSGL_gl.h ./build/${{ env.RELEASE_NAME }}/include | |
cp -v -r ./deps ./build/${{ env.RELEASE_NAME }}/include | |
cp -v ./libRSGL.a ./build/${{ env.RELEASE_NAME }}/lib | |
cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md | |
cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE | |
cd build | |
tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }} | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.RELEASE_NAME }}.tar.gz | |
path: ./build/${{ env.RELEASE_NAME }}.tar.gz | |
- name: Upload Artifact to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ./build/${{ env.RELEASE_NAME }}.tar.gz | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
if: github.event_name == 'release' && github.event.action == 'published' |