Commit Graph
69 Commits
Author SHA1 Message Date
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
baldurk 34a97482dd Add helper shortcut to 'renderdoccmd test' to run functional tests
* This invokes run_tests.py with any arguments but specifies the renderdoc
  module and python module paths automatically. Only works if built within the
  project repo itself as otherwise it won't locate the test script
2019-02-14 15:45:22 +00:00
Jake TurnerandBaldur Karlsson 8105ddb5ab osx: for cmake set library output to be lib folder
On Apple only set  CMAKE_LIBRARY_OUTPUT_DIRECTORY to be “lib” folder instead of “bin” folder
Fixes osx problem when launching renderdoccmd not being able to find librenderdoc.dylib
RPATH is set to be "@executable_path/../lib" which matches where qrenderdoc.app copies the renderdoc library to

qrenderdoc: set library search folder “-L” to be CMAKE_LIBRARY_OUTPUT_DIRECTORY instead of CMAKE_RUNTIME_OUTPUT_DIRECTORY
2019-01-03 12:21:58 +00:00
baldurk 0c47dc4349 Update swig to renderdoc-modified-6 tag 2018-11-29 00:35:46 +00:00
baldurk 4b82db76e7 Search for python 3.7 as well 2018-11-12 19:26:35 +00:00
baldurk 7f0df0821e On macOS work around broken compilers by disabling inheriting CC & CXX
* Normally we want to inherit CC and CXX from the parent process to ensure that
  the user's choice of compiler is respected. Unfortunately macOS 10.14 starts
  shipping broken compilers, so inheriting CC & CXX causes the swig compilation
  to fail.
* As a workaround, we just disable this on macOS assuming the user won't ever
  want to override CC & CXX because it's all locked into XCode anyway.
2018-10-02 18:26:26 +01:00
baldurk d8a64c4172 Fix compilation on GCC 8. Closes #984 2018-05-15 19:44:17 +01:00
Rémi VerscheldeandBaldur Karlsson 4a5393b41e CMake: Set SWIG word size based on architecture
Fixes #906.
2018-03-09 12:37:01 +00:00
baldurk e216e2f6b5 Update swig to renderdoc-modified-5 tag 2018-02-26 09:47:18 +00:00
baldurk c1ceb3b02a Make PySide2 optional on windows
* It's already optional on linux due to distributions not necessarily
  carrying packages for it yet. We also make it optional on windows
  since by the same measure it's not a huge problem if it's missing, and
  official builds will include it. This means we don't have to ship the
  binary dependencies
2018-02-02 20:47:19 +00:00
baldurk 6adbdf7dfe Update to 4th set of renderdoc swig changes 2017-12-27 16:05:15 +00:00
baldurk 16f64a5ace Remove use of unnecessary swig generated .py wrappers
* These .py wrappers are relevant for the non-builtin path, but since we
  use -builtin they serve no purpose except to make things more complex.
* So instead we make the module directly exported as 'module' instead of
  '_module'.
* On windows there's no conflict because we have renderdoc.dll vs
  renderdoc.pyd. On linux it's librenderdoc.so vs renderdoc.so.
* To prevent supporting files like .lib / .pdb from conflicting on
  windows we build the python modules into a subdirectory. They're not
  ever used by the UI (it links in the bindings directly).
2017-12-25 15:05:28 +00:00
baldurk b15422f4c1 Re-arrange CMakeLists.txt a bit to separate qrenderdoc & pyrenderdoc
* Now you can build the python modules without building the full UI,
  which is mostly useful for docs builds so we can do a minimal compile
  and still generate the docs.
2017-12-19 18:05:25 +00:00
baldurk fcba572fb2 Don't set -DSWIGWORDSIZE64 on apple, where uint64_t typedef is different 2017-12-14 10:26:25 +00:00
baldurk 1752a96ba9 Specify -DSWIGWORDSIZE64 on linux to fix problems with uint64_t on swig 2017-12-13 22:43:06 +00:00
baldurk 1a514c1310 Attempt to fix weird SWIG compile error with lacking relocatable flag
* Although we're only making binaries so this doesn't seem like it
  should be necessary.
