我有一个配置文件设置,定义了包含在某些组件中的正确头文件.后来我通过预处理器令牌包含该文件.不幸的是,CMake的依赖扫描程序完全忽略了头文件.
基本上它归结为:
#define HEADER_FILE "somefile.h"
#include HEADER_FILE
Run Code Online (Sandbox Code Playgroud)
CMake不会添加"somefile.h"到此源文件的依赖项列表中!
如何让CMake正确识别这种依赖?
(我知道我可以执行#if 0块并包含所有文件,但这包括其他来源的太多依赖项,或者首先取决于整个目的 - 取决于你如何做)
您可以通过设置OBJECT_DEPENDS属性向源文件添加显式依赖项:
set_property(SOURCE source.cpp APPEND PROPERTY OBJECT_DEPENDS "somefile.h")
Run Code Online (Sandbox Code Playgroud)
您必须对包含配置文件的任何源文件执行此操作.