C++ 如何忽略子项目中的CMake编译器定义

C++ 如何忽略子项目中的CMake编译器定义,c++,cmake,clang,C++,Cmake,Clang,我有一个主项目,有几个第三方库。我刚刚添加了一个新的第三方项目。我面临的问题是,当主项目编译器定义传递给新项目时,新项目将中断 如何避免将这些定义传递给第三方项目? 另外,如果第三方项目是独立编译的,那么它只需要两个include目录。但是当使用主项目编译时,会有许多额外的目录传递给它 我试图寻找一个set_definition(),但没有发现任何有用的东西。 任何例子或文章的链接都很好。也可能是因为我没有找到正确的解决方案。 谢谢使用全局“添加定义”是一种老方法。在目前的情况下,可能更好地定义

我有一个主项目,有几个第三方库。我刚刚添加了一个新的第三方项目。我面临的问题是,当主项目编译器定义传递给新项目时,新项目将中断

如何避免将这些定义传递给第三方项目? 另外,如果第三方项目是独立编译的,那么它只需要两个include目录。但是当使用主项目编译时,会有许多额外的目录传递给它

我试图寻找一个set_definition(),但没有发现任何有用的东西。 任何例子或文章的链接都很好。也可能是因为我没有找到正确的解决方案。
谢谢

使用全局“添加定义”是一种老方法。在目前的情况下,可能更好地定义编译器标志、每个文件的定义、文件夹、源文件等(在您的情况下是编译定义?)


只需在谷歌上搜索“modern CMake”,你就会在会议上找到如何使用modern CMake的幻灯片和视频。

target\u compile\u定义