EXCLUDE_FROM_ALL

将此目录属性设置为子目录上的真值,以将其目标从其祖先的“all”目标中排除。 如果被排除,例如在父目录中运行 make 默认情况下将不会构建子目录中的目标。 这不会影响子目录本身的“all”目标。 例如在子目录内部运行 make 仍然会构建其目标。

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

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

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

  • 在子目录或更低级别中定义的目标将从 IDE 项目文件中排除。

  • 安装父目录时,将忽略在子目录或更低级别中定义的任何安装规则。

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