在 C# 项目的 CMakeLists.txt 中,我可以为项目设置 LangVersion:
set( CMAKE_CSharp_FLAGS "-langversion:8" )
这最终会出现在生成的 .csproj 文件中:
<LangVersion>8</LangVersion>
我还想设置 Nullable:
set( CMAKE_CSharp_FLAGS "-langversion:8 -nullable" )
我在生成的 .csproj 文件中期望:
<Nullable>enabled</Nullable>
我在生成的 .csproj 文件中观察到:
<AdditionalOptions>-nullable</AdditionalOptions>
(随后出现有关可为空注释等的 CS9632 警告)
CMake 版本为 3.30.5。
如何在CMakeLists.txt中启用可空引用?
到目前为止,我发现实现这项工作的唯一方法是设置
VS_GLOBAL_Nullable
目标属性:
set_property( TARGET MyTarget PROPERTY VS_GLOBAL_Nullable "enabled" )
感觉有点恶心。应该可以全局设置,但是
set_property( GLOBAL PROPERTY VS_GLOBAL_Nullable "enabled" )
也不起作用。