macOS
Tips and tricks for macOS.
With Apple decision to focus on Metal, macOS OpenGL support is stuck on version 4.2 (i.e., a version before compute shaders are available).
Best practices
Official Apple documentation:
Setting up macOS build on Travis CI
A lot of Travis features is shared between Linux and macOS, see Setting up Linux build on Travis CI for more information.
In general, a macOS build is done by adding the following to your .travis.yml
matrix build. See the official documentation for more information.
matrix: include: - language: cpp os: osx compiler: clang
Most of the build setup can be shared with Linux, as both systems have roughly the same set of packages. For installing dependencies there's no builtin way, but you can use Homebrew. Be aware that calling for example brew install ninja
by default causes Homebrew to update itself first. That currently (March 2018) takes almost two minutes. It's possible to skip the update by setting an environment variable as shown below, however this might fail in case you need a very recent version of a package.
HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja
Troubleshooting
- GL::
AbstractShaderProgram:: validate() expects that the shader has a properly configured framebuffer bound along with proper GL:: Renderer setup. That is often hard to achieve, so the function cannot be portably used for shader validity testing. GL_TIMESTAMP
used by GL::TimeQuery:: timestamp() is not implemented on macOS and gives zero results.