CMAKE_PROJECT_SPDX_LICENSE¶
版本 4.2 中添加。
注意
实验性。受 CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_INFO 控制。
顶级项目的许可证。
此变量保存了项目在顶级 CMakeLists.txt 文件中通过 project() 命令指定的许可证表达式。如果顶级 CMakeLists.txt 包含多个 project() 调用,则该顶级 CMakeLists.txt 中最后调用的那个将决定 CMAKE_PROJECT_SPDX_LICENSE 的值。例如,请考虑以下顶级 CMakeLists.txt:
cmake_minimum_required(VERSION 4.2)
project(First SPDX_LICENSE "BSD-3-Clause")
project(Second SPDX_LICENSE "BSD-3-Clause AND CC-BY-SA-4.0")
add_subdirectory(sub)
project(Third SPDX_LICENSE "BSD-3-Clause AND CC0-1.0")
以及以下内容的 sub/CMakeLists.txt:
project(SubProj SPDX_LICENSE Apache-2.0)
message("CMAKE_PROJECT_SPDX_LICENSE = ${CMAKE_PROJECT_SPDX_LICENSE}")
来自顶级 `CMakeLists.txt` 的最后看到的 `project()` 命令将是 `project(Second ...)`,因此这将打印:
CMAKE_PROJECT_SPDX_LICENSE = BSD-3-Clause AND CC-BY-SA-4.0
要获取当前目录范围或以上最近一次调用 project() 的版本,请参阅 PROJECT_SPDX_LICENSE 变量。