【发布时间】:2011-11-24 00:17:36
【问题描述】:
我正在使用 CMake 2.8.1(也在 CMake 2.8.5 上尝试过)。我正在使用 VS2008 的 Visual Studio 生成器。我想在某些源文件上选择性地应用编译标志,而不是其他文件,并且所有这些文件都进入同一个静态库(此时将库拆分为两个不同的目标不是一个选项)。在这种情况下我不能使用set_target_properties,因为编译标志必须不同。但是我发现了一些很奇怪的东西。以下作品(我看到 /flubber 选项出现在 CMake 生成的 .vcproj 文件的 AdditionalOptions 字段中的作品被定义):
set_property(SOURCE file1.cpp file2.cpp
PROPERTY COMPILE_FLAGS /flubber
)
但这不起作用:
set_property(SOURCE file1.cpp file2.cpp
PROPERTY COMPILE_FLAGS /GR
)
为什么 CMake 会过滤掉或忽略 /GR 选项?这是 CMake 错误还是故意的?
现在这个问题有点做作,因为在 VS2005 左右,/GR 选项被定义为默认打开(给出 RTTI),所以我真的不必指定它。但这不是重点,因为还有其他以“/G”开头的标志完全有效,希望在一个源文件上指定,但不是另一个,并且在同一个静态库目标中。
【问题讨论】:
标签: visual-studio visual-studio-2008 cmake