EXCLUDE_FROM_ALL

在子目录中将此目录属性设置为真值,以从祖先的"all"目标中排除其目标。如果排除,则在父目录中运行例如 make 将默认情况下不会构建该子目录的目标。这不会影响子目录自身的"all"目标。在子目录中运行,例如,make 仍将构建其目标。

EXCLUDE_FROM_ALL 用于子目录包含项目的一个单独部分(有用但不是必需的),例如一组示例或集成的第三方库时。通常,子目录应包含其自己的 project() 命令调用,以便在子目录中生成一个完整的构建系统(例如 Visual Studio IDE 解决方案文件)。请注意,目标间依赖关系优先于此排除。如果父项目构建的目标取决于子目录中的目标,则会被作为目标依赖项而包含在父项目构建系统中,以满足依赖关系。

如果提供了 EXCLUDE_FROM_ALL 参数,则具有以下效果

  • 在子目录或子目录以下定义的目标将不会包含在父目录的 ALL 目标中。这些目标必须由用户显式构建,或者成为将要构建的另一个目标的依赖项。

  • 在子目录或子目录以下定义的目标将从 IDE 项目文件中排除。

  • 安装父目录时,将忽略在子目录或子目录以下定义的任何安装规则。

请注意,这些效果与 EXCLUDE_FROM_ALL 目标属性的效果不同。