I thought I went over all these several years ago already, but
apparently not or maybe back then not all websites were HTTPS-ready. Now
they mostly are, except for maybe one or two.
Don't try to look for them if we don't use them. It only makes people
install additional outdated crap on their machines for no reason. The
only case where platform-specific GL headers are needed is in case of
iOS which doesn't provide any means of function pointer loading, but
there the include is passed implicitly from the framework.
Emscripten's MINIMAL_RUNTIME requires -lGL or -lopenal to be specified
(the default does that implicitly). It doesn't hurt to do that every
time and it makes the Find modules slightly simpler.
Well, only for CMake 3.13 and newer, by using the SHELL: variant of
INTERFACE_LINK_OPTIONS. In order to stay compatible with older versions,
it needs to be done in FindMagnum.cmake and modifying the global
CMAKE_EXE_LINKER_FLAGS. This case was updated to work properly also with
CMake subprojects.
As with Corrade, this is not exactly backwards compatible, but for
common use case without OBJECT libraries this should not be a problem.
In any case, recreate the build dir and update your copy of all
Find*.cmake modules to avoid weird things happening.
User-facing changes:
* Documentation of all Find*.cmake modules converted to
reStructuredText to follow official CMake guidelines.
* The newfangled way to use the libraries is to link to Magnum::Shaders
instead of adding ${MAGNUM_SHADERS_INCLUDE_DIRS} to include path and
linking to ${MAGNUM_SHADERS_LIBRARIES}.
* The old ${MAGNUM_*_LIBRARIES} are deprecated and now just expand to
Magnum::* target. Use the target directly. These are also enabled
only when building with MAGNUM_BUILD_DEPRECATED.
* The old ${MAGNUM_*_INCLUDE_DIRS} are removed as the Magnum::* targets
cover these too.
Internal changes:
* Global state such as include_directories() was replaced with
target-specific settings.
The actual WebGL 2 distinction was done as a part of previous WebGL
cleanup. It compiles, but is completely broken, as Emscripten has some
missing bits to go through at least Context class creation.
It's meaningless to have *_INCLUDE_DIR point to the dir where
{egl.h,gl2.h,gl3.h} exists, because we're always including the files
using full path (e.g. <EGL/egl.h>). It then fails miserably at compile
time on platforms which don't have the parent directory in include path.