diff --git a/doc/platforms-ios.dox b/doc/platforms-ios.dox index 671d7cced..e7b65a1e8 100644 --- a/doc/platforms-ios.dox +++ b/doc/platforms-ios.dox @@ -34,7 +34,8 @@ namespace Magnum { With Apple decision to focus on Metal, iOS OpenGL ES support is stuck on version 3.0 (i.e., a version before compute shaders are available). -See also @ref Platform::Sdl2Application for more information. +See also @ref Platform::Sdl2Application for more information. Some of the +@ref platforms-macos "macOS platform-specific info" applies here as well. @section platforms-ios-best-practices Best practices diff --git a/doc/platforms-linux.dox b/doc/platforms-linux.dox index a6e72f86f..27fd65e63 100644 --- a/doc/platforms-linux.dox +++ b/doc/platforms-linux.dox @@ -32,8 +32,64 @@ namespace Magnum { @m_footernavigation @todoc packages +@todoc code coverage @todoc desktop ES +@todoc archlinux PKGBUILDs @todoc tests, mesa softpipe + +@section platforms-linux-travis Setting up Linux build on Travis CI + +In general, a Linux build is done by adding the following to your `.travis.yml` +matrix build. Currently Ubuntu 14.04 is the latest you can get. See +[the official documentation](https://docs.travis-ci.com/user/reference/trusty/) +for more information. + +@code{.yml} +matrix: + include: + - language: cpp + os: linux + dist: trusty + compiler: gcc +@endcode + +It's advisable to use the container builds instead of the sudo-enabled ones as +they are generally much faster to boot up, however they have restrictions on +what packages can be installed. Installing packages is done by adding the +following to your `.travis.yml` + +@code{.yml} +matrix: + include: + - language: cpp + os: linux + ... + addons: + apt: + packages: + - ninja-build + - libsdl2-dev + ... +@endcode + +You can find out how's the package named by searching for Ubuntu Trusty +packages. The packages are whitelisted, be sure to check the `ubuntu-trusty` +file in https://github.com/travis-ci/apt-package-whitelist before adding a +package to the list. Some packages might require enabling a third-party PPA, a +whitelist for them is at https://github.com/travis-ci/apt-source-whitelist. If +a package is not whitelisted, you can either request it by opening an issue on +these repos (prepare that it may take *long* to get through in some cases), or +build it manually and then cache the result. + +Travis supports ANSI color escape codes, so don't forget to enable colored +output for @ref Corrade::TestSuite output. It supports more than just ANSI +color escaping --- if you use Ninja, it will display just the condensed +single-line output. + +@code{.sh} +CORRADE_TEST_COLOR=ON ctest -V +@endcode + */ } diff --git a/doc/platforms-macos.dox b/doc/platforms-macos.dox index 6adce7e08..78493a90d 100644 --- a/doc/platforms-macos.dox +++ b/doc/platforms-macos.dox @@ -32,7 +32,7 @@ namespace Magnum { @m_footernavigation @todoc homebrew -@todoc travis setup +@todoc code coverage @todoc bundling, dmg cpack With Apple decision to focus on Metal, macOS OpenGL support is stuck on version @@ -45,6 +45,35 @@ Official Apple documentation: - [Best Practices for Working with Vertex Data](https://developer.apple.com/library/mac/#documentation/graphicsimaging/Conceptual/OpenGL-MacProgGuide/opengl_vertexdata/opengl_vertexdata.html) - [Best Practices for Working with Texture Data](https://developer.apple.com/library/mac/#documentation/graphicsimaging/Conceptual/OpenGL-MacProgGuide/opengl_texturedata/opengl_texturedata.html) +@section platforms-macos-travis Setting up macOS build on Travis CI + +A lot of Travis features is shared between Linux and macOS, see +@ref platforms-linux-travis for more information. + +In general, a macOS build is done by adding the following to your `.travis.yml` +matrix build. See [the official documentation](https://docs.travis-ci.com/user/reference/osx/) +for more information. + +@code{.yml} +matrix: + include: + - language: cpp + os: osx + compiler: clang +@endcode + +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 +@cb{.sh} brew install ninja @ce 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. + +@code{.sh} +HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja +@endcode + @section platforms-macos-troubleshooting Troubleshooting - @ref AbstractShaderProgram::validate() expects that the shader has a