Commit Graph
105 Commits
Author SHA1 Message Date
baldurk adf8acbccd add pcre build step if it's not found locally
* Unfortunately the new upcoming debian has made the really poor decision to
  actively *delete* the pcre package, breaking any programs depending on it even
  at build time. As far as I can see it's still available in most other common
  distributions.
* Users could easily build it themselves but would have to install it system
  wide for it to be picked up. This kind of dependency absolutely should not be
  something the build system has to set up itself but when distributions make
  poor choices we have little choice but to adapt somehow.
2025-08-07 15:56:08 +01:00
Andrew MarshallandJake Turner c612fdeb29 remove superfluous changed for macos build 2025-07-18 16:20:56 +01:00
Andrew MarshallandJake Turner b7612d8c9c cmake fixes for MacOS SDK 15.5 build (AppleClang 17) 2025-07-18 16:20:56 +01:00
baldurk fc8c806dd6 Silence function cast warning on clang-19. Closes #3551 2025-03-04 11:11:02 +00:00
baldurk fe31bdbdf8 Change incorrect -Wno-error to remove warning entirely
* If a warning is valid, it should be fixed, and if it is invalid it should be
  ignored entirely.
2024-07-29 14:28:11 +01:00
feng716andJake Turner 94212f1488 move code to the existing gcc version check clause 2024-07-10 05:24:12 +01:00
feng716andJake Turner ddc606be0e move code to qrenderdoc/CMakeLists.txt 2024-07-10 05:24:12 +01:00
baldurk f2c1435a7d Make it more clear that wayland is unsupported at build time. Refs #3124 2023-11-13 11:45:39 +00:00
Firestar99andBaldur Karlsson 62f9986922 fixed cmake version gate using too low of a version for CMP0135, try 2 2023-10-12 17:55:06 +01:00
baldurk 8cd37f019e Avoid warning on newer cmakes 2023-09-13 16:25:24 +01:00
Jake TurnerandBaldur Karlsson fb04266122 Disable Clang "-Wshorten-64-to-32" for files
3rdParty source files and some renderdoc files which include 3rdparty header files

Disable "-Wshorten-64-to-32" for the whole of qrenderdoc render_python.cxx triggers the warning
2022-07-21 11:49:49 +01:00
Jake TurnerandBaldur Karlsson 1622667bf8 Disable Clang "-Wshadow" for specific files
3rdParty source files and some renderdoc files which include 3rdparty header files

Disable "-Wshadow" for the whole of qrenderdoc render_python.cxx triggers the warning
2022-07-21 11:49:49 +01:00
Jake TurnerandBaldur Karlsson 0a4fbe8c30 Improve Xcode project generation for qrenderdoc
Xcode does not match the cmake behaviour of rerunning the target every time if the output file does not exist and then letting the Qt build system handle dependency checking.
Xcode has a property to behave like this, however that is not exposed by cmake.
To improve this for the Xcode qrenderdoc project manually add qrenderdoc sources files as dependencies.

Changed the Xcode project for qrenderdoc to add the files to the UI grouped by the file system folders using the cmake source_group(TREE *) command.
2022-06-27 11:07:46 +01:00
Jake TurnerandBaldur Karlsson 949aaa2c0a Guard XCode project generation specific settings 2022-02-19 11:17:33 +00:00
Jake TurnerandBaldur Karlsson ce36cc340f CMake files base setup for Metal 2022-02-17 14:06:28 +00:00
Jake TurnerandBaldur Karlsson e3e50fd9e4 By default disable ENABLE_PYRENDERDOC for Apple
Rather than a platform exception when building python modules
cmake variable UNIX is true when building for Apple platform
2021-11-23 10:32:45 +00:00
baldurk dc955079ab Fix RELEASE define on linux
* This fixes some debug text appearing in the resource inspector, and lets linux
  users submit manual bug reports from release builds.
