* This doesn't change our minimum specs as we already required GCC 5, clang 3.4,
which fully support C++14. Interestingly only VS2015 is the odd one out but we
don't rely on any features from C++14 that it doesn't support.
In development/CMakeLists.txt:477, the Python interpreter and libs are discovered. It uses the 'old' package discovery mechanism and the new depending on CMake's version.
However the old mechanism sets different variables to the new, so the new also sets the old vars for compatibility, however it is missing two variables.
The first missing var causes the Python minor version to be hardcoded to zero (renderdoccmd/CMakeLists.txt:9) and the second causes the later conditional (CMakeLists.txt:495) to be malformed.
The CMake option "CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" is available starting from CMake version 3.23.0.
Increase the minimum CMake version for building Apple to 3.23.0 from 3.20.0
macos-11 Apple Clang does not support -Wno-unused-but-set-variable
To fix CI
error: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Werror,-Wunknown-warning-option]
While Renderdoc already supported multiarch for where to install the
libraries with the LIB_SUFFIX option. The Vulkan layer was left out of
this loop.
Vulkan layers living in `/usr/share/vulkan/implicit_layer.d/` will use a
suffix before the `.json` to separate libraries of different
architectures. These layer files will then point to the architecture
specific `library_path` inside that json file.
Also updates the check in `LayerRegistrationPath` so it handles the
suffix as well. This way `renderdoccmd` won't complain about conflicting
json files.
CMAKE_OSX_ARCHITECTURES
ENABLE_PYRENDERDOC
CMAKE_OSX_DEPLOYMENT_TARGET
Remove CMAKE_OSX_ARCHITECTURES default setting to build for multiple architectures.
Enable ENABLE_PYRENDERDOC to On by default for Apple.
CMake version 3.20 or higher (needed to support Xcode project generation)
clang version 12.0 or higher (needed to support arm64+x64 universal binary compilation)
XCode 12.2 is the oldest version which includes clang version 12.0
Restrict the schemes to match the configuration on the cmake command line
Disable Debug Document Versioning
Specify the executable path for build-qrenderdoc target
For Xcode set the output directory to be the same for all configurations
By default Xcode puts binary and library outputs in a different folder per configuration
* We also reverse Python_ADDITIONAL_VERSIONS so it finds the newest one. It
doesn't seem like there's a way in general to make these match, so we hope
that searching from newest to oldest will find the same in both - or at least
it makes it easier for the user to fix by installing the newest in both.
* Technically the code is incorrect, because the C++ spec is terrible and makes
completely normal things illegal. GCC decides that a couple of % more perf is
worth breaking lots of code, so instead we disable this class of
"optimisation".
For Wayland support on GL we currently fall back to the GLES code path
just to get EGL. This commit uses the EGL platform directly for Wayland,
also removing the dependency on GLES.
EGL (>= 1.4) supports desktop GL, in addition to GLES. This commit makes
EGL support independently configurable at build time, to allow GL to use
it even if GLES is not needed or available.
* This is only lightly tested and may break heavily. It is disabled by default
and must be explicitly enabled.
* In particular this is only known to work for Wayland use at capture time.
Wayland on replay is still unsupported. Known issues include: EGL pbuffer
surfaces are not implemented on Wayland, Wayland cannot get window dimensions,
and there are hangs/failures with GL and vulkan presentation with Wayland.