From 3f072549a6920f3b2d22d8e0190cc0cf18f2cd2b Mon Sep 17 00:00:00 2001 From: Martchus Date: Wed, 12 Oct 2022 23:41:22 +0200 Subject: [PATCH] Detect whether GPL license version is "-or-later" automatically --- cmake/modules/BasicConfig.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmake/modules/BasicConfig.cmake b/cmake/modules/BasicConfig.cmake index 8aac245..a56d82a 100644 --- a/cmake/modules/BasicConfig.cmake +++ b/cmake/modules/BasicConfig.cmake @@ -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")