2021-08-18 20:12:07 +01:00
Jake TurnerandBaldur Karlsson cf4ce8fc41 Apple Xcode added qrenderdoc sources and headers
Hardcoded to Code, Styles, Widgets, Windows *.h*, *.c*, *.m*
These files are not built by Xcode.
They are in the Xcode project to support browsing qrenderdoc source code.
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson 340a533715 Make OSX_ICONFILE Apple specific
Wrap it with if (APPLE) and APPEND to the config file
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson 7bfe758f57 Apple Xcode specify PATH for custom commands
Capture the PATH variable at cmake invoke time and store in the cache.
Use the captured PATH variable for the make based build targets custom_swig and QRenderDoc.
This fixes the problem on Apple Silicon that the Xcode PATH does not include the default homebrew paths (/opt/homebrew/bin /opt/homebrew/sbin)
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson 71243f505d Xcode generator setup for Apple
Restrict the schemes to match the configuration on the cmake command line
Disable Debug Document Versioning
Specify the executable path for build-qrenderdoc target
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson a71914c03d Apple qrenderdoc cmake remove extra space in RPATH 2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson 4ea889c7c9 Make QMAKE_OSX_DEPLOYMENT_TARGET Apple specific
Wrap it with if (APPLE) and APPEND to the config file
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson 077c07f06f Use MAKE generator for qrenderdoc custom_commands
Use MAKE generator for any non-make cmake program not just ninja build system ie. Xcode generator
2021-06-08 09:22:31 +01:00
Jake TurnerandBaldur Karlsson e8cfbd5a6f Mac build set the minimum SDK version to 10.15 2021-04-26 11:38:44 +01:00
Jake TurnerandBaldur Karlsson 87d5295926 Disable pyrenderdoc on Apple
The python brew install does not include universal binaries
Disabling pyrenderdoc on Apple allows for the generation of universal binaries by the Apple CI
2021-04-23 09:20:26 +01:00
Jake TurnerandBaldur Karlsson faa9dbf709 Enable pyrenderdoc for Apple
It was previously marked as disabled for Apple
Required to build the python modules which are used by the testing framework
Python imports .so libraries by default, change the shared library extension to .so for python modules on Apple
2021-03-14 11:17:31 +00:00
Jake TurnerandBaldur Karlsson 9c787bd05d Tidyup the Apple RPATH usage
Use @rpath for build and install to reference dynamic libraries
Set RPATH to "@executable_path/../lib" when linking
2021-03-14 11:17:31 +00:00
baldurk 9f6eda6e12 Don't check Qt version if not building qrenderdoc 2021-02-14 15:45:57 +00:00
baldurk 5e92bff7ee When build is invoked with ninja, build parallel over number of CPUs
* If we invoke 'make' on its own under a ninja build, it won't be parallel by
  default which makes the build a lot slower than it has to be.
2021-01-05 18:26:27 +00:00
baldurk 2eb39ef8fe Check that shiboken/pyside targets exist
* Some ways of installing pyside provide a cmake script that's broken and
  doesn't produce actual libraries/headers to link against.
2020-09-10 13:34:28 +01:00
baldurk 10a0153511 Make Shiboken2/PySide2 searches QUIET to avoid scary warnings
* By default cmake will print huge scary warnings if the packages aren't
  available instead of silently continuing and letting us check, which is a bad
  default for optional packages.
2020-09-10 11:49:16 +01:00
baldurk 55febc88c4 Check shiboken2's python version matches python version we're linking to
* 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.
2020-09-01 17:39:05 +01:00
baldurk 3b9b0d8887 Check that both pyside2 and shiboken2 are found
* It seems like packaging of these two is inconsistent, and pyside2 dev files
  being available doesn't always imply shiboken2 dev files are present. Be safe
  and check both.
2020-09-01 17:20:52 +01:00
baldurk 716c72f399 Remove custom FindPySide2.cmake, rely on normal packaging
* It seems PySide2 packaging is much more stable now, so we can generally rely
  on the distro packages.
2020-08-28 19:06:06 +01:00
Jordan JustenandBaldur Karlsson d2f7837ecf qrenderdoc: Drop building swig .py.c files
This is an alternative to
https://github.com/baldurk/renderdoc/pull/1768 suggested by baldurk.

