Skip to content

Commit f44d0ba

Browse files
chore: fix clang compilation error
1 parent d6b4111 commit f44d0ba

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

core/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,25 @@ target_link_libraries(codspeed PRIVATE instrument_hooks)
9696
# Version
9797
add_compile_definitions(CODSPEED_VERSION="${CODSPEED_VERSION}")
9898

99+
# Collect compiler toolchain information for environment reporting
100+
execute_process(
101+
COMMAND ${CMAKE_CXX_COMPILER} --version
102+
OUTPUT_VARIABLE CODSPEED_CXX_COMPILER_FULL_VERSION
103+
OUTPUT_STRIP_TRAILING_WHITESPACE
104+
ERROR_QUIET
105+
)
106+
# Extract first line only
107+
if(CODSPEED_CXX_COMPILER_FULL_VERSION)
108+
string(REGEX REPLACE "\n.*" "" CODSPEED_CXX_COMPILER_FULL_VERSION "${CODSPEED_CXX_COMPILER_FULL_VERSION}")
109+
endif()
110+
111+
target_compile_definitions(codspeed PRIVATE
112+
CODSPEED_CXX_COMPILER_ID="${CMAKE_CXX_COMPILER_ID}"
113+
CODSPEED_CXX_COMPILER_VERSION="${CMAKE_CXX_COMPILER_VERSION}"
114+
CODSPEED_CXX_COMPILER_FULL_VERSION="${CODSPEED_CXX_COMPILER_FULL_VERSION}"
115+
CODSPEED_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
116+
)
117+
99118
# Specify the include directories for users of the library
100119
target_include_directories(
101120
codspeed

core/include/measurement.hpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,21 @@ inline bool measurement_is_instrumented() {
3535
inline void measurement_set_metadata() {
3636
std::string version = get_version();
3737
instrument_hooks_set_integration(g_hooks, "codspeed-cpp", version.c_str());
38+
39+
// Report C++ toolchain information
40+
#ifdef CODSPEED_CXX_COMPILER_ID
41+
instrument_hooks_set_toolchain("cpp", "compiler_id", CODSPEED_CXX_COMPILER_ID);
42+
#endif
43+
#ifdef CODSPEED_CXX_COMPILER_VERSION
44+
instrument_hooks_set_toolchain("cpp", "version", CODSPEED_CXX_COMPILER_VERSION);
45+
#endif
46+
#ifdef CODSPEED_CXX_COMPILER_FULL_VERSION
47+
instrument_hooks_set_toolchain("cpp", "build", CODSPEED_CXX_COMPILER_FULL_VERSION);
48+
#endif
49+
#ifdef CODSPEED_BUILD_TYPE
50+
instrument_hooks_set_toolchain("cpp", "build_type", CODSPEED_BUILD_TYPE);
51+
#endif
52+
instrument_hooks_write_environment();
3853
}
3954

4055
ALWAYS_INLINE void measurement_start() {
@@ -54,9 +69,9 @@ ALWAYS_INLINE uint64_t measurement_current_timestamp() {
5469
return instrument_hooks_current_timestamp();
5570
}
5671

57-
ALWAYS_INLINE int8_t measurement_add_marker(uint8_t marker_type,
58-
uint64_t timestamp) {
59-
auto pid = getpid();
72+
ALWAYS_INLINE uint8_t measurement_add_marker(uint8_t marker_type,
73+
uint64_t timestamp) {
74+
auto pid = static_cast<uint32_t>(getpid());
6075
return instrument_hooks_add_marker(g_hooks, pid, marker_type, timestamp);
6176
}
6277

0 commit comments

Comments
 (0)