From 486c99f7fd7d7a27a6f4c8249ef2e84659ab3d07 Mon Sep 17 00:00:00 2001 From: Martchus Date: Wed, 21 Feb 2018 21:58:27 +0100 Subject: [PATCH] Determine project license automatically --- cmake/modules/BasicConfig.cmake | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cmake/modules/BasicConfig.cmake b/cmake/modules/BasicConfig.cmake index 98316d3..8acc4f0 100644 --- a/cmake/modules/BasicConfig.cmake +++ b/cmake/modules/BasicConfig.cmake @@ -63,6 +63,26 @@ if(NOT META_APP_BUGTRACKER_URL) endif() endif() +# determine license automatically from LICENSE file +if(NOT META_PROJECT_LICENSE) + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + file(READ "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" META_PROJECT_LICENSE_FILE) + elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE") + file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE" META_PROJECT_LICENSE_FILE) + endif() + if(META_PROJECT_LICENSE_FILE MATCHES "GNU GENERAL PUBLIC LICENSE.*Version ([1-9\\.])") + set(META_PROJECT_LICENSE "GPL-${CMAKE_MATCH_1}") + 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") + set(META_PROJECT_LICENSE "MIT") + elseif(META_PROJECT_LICENSE_FILE MATCHES "Mozilla Public License Version ([1-9\\.])") + set(META_PROJECT_LICENSE "MPL-${CMAKE_MATCH_1}") + else() + message(WARNING "Unable to detect license of ${META_PROJECT_NAME}. Set META_PROJECT_LICENSE manually to silence this warning.") + endif() +endif() + # provide variables for other projects built as part of the same subdirs project # to access files from this project get_directory_property(HAS_PARENT PARENT_DIRECTORY)