I found that for some reason when cross compiling, the qrenderdoc
CMakeLists.txt was failing to see the include-bin executable that
renderdoc should have built.

Apparently the .py.c files were no longer required for qrenderdoc, so
removing it also fixed the issue I was seeing.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2020-04-02 18:15:19 +01:00
Jordan JustenandBaldur Karlsson cf91e8badf qrenderdoc: Use QMAKE_EXECUTABLE if QT_QMAKE_EXECUTABLE is not defined
Debian's debhelper automatically defines this variable during cross
compilation builds.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2020-03-11 18:00:42 +00:00
baldurk 77b76b98a8 Allow -Wimplicit-fallthrough on qrenderdoc project 2020-01-07 17:28:17 +00:00
baldurk 01674ec93b Invoke qmake in release mode when building a release cmake build 2019-12-03 21:47:04 +00:00
baldurk 3df0c59935 Don't use -Wcomma in old versions of clang 2019-12-03 10:12:06 +00:00
baldurk 6d1d302491 Fix a number of warnings identified by higher clang warning levels
* We enable a couple of high signal-to-noise warnings in all clang builds
2019-12-02 20:41:28 +00:00
baldurk 6d40bbb783 Add experimental wayland support. Refs #853
* 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.
2019-09-02 15:02:27 +01:00
baldurk e6d0c93b41 Fix wrong Qt cmake variable for qmake command being used 2019-09-02 11:37:55 +01:00
baldurk c6dd97947b Check that qmake runs successfully and check Qt version 2019-08-29 11:21:58 +01:00
baldurk 02e1a7a62b Update swig to renderdoc-modified-7 tag. Closes #1455 2019-07-22 14:52:42 +01:00
baldurk 51de7255d3 Stop static linking libstdc++ in release builds
* This seemed to cause crashes on some systems as libproxy links to libstdc++
  and can then cause symbol conflicts between the static libstdc++ and the
  system's libstdc++.
* libproxy itself cannot be statically linked, so the solution is either to
  configure Qt without libproxy and break anyone who needs proxy support, or
  stop statically linking libstdc++ and add a new dependency. At commit time
  most distributions have at least g++-5's libstdc++ in their minspec so we can
  require that - the main two that seem to fall short are Debian Jessie and
  CentOS 7. Users on those systems will have to install a newer libstdc++ or
  compile from source rather than using the binary releases.
2019-06-24 13:27:45 +01:00
baldurk 38f0d27901 Use configure_file in CMake to force rebuild if git commit changes
* We also only use GIT_COMMIT_HASH where necessary to avoid rebuilding many
  files for no reason, including splitting version.cpp out into a separate
  project as we do with VS since otherwise changing its preprocessor defines
  rebuilds the whole renderdoc project.
* At the same time, move the git hash to be internal only so we don't have to
  try to link version.cpp into other projects like renderdoccmd or qrenderdoc.
2019-06-20 19:14:14 +01:00
Matias N. GoldbergandBaldur Karlsson bea9385bb4 Choose the default qmake as specified by Kits in QtCreator
When QtCreator is used to build a CMake script, it defaults to storing
the qmake to use in the variable "QT_QMAKE_EXECUTABLE"
(this is tweakable in Tools->Options->Kits->CMake generator)

We detect if QT_QMAKE_EXECUTABLE is already defined and if so, use that
setting. Otherwise use the previous default (which is "qmake")

Why this change? A user may have several Qt versions installed, and
QtCreator supports managing between them via the IDE.

Without this change the user will change between kits in the IDE but
Renderdoc will still use the default qmake.

This is problematic in Linux systems because the Qt version installed
via the Qt installer is often more up to date than the distro-provided
one
2019-04-10 08:04:12 -07:00
Matias N. GoldbergandBaldur Karlsson cc180e383a Add support for Ninja generator
Fixes baldurk/renderdoc#1126
2019-04-10 08:02:53 -07:00
baldurk 7541dc6bc7 Add cmake compile options for enabling address/thread sanitizer
* Currently tsan doesn't work well in Qt because it doesn't recognise QMutex
2019-02-28 17:48:30 +00:00