Build macOS bundled dylibs #12
This file contains hidden or 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: Build macOS bundled dylibs | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install build tools | |
| run: | | |
| export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 | |
| brew install cmake glfw glew | |
| - name: Build GLFW universal from source | |
| run: | | |
| GLFW_VER=$(brew info --json glfw | python3 -c "import sys,json; print(json.load(sys.stdin)[0]['versions']['stable'])") | |
| curl -L "https://github.com/glfw/glfw/archive/refs/tags/${GLFW_VER}.tar.gz" -o glfw.tar.gz | |
| tar xf glfw.tar.gz | |
| cd glfw-${GLFW_VER} | |
| cmake -B build-arm64 -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF | |
| cmake --build build-arm64 | |
| cmake -B build-x64 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF | |
| cmake --build build-x64 | |
| lipo -create build-arm64/src/libglfw.3.dylib build-x64/src/libglfw.3.dylib -output ../libglfw.3.dylib | |
| install_name_tool -id @rpath/libglfw.3.dylib ../libglfw.3.dylib | |
| cd .. | |
| - name: Build GLEW universal from source | |
| run: | | |
| GLEW_VER=$(brew info --json glew | python3 -c "import sys,json; print(json.load(sys.stdin)[0]['versions']['stable'])") | |
| curl -L "https://github.com/nigels-com/glew/releases/download/glew-${GLEW_VER}/glew-${GLEW_VER}.tgz" -o glew.tgz | |
| tar xf glew.tgz | |
| cd glew-${GLEW_VER} | |
| make SYSTEM=darwin CC="clang -arch arm64 -mmacosx-version-min=11.0" LD="clang -arch arm64 -mmacosx-version-min=11.0" LDFLAGS="-framework OpenGL" GLEW_DEST=../glew-arm64 install.lib | |
| make clean | |
| make SYSTEM=darwin CC="clang -arch x86_64 -mmacosx-version-min=10.13" LD="clang -arch x86_64 -mmacosx-version-min=10.13" LDFLAGS="-framework OpenGL" GLEW_DEST=../glew-x64 install.lib | |
| cd .. | |
| lipo -create glew-arm64/lib/libGLEW.dylib glew-x64/lib/libGLEW.dylib -output libGLEW.dylib | |
| install_name_tool -id @rpath/libGLEW.dylib libGLEW.dylib | |
| - name: Copy universal dylibs to libs/macos/ | |
| run: | | |
| mkdir -p libs/macos | |
| cp libglfw.3.dylib libs/macos/ | |
| cp libGLEW.dylib libs/macos/ | |
| echo "Architecture check:" | |
| lipo -info libs/macos/libglfw.3.dylib | |
| lipo -info libs/macos/libGLEW.dylib | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-dylibs | |
| path: libs/macos/ | |
| retention-days: 90 |