Detect whether GPL license version is "-or-later" automatically

This commit is contained in:
Martchus 2022-10-12 23:41:22 +02:00
parent aa31d441d7
commit 3f072549a6
1 changed files with 14 additions and 0 deletions

View File

@ -158,8 +158,22 @@ if (NOT META_PROJECT_LICENSE)
elseif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../../LICENSE" META_PROJECT_LICENSE_FILE)
endif ()
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/README.md" META_PROJECT_README_FILE)
elseif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../README.md")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../README.md" META_PROJECT_README_FILE)
elseif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../README.md")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../../README.md" META_PROJECT_README_FILE)
endif ()
if (META_PROJECT_LICENSE_FILE MATCHES "GNU GENERAL PUBLIC LICENSE.*Version ([1-9\\.]*)")
set(META_PROJECT_LICENSE "GPL-${CMAKE_MATCH_1}")
set(OR_LATER_REGEX "\\[${META_PROJECT_LICENSE}-or-later\\]\\(LICENSE\\)")
if (NOT META_PROJECT_LICENSE MATCHES "\\.")
set(META_PROJECT_LICENSE "${META_PROJECT_LICENSE}.0")
endif ()
if (META_PROJECT_README_FILE MATCHES "${OR_LATER_REGEX}")
set(META_PROJECT_LICENSE "${META_PROJECT_LICENSE}+")
endif ()
elseif (META_PROJECT_LICENSE_FILE MATCHES "GNU LESSER GENERAL PUBLIC LICENSE.*Version ([1-9\\.]*)")
set(META_PROJECT_LICENSE "LGPL-${CMAKE_MATCH_1}")
elseif (META_PROJECT_LICENSE_FILE MATCHES "MIT License")