EXCLUDE_FROM_ALL¶
在子目录上将此目录属性设置为真值,可以将该子目录中的目标从其父目录的“all”目标中排除。如果被排除,在父目录中运行例如 make 将默认不构建子目录中的目标。这不会影响子目录自身的“all”目标。例如,在子目录内部运行 make 仍然会构建其目标。
EXCLUDE_FROM_ALL 适用于当子目录包含项目的独立部分,但该部分并非必需时,例如一组示例,或者例如一个集成的第三方库。通常,子目录应包含自己的 project() 命令调用,以便在子目录中生成完整的构建系统(例如 Visual Studio IDE 解决方案文件)。请注意,目标间的依赖关系会覆盖此排除。如果父项目构建的目标依赖于子目录中的一个目标,则该依赖目标将被包含在父项目构建系统中以满足依赖关系。
如果提供了 EXCLUDE_FROM_ALL 参数,它将产生以下效果:
在子目录或其下定义的目标将不会包含在父目录的
ALL目标中。这些目标必须由用户显式构建,或者成为将要构建的另一个目标的依赖项。在子目录或其下定义的目标将被排除在 IDE 项目文件之外。
在安装父目录时,在子目录或其下定义的任何安装规则都将被忽略。
请注意,这些效果与 EXCLUDE_FROM_ALL 目标属性的效果不同。