![](/img/trans.png)
[英]Exclude a header file from the dependencies for a build in Visual Studio 2017
[英]Let CMake set the "Exclude From Build" option for a single source file in Visual Studio
在 Visual Studio 中,每个源文件的属性页面中都有一个“从构建中排除”选项,可以将其设置为从构建中排除文件,但使其在源树中保持可见:
有没有办法用 CMake 设置该特定属性? 我找到了一个VS_DEPLOYMENT_CONTENT属性并尝试过但没有成功(它似乎没有做任何事情)。
使用该属性的原因主要是为了将文件保留在项目中,以便能够从 Visual Studio 中打开和编辑它。
提前致谢!
不幸的是,我也找不到如何在同一项目中使用 cmake 为某些文件设置“从构建中排除”的答案。 现在,我已将所有此类文件添加到由add_custom_target
创建的目标中。
if(MSVC)
add_custom_target(myproj.additional SOURCES ${otherHeaders} ${otherSources})
endif()
这将在解决方案中创建一个额外的项目。 该项目中的文件将无法编译,我仍然可以在其中进行编辑和搜索。
另一种选择是为不应编译的源设置HEADER_FILE_ONLY
属性:
if(MSVC)
set_source_files_properties(${otherSources} PROPERTIES
HEADER_FILE_ONLY TRUE
)
endif()
在这种情况下,文件保留在项目中但没有任何标记 - 这些文件的外观与编译的文件没有区别
从 CMake 3.18 开始,您可以使用VS_SETTINGS 。 这允许您设置您喜欢的任何 VS 项目设置。
set_property(SOURCE ${SourceFiles} PROPERTY VS_SETTINGS "ExcludedFromBuild=true")
请注意,您必须使用 vcxproj 文件中写入的名称来设置设置值。 要了解设置的名称,您可以通过 VS IDE 将设置设置为正确的值,保存项目,然后在文本编辑器中打开 vcxproj 文件并搜索正确的设置值对。 例如,在从构建中排除的情况下:
<FXCompile Include="C:\path\to\source\file\file.hlsl">
<ExcludedFromBuild>true</ExcludedFromBuild>
</FXCompile>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.