CMP0187

在 4.1 版本中新增。

包含不带扩展名的同名源文件。

在 CMake 4.0 及更早版本中,如果两个源文件名相同,且只有一个文件带扩展名,并且带扩展名的文件在前,则不带扩展名的文件将被从目标中省略。

例如,以下库目标仅将 hello.c 包含在目标中,而省略了文件 hello

add_library(library hello.c hello)

如果省略扩展名的文件在前,带扩展名的文件在后,则两个文件都将包含在目标中。

从 CMake 4.1 开始,CMake 会将两个文件都包含在库目标中。

如果 CMP0115 使用 OLD 行为,此策略将不起作用。

此策略的 OLD 行为是省略不带扩展名的文件。此策略的 NEW 行为是包含它。

此策略已在 CMake 版本 4.1 中引入。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake **不会** 警告,并使用 OLD 行为。

注意

根据定义,策略的 OLD 行为是 不推荐 ,并可能在未来的 CMake 版本中被移除。