要从 CMake 在 Visual Studio 中设置自定义项目设置,您可以使用 XML 文件作为模板,该模板可以从 CMake 配置为用作.user
文件。
在我的工作中,我们使用它来设置自定义调试参数。
检查包含生成.vcxproj
文件的目录以获取文件中的用户设置.user
。这是我们使用的示例UserTemplate.vcxproj.user
文件的片段。
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="9.00"
ShowAllFiles="false"
>
<Configurations>
<Configuration
Name="Debug|@USERFILE_PLATFORM@"
>
<DebugSettings
Command="@USERFILE_COMMAND_DEBUG@"
WorkingDirectory="@USERFILE_WORKING_DIRECTORY_DEBUG@"
CommandArguments="@USERFILE_COMMAND_ARGUMENTS_DEBUG@"
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="@USERFILE_REMOTE_MACHINE_DEBUG@"
<!-- More settings removed for snippet -->
/>
</Configuration>
<!-- Rest of Configurations -->
UserTemplate.vcxproj.user
设置 PATH 变量的另一个示例 是:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=..\Your_path;%PATH%".</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
将文件设置在您的UserTemplate.vcxproj.user
文件旁边CMakeLists.txt
,您可以将任何需要的变量从 CMake 注入到.vcxproj.user
您构建的项目的文件中。在 CMake 中,您可以设置适当的 CMake 变量(如果需要,还可以在模板文件中添加更多变量)。接下来,您可以执行类似的操作来配置文件。
# Find user and system name
SET(SYSTEM_NAME $ENV{USERDOMAIN} CACHE STRING SystemName)
SET(USER_NAME $ENV{USERNAME} CACHE STRING UserName)
# Configure the template file
SET(USER_FILE ${_projectName}.vcxproj.${SYSTEM_NAME}.${USER_NAME}.user)
SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
CONFIGURE_FILE(UserTemplate.vcxproj.user${USER_FILE} @ONLY)
如果你不关心系统和用户名,下面的配置就足够了。
# Configure the template file
SET(USER_FILE ${_projectName}.vcxproj.user)
SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
CONFIGURE_FILE(UserTemplate.vcxproj.user ${USER_FILE} @ONLY)