如何在CMake生成的Visual Studio 2019 C++ DLL项目中启用并配置WPP追踪
解决Visual Studio 2019 CMake项目中配置WPP追踪的问题
你说得没错,VS_SETTINGS属性确实只能用于配置单个源文件的元数据,无法直接修改项目级的vcxproj设置。要在生成的vcxproj中启用WPP追踪并配置扫描文件,有两种简便的方法:
方法一:直接通过CMake目标属性和编译选项设置
可以结合set_target_properties和target_compile_options来完成配置,不需要额外的.props文件:
cmake_minimum_required (VERSION 3.23) include(CMakeParseArguments) project(test_sln) set(CMAKE_GENERATOR_TOOLSET "Visual Studio 16 2019") set_property(GLOBAL PROPERTY USE_FOLDERS ON) # 假设这里已经定义了SOURCES变量包含所有源文件 add_library(test_proj SHARED ${SOURCES}) set_target_properties(test_proj PROPERTIES LINKER_LANGUAGE CXX VS_PLATFORM_TOOLSET "WindowsApplicationForDrivers10.0" # 设置项目级WppEnabled属性 VS_GLOBAL_WppEnabled "true" ) # 添加WPP扫描配置文件的编译选项 target_compile_options(test_proj PRIVATE /Wpp:scanconfig:trace.h )
这段代码会在生成的vcxproj中自动生成以下配置:
<WppEnabled>true</WppEnabled>(通过VS_GLOBAL_WppEnabled设置项目级属性)<WppScanConfigurationData>$(ProjectDir)\trace.h</WppScanConfigurationData>(通过/Wpp:scanconfig编译选项,Visual Studio会自动将该参数映射到对应的项目属性)
方法二:使用自定义.props文件(适合复杂配置)
如果需要添加更多自定义的WPP设置,可以创建一个单独的wpp.props文件,再通过CMake引入:
- 在项目目录下创建
wpp.props文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemDefinitionGroup> <ClCompile> <WppEnabled>true</WppEnabled> <WppScanConfigurationData>$(ProjectDir)\trace.h</WppScanConfigurationData> <!-- 可在此添加更多WPP相关配置,比如WppAdditionalOptions等 --> </ClCompile> </ItemDefinitionGroup> </Project>
- 在CMakeLists.txt中引入这个.props文件:
set_target_properties(test_proj PROPERTIES LINKER_LANGUAGE CXX VS_PLATFORM_TOOLSET "WindowsApplicationForDrivers10.0" # 引入自定义props文件 VS_USER_PROPS "${CMAKE_CURRENT_SOURCE_DIR}\\wpp.props" )
这种方法的优势是可以灵活扩展更多WPP相关的MSBuild属性,适合复杂的追踪配置需求。
内容的提问来源于stack exchange,提问作者user2281752
相关产品推荐
相关产品推荐

