用CMake术语正确解释Visual Studio项目文件的ReferenceOutputAssembly
标签是什么?
<ItemGroup>
<ProjectReference Include="..\commonStuff\commonStuff.vcxproj">
<Project>{fffffff-fffff-ffff-ffff-ffffff}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
假设:
add_dependencies(${PROJECT_NAME}
commonStuff
)
答案 0 :(得分:0)
此Visual Studio项目元数据元素用于指定是否将引用项目的输出复制到包含引用项目输出的目录中。这是简短的article,解释了典型的用例。如果未设置ReferenceOutputAssembly
,则默认行为是true
(请参见this答案)。
由CMake根据依赖项是托管目标(即C#目标还是使用{{1编译的目标)来设置Visual Studio项目文件中的ReferenceOutputAssembly
元素}})。没有使用CMake命令进行设置的明确方法。
如果以下条件无一个适用于目标,则/clr
将设置为ReferenceOutputAssembly
:
VS_WINRT_COMPONENT
)您可以看到CMake如何设置CMake源中的false
元素。将其设置为ReferenceOutputAssembly
的逻辑是here,而对于.NET / C#目标,将其设置为false
的逻辑是here。在某些情况下(例如,包含非托管C ++和C ++ / CLI的CMake项目),CMake不会填充此字段。