-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Build errors when trying to add Tracy with CMake's add_subdirectory and compiling with mingw64 #1305
Description
I'm trying to add tracy as a subdirectory with CMake and I get the following errors when building with mingw64. I found a similar issue where "CONTROLTRACE_ID" was also mentioned and the proposed solution there was to update my Windows SDK. So I installed the latest version of the Windows SDK for Windows 11 but no change. I'm on Windows 10 so maybe that is the issue? Could someone help?
C:\msys64\mingw64\bin\g++.exe -DTRACY_ENABLE -isystem [path_to_tracy]/tracy/public -g -std=gnu++20 -MD -MT libs/1to1/libs/tracy/CMakeFiles/TracyClient.dir/public/TracyClient.cpp.obj -MF libs\1to1\libs\tracy\CMakeFiles\TracyClient.dir\public\TracyClient.cpp.obj.d -o libs/1to1/libs/tracy/CMakeFiles/TracyClient.dir/public/TracyClient.cpp.obj -c [path_to_tracy]/tracy/public/TracyClient.cpp
In file included from [path_to_tracy]/tracy/public/client/TracySysTrace.cpp:62,
from [path_to_tracy]/tracy/public/TracyClient.cpp:27:
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:26:5: error: 'CONTROLTRACE_ID' does not name a type
26 | CONTROLTRACE_ID handle = 0;
| ^~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::StopSession(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:215:40: error: 'struct tracy::etw::Session' has no member named 'handle'
215 | ULONG status = ControlTraceA( temp.handle, temp.name, &temp.properties, EVENT_TRACE_CONTROL_STOP );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:219:13: error: 'struct tracy::etw::Session' has no member named 'handle'
219 | session.handle = 0;
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::StartSession(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:227:42: error: 'struct tracy::etw::Session' has no member named 'handle'
227 | ULONG status = StartTraceA( &session.handle, session.name, &session.properties );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:237:40: error: 'struct tracy::etw::Session' has no member named 'handle'
237 | status = StartTraceA( &session.handle, session.name, &session.properties );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableProvider(Session&, const GUID&, ULONG, UCHAR, ULONGLONG, ULONGLONG, ULONG, PENABLE_TRACE_PARAMETERS)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:290:44: error: 'struct tracy::etw::Session' has no member named 'handle'
290 | ULONG status = EnableTraceEx2( session.handle, &ProviderId, ControlCode, Level, MatchAnyKeyword, MatchAllKeyword, Timeout, EnableParameters );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableStackWalk(Session&, GUID, UCHAR)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:312:53: error: 'struct tracy::etw::Session' has no member named 'handle'
312 | ULONG status = TraceSetInformation( session.handle, TraceStackTracingInfo, session.stackwalk, count * sizeof( CLASSIC_EVENT_ID ) );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::SetCPUProfilingInterval(int)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:325:5: error: 'CONTROLTRACE_ID' was not declared in this scope
325 | CONTROLTRACE_ID TraceId = 0; // must be zero for TraceSampledProfileIntervalInfo
| ^~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:326:41: error: 'TraceId' was not declared in this scope
326 | ULONG status = TraceSetInformation( TraceId, TraceSampledProfileIntervalInfo, &interval, sizeof( interval ) );
| ^~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'bool tracy::etw::IsSingletonKernelLoggerSession(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:428:24: error: 'struct tracy::etw::Session' has no member named 'handle'
428 | check &= ( session.handle == 0xFFFF );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::UpdateSessionEnableFlags(Session&, ULONGLONG)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:439:40: error: 'struct tracy::etw::Session' has no member named 'handle'
439 | ULONG status = ControlTraceA( temp.handle, temp.name, &temp.properties, EVENT_TRACE_CONTROL_UPDATE );
| ^~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableProcessAndThreadMonitoring(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:456:33: error: 'SYSTEM_PROCESS_KW_THREAD' was not declared in this scope
456 | ULONGLONG MatchAnyKeyword = SYSTEM_PROCESS_KW_THREAD; // ThreadStart and ThreadDCStart events
| ^~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:457:45: error: 'SystemProcessProviderGuid' was not declared in this scope
457 | ULONG status = EnableProvider( session, SystemProcessProviderGuid,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableCPUProfiling(Session&, int)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:482:32: error: 'SystemProfileProviderGuid' was not declared in this scope
482 | CheckProviderSessions( SystemProfileProviderGuid, 0 );
| ^~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableContextSwitchMonitoring(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:510:28: error: 'SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH' was not declared in this scope
510 | MatchAnyKeyword |= SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH; // CSwitch events
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:511:28: error: 'SYSTEM_SCHEDULER_KW_DISPATCHER' was not declared in this scope
511 | MatchAnyKeyword |= SYSTEM_SCHEDULER_KW_DISPATCHER; // ReadyThread events
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:512:32: error: 'SystemSchedulerProviderGuid' was not declared in this scope
512 | CheckProviderSessions( SystemSchedulerProviderGuid, MatchAnyKeyword );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: In function 'ULONG tracy::etw::EnableVSyncMonitoring(Session&)':
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:541:5: error: 'EVENT_FILTER_EVENT_ID' was not declared in this scope; did you mean 'EVENT_FILTER_HEADER'?
541 | EVENT_FILTER_EVENT_ID fe = {};
| ^~~~~~~~~~~~~~~~~~~~~
| EVENT_FILTER_HEADER
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:542:5: error: 'fe' was not declared in this scope
542 | fe.FilterIn = TRUE;
| ^~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:548:17: error: 'EVENT_FILTER_TYPE_EVENT_ID' was not declared in this scope; did you mean 'EVENT_FILTER_TYPE_SCHEMATIZED'?
548 | desc.Type = EVENT_FILTER_TYPE_EVENT_ID;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| EVENT_FILTER_TYPE_SCHEMATIZED
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:551:39: error: 'EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0' was not declared in this scope
551 | EnableParameters.EnableProperty = EVENT_ENABLE_PROPERTY_IGNORE_KEYWORD_0;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp: At global scope:
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:574:8: error: 'PROCESSTRACE_HANDLE' does not name a type; did you mean 'PROCESS_DUP_HANDLE'?
574 | static PROCESSTRACE_HANDLE SetupEventConsumer( const Session& session, PEVENT_RECORD_CALLBACK callback )
| ^~~~~~~~~~~~~~~~~~~
| PROCESS_DUP_HANDLE
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:591:33: error: 'PROCESSTRACE_HANDLE' was not declared in this scope; did you mean 'PROCESS_DUP_HANDLE'?
591 | static ULONG StopEventConsumer( PROCESSTRACE_HANDLE hEventConsumer )
| ^~~~~~~~~~~~~~~~~~~
| PROCESS_DUP_HANDLE
[path_to_tracy]/tracy/public/client/windows/TracyETW.cpp:599:33: error: 'PROCESSTRACE_HANDLE' was not declared in this scope; did you mean 'PROCESS_DUP_HANDLE'?
599 | static ULONG EventConsumerLoop( PROCESSTRACE_HANDLE hEventConsumer )
| ^~~~~~~~~~~~~~~~~~~
| PROCESS_DUP_HANDLE
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:181:8: error: 'PROCESSTRACE_HANDLE' does not name a type; did you mean 'PROCESS_DUP_HANDLE'?
181 | static PROCESSTRACE_HANDLE consumer_kernel = INVALID_PROCESSTRACE_HANDLE;
| ^~~~~~~~~~~~~~~~~~~
| PROCESS_DUP_HANDLE
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:182:8: error: 'PROCESSTRACE_HANDLE' does not name a type; did you mean 'PROCESS_DUP_HANDLE'?
182 | static PROCESSTRACE_HANDLE consumer_vsync = INVALID_PROCESSTRACE_HANDLE;
| ^~~~~~~~~~~~~~~~~~~
| PROCESS_DUP_HANDLE
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp: In function 'bool tracy::SysTraceStart(int64_t&)':
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:195:24: error: 'struct tracy::etw::Session' has no member named 'handle'
195 | if( session_kernel.handle == 0 )
| ^~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:213:5: error: 'consumer_kernel' was not declared in this scope
213 | consumer_kernel = etw::SetupEventConsumer( session_kernel, EventRecordCallback );
| ^~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:213:28: error: 'SetupEventConsumer' is not a member of 'tracy::etw'; did you mean 'StopEventConsumer'?
213 | consumer_kernel = etw::SetupEventConsumer( session_kernel, EventRecordCallback );
| ^~~~~~~~~~~~~~~~~~
| StopEventConsumer
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:219:23: error: 'struct tracy::etw::Session' has no member named 'handle'
219 | if( session_vsync.handle != 0 )
| ^~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:225:13: error: 'consumer_vsync' was not declared in this scope
225 | consumer_vsync = etw::SetupEventConsumer( session_vsync, EventRecordCallback );
| ^~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:225:35: error: 'SetupEventConsumer' is not a member of 'tracy::etw'; did you mean 'StopEventConsumer'?
225 | consumer_vsync = etw::SetupEventConsumer( session_vsync, EventRecordCallback );
| ^~~~~~~~~~~~~~~~~~
| StopEventConsumer
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp: In lambda function:
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:233:45: error: 'consumer_vsync' is not captured
233 | etw::EventConsumerLoop( consumer_vsync );
| ^~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:229:45: note: the lambda has no capture-default
229 | new(s_threadVsync) Thread( [] (void*) {
| ^
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:225:13: note: 'consumer_vsync' declared here
225 | consumer_vsync = etw::SetupEventConsumer( session_vsync, EventRecordCallback );
| ^~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:233:60: error: 'tracy::etw::EventConsumerLoop' cannot be used as a function
233 | etw::EventConsumerLoop( consumer_vsync );
| ^
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp: In function 'void tracy::SysTraceStop()':
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:247:33: error: 'consumer_vsync' was not declared in this scope
247 | etw::StopEventConsumer( consumer_vsync );
| ^~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:247:48: error: 'tracy::etw::StopEventConsumer' cannot be used as a function
247 | etw::StopEventConsumer( consumer_vsync );
| ^
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:252:29: error: 'consumer_kernel' was not declared in this scope
252 | etw::StopEventConsumer( consumer_kernel );
| ^~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:252:45: error: 'tracy::etw::StopEventConsumer' cannot be used as a function
252 | etw::StopEventConsumer( consumer_kernel );
| ^
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp: In function 'void tracy::SysTraceWorker(void*)':
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:261:29: error: 'consumer_kernel' was not declared in this scope
261 | etw::EventConsumerLoop( consumer_kernel );
| ^~~~~~~~~~~~~~~
[path_to_tracy]/tracy/public/client/TracySysTrace.cpp:261:45: error: 'tracy::etw::EventConsumerLoop' cannot be used as a function
261 | etw::EventConsumerLoop( consumer_kernel );
|