2017-12-07 19:32:23 +00:00
baldurk b8777b3f82 Update to use latest renderdoc SWIG fork, with new improvements
* Enums are now proper python enums instead of just being a class with
  static int members.
* Fix a refcounting issue with SWIG generated code to access nested
  child structs.
2017-11-20 20:01:02 +00:00
baldurk 1992183e8e Add support for specifying a subfolder under the lib/ target. Refs #750
* This allows a buidler to customise from e.g. /usr/lib/librenderdoc.so
  to /usr/lib/renderdoc/librenderdoc.so - which is harmless since the
  library is 'private' and not intended to be linked against directly.
2017-09-26 11:00:17 +01:00
baldurk 4d2da84ca4 Reference an explicit tag release of renderdoc's swig fork
* The tag is signed, and there's a release on that github repo with
  signatures for the source tarball/zip files
2017-08-04 17:35:32 +01:00
baldurk 094b9ebf35 Configure build to work with case fallthrough GCC7 warning. Refs #671 2017-06-22 14:20:23 +01:00
baldurk 91a6bb011b Add cmake option to choose where the forked SWIG source is fetched from 2017-06-22 14:20:22 +01:00
baldurk 63f4bf2d77 Add a cmake option to override the name of the 'qmake' binary. Refs #671 2017-06-22 14:20:21 +01:00
Józef KuciaandBaldur Karlsson db0cf0574c Fix check for python-config. Refs #647
Fixes fa1b098cc4.
2017-06-13 06:44:13 -07:00
baldurk fa1b098cc4 Check for python3-config or python3.x-config binary names. Refs #647 2017-06-12 12:11:14 +01:00
baldurk 348bfbce01 CMake recommends finding PythonInterp before PythonLibs 2017-06-09 21:38:52 +01:00
baldurk e4a5b80bdd Don't depend swig targets on renderdoc target, just interface headers
* This avoids rebuilding swig every time if some internal cpp in the
  renderdoc target changes, but will still rebuild it if the interface
  headers change.
2017-05-02 22:58:12 +01:00
baldurk ae50fa99ee Revamp version tagging, remove ugly suffix on git hash. Refs #571
* Tacking -official onto the git hash was a hack only needed on windows,
  and since we want more information it doesn't scale.
* Instead we track anything we need to know about the version in
  separate variables, like whether it's a stable build or a nightly/
  local build. Or if it's built by a downstream distribution then the
  version number for the downstream build.
2017-04-27 19:47:50 +01:00
baldurk 5f2ecd07e4 Don't build python renderdoc modules on OS X 2017-04-19 19:48:34 +01:00
baldurk 8824e18b0a Search share/renderdoc/pylibs for python libs.
* This is only relevant for static qrenderdoc builds where the python
  used isn't the system python, so it needs to locate its libs.
  Otherwise the system libpython3.so and libs will be used.
2017-04-19 18:07:56 +01:00
baldurk 9441e15ebc Make sure linking static python exports all of its symbols
* This is needed to correctly load C modules like math, ctypes, etc
2017-04-19 18:07:55 +01:00
baldurk 94e64a0aec Add build of renderdoc python modules for documentation generation 2017-04-19 18:07:55 +01:00
baldurk 6596a3caec Search for additional python versions 3.4, 3.5, and 3.6 2017-04-19 18:07:54 +01:00
baldurk bd78b4b985 Link against libutil for static qrenderdoc builds
* It's needed for openpty/forkpty in python when static linking, and
  it's a safe library to depend upon dynamically.
2017-04-19 18:07:53 +01:00
baldurk 2e2bd1759d Don't redirect stderr to NULL when configuring, to print errors 2017-04-19 18:07:52 +01:00
baldurk cbc27222e2 Add qrenderdoc python SWIG bindings, for the stable/clean interface 2017-04-18 14:57:43 +01:00
baldurk 2e2a58950a Integrate pyside2/shiboken2 to be able to bind Qt to python
* On linux we make it optional since it's too large a project to add
  as a build step via ExternalProject_add.
2017-04-18 14:57:41 +01:00
baldurk 12472d93bc Link against python in qrenderdoc 2017-04-18 14:57:41 +01:00