Commit Graph

33 Commits

Author SHA1 Message Date
Tiago Rodrigues
79618c5a1a Add support for using defining TRACY_SYMBOL_OFFLINE_RESOLVE to enable only the offline symbol resolving codepath 2023-11-19 06:32:17 -08:00
trodrigues
2988d0a136 rename libunwind option and add it to cmake 2023-11-10 16:17:39 -06:00
Keno Fischer
5417227e83 Use patchable rdtsc sequence to avoid slowdowns under rr
We (Julia) ship both support for using tracy to trace julia applications,
as well as using `rr` (https://github.com/rr-debugger/rr) for record-replay debugging.
After our most recent rebuild of tracy, users have been reporting signfificant performance
slowdowns when `rr` recording a session that happens to also load the tracy library
(even if tracing is not enabled). Upon further examination, the recompile happened
to trigger a protective heuristic that disabled rr's patching of tracy's use of
`rdtsc` because an earlier part of the same function happened to look like a
conditional branch into the patch region. See https://github.com/rr-debugger/rr/pull/3580
for details. To avoid this issue occurring again in future rebuilds of tracy,
adjust tracy's `rdtsc` sequence to be `nopl; rdtsc`, which (as of of the
linked PR) is a sequence that is guaranteed to bypass this heuristic
and not incur the additional overhead when run under rr.

This functionality is kept behind a compile-time flag `TRACY_PATCHABLE_NOPSLEDS`
in order to avoid polluting the instruction cache unnecessarily.
2023-09-20 20:21:40 -04:00
Christian Prather
a49af31188 Added cmake versioning and removed hardcoded share dir path 2023-07-17 10:55:46 -06:00
Andréa MACHIZAUD
cb30c4eb3e Fix missing TracyClient headers 2023-06-23 14:57:48 +02:00
Francisco Facioni
baf0e69a13 fix missing dependendency on install 2023-05-18 09:39:10 +01:00
Robert Adam
92137e8050 CMake: Fix invalid syntax
In 1f7656e845 I introduced a new option
but for setting its default value, I accidentally introduced invalid
cmake syntax that blows off as soon as BUILD_SHARED_LIBS is actually
defined to be non-empty.
2022-09-03 17:13:31 +02:00
Robert Adam
1f7656e845 CMake: Add option to explicitly set lib type
With this new option, it is now possible to explicitly build Tracy as a
shared or static library independent from the BUILD_SHARED_LIBS
variable, which always acts on a global scope (thus, affecting all CMake
targets).

If the options is not explicitly given, it will default to whatever
BUILD_SHARED_LIBS would indicate, leaving the default behavior
unchanged.
2022-08-31 18:06:51 +02:00
Robert Adam
0aeadb4c49 Use TRACY_PUBLIC_DIR throughout 2022-08-31 18:06:22 +02:00
Tiago Chaves
70026097cc
Update CMakeLists.txt 2022-08-04 08:51:08 -03:00
Bartosz Taudul
6233cf3fdf
Merge pull request #380 from Honeybunch/master
Slight tweak to get client library working with mingw
2022-05-14 12:48:09 +02:00
Mikael Simberg
57c13ed138
Remove duplicate TRACY_NO_FRAME_IMAGE CMake option 2022-05-11 09:39:42 +02:00
Mikael Simberg
aa089fb1d3
Remove stray comma from TRACY_NO_CRASH_HANDLER option 2022-05-10 15:49:59 +02:00
Honeybunch
45bd17b7e8 Slight tweak to get client library working with mingw 2022-05-03 18:31:49 -07:00
Michael Puskas
a5ea07f107 Fix build options, add TRACY_TIMER_FALLBACK option.
Renamed TRACY_NO_SYS_TRACE -> TRACY_NO_SYSTEM_TRACING to match the
build flag name. Unlike the meson logic, the CMake logic directly
maps the option name to the build flag that is injected. With the
mismatched name, the flag wasn't being properly applied.

Added TRACY_TIMER_FALLBACK option to expose the same-named flag.

Moved signal.h include to get sigaction definition that was missing when
TRACY_NO_CALLSTACK was defined.
2022-05-01 13:52:27 -07:00
Blake Taylor
8c5120ee5a Add flag to disable crash handler 2022-04-27 07:11:53 -07:00
David McCloskey
f11e71fd09 Adding tracy_no_sys_trace to enable MinGW builds which have an older version of envtprov.h 2022-04-12 12:07:21 -05:00
Clément Grégoire
f4f558bdc9 CMake: New description for TRACY_CALLSTACK 2022-02-23 14:29:20 +01:00
Clément Grégoire
d48fdafde7 Fix IPV4 -> IPv4 typo 2022-02-23 14:16:50 +01:00
Clément Grégoire
92a0feb821 CMake: Add the new TRACY_NO_CALLSTACK option 2022-02-23 14:09:04 +01:00
Clément Grégoire
2844fea858 CMake: Add missing options 2022-02-23 10:58:31 +01:00
Bartosz Taudul
72ae4d2ee4
Merge pull request #326 from Lectem/install_namepace
CMake install should use the Tracy:: namespace
2022-02-12 01:14:52 +01:00
Clément Grégoire
5a67fa99a7 Fix missing TracyUwp in the CMake headers install 2022-02-12 00:20:37 +01:00
Clément Grégoire
0b6c60de76 Since tracy provides the Tracy::TracyClient it should also install with that namespace 2022-02-11 23:58:47 +01:00
Honeybunch
12b0631f28 Merge branch 'master' of https://github.com/wolfpld/tracy 2022-01-12 14:59:04 -08:00
Honeybunch
a7fbfba27d Fixing install 2022-01-12 14:57:41 -08:00
Robert Adam
96141cdef0
CMakeLists: Fix typo
Fixes #298
2021-12-18 20:14:06 +01:00
Robert Adam
43303323a0
CMake: Mark include directories as SYSTEM
This usually prevents the compiler from emitting warnings about stuff it found in
the included files.
Since the CMakeLists.txt seems to be exclusively meant for code that is making use
of Tracy rather than Tracy itself using it to build, silencing the warnings should probably
be what most folks would want.

This will prevent things like #126
2021-12-17 17:23:16 +01:00
Honeybunch
ef795ba49d Exporting cmake targets for install 2021-12-06 08:58:25 -08:00
Lukas Berbuer
a7bbd51c61 Simplify CMake option definition 2021-08-01 13:14:32 +02:00
Lukas Berbuer
958386709f Add documentation for CMake integration 2021-08-01 12:54:31 +02:00
Lukas Berbuer
0fe755fc85 Add options to CMakeLists.txt
Major parts taken from https://github.com/Manu343726/tracy/blob/master/CMakeLists.txt
2021-08-01 12:26:42 +02:00
Timo Suoranta
629b6d88bb
Provide CMake TracyClient header only library 2021-05-30 12:45:16 +02:00