如何在 cmake 2.8.12 中删除每个目标的定义

10 cmake

我正在使用 cmake 2.8.12

我通过调用add_definitions()使用具有相同定义的多个目标。我想了解如何删除单个目标的这些定义,并用其他一些定义默认定义替换它们,就像我没有调用 add_definitions() 一样。

Rém*_*émi 8

我在那里找到了解决方案:

https://gitlab.kitware.com/cmake/cmake/issues/19796

这是删除 NOMINMAX 定义的一种方法:

get_target_property(defs someTarget COMPILE_DEFINITIONS)
list(FILTER defs EXCLUDE REGEX [[^NOMINMAX$]])
set_property(TARGET someTarget PROPERTY COMPILE_DEFINITIONS ${defs})
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说对 add_compile_definitions 不起作用。当我尝试打印 defs 时,它不会说找不到。 (3认同)