diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2009-10-01 21:21:28 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2009-10-01 21:21:28 (GMT) |
commit | f9687e328f7ea64ea6384aae11af36fdd3a12643 (patch) | |
tree | 91e2555b44011705d3188f11d7b7598f29c0ba7b /Tests/CMakeTests/ModuleNoticesTest.cmake.in | |
parent | 3c7354c1cd9fb081df8b3f4faef5160ea83f584f (diff) | |
download | CMake-f9687e328f7ea64ea6384aae11af36fdd3a12643.zip CMake-f9687e328f7ea64ea6384aae11af36fdd3a12643.tar.gz CMake-f9687e328f7ea64ea6384aae11af36fdd3a12643.tar.bz2 |
Merge in changes to CMake-2-8 RC 2
Diffstat (limited to 'Tests/CMakeTests/ModuleNoticesTest.cmake.in')
-rw-r--r-- | Tests/CMakeTests/ModuleNoticesTest.cmake.in | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Tests/CMakeTests/ModuleNoticesTest.cmake.in b/Tests/CMakeTests/ModuleNoticesTest.cmake.in new file mode 100644 index 0000000..4d295ef --- /dev/null +++ b/Tests/CMakeTests/ModuleNoticesTest.cmake.in @@ -0,0 +1,46 @@ +# Regex to match copyright/license notices. +# We require the Kitware copyright on the first line, but this can +# match any additional copyright holder notices. +set(notice_regex " +#============================================================================= +# Copyright (20[0-9][0-9]-)?20[0-9][0-9] Kitware[^\n]+( +# Copyright (20[0-9][0-9]-)?20[0-9][0-9] [^\n]+)* +# +# Distributed under the OSI-approved BSD License \\(the \"License\"\\); +# see accompanying file Copyright\\.txt for details\\. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\\. +# See the License for more information\\. +#============================================================================= +# \\(To distributed this file outside of CMake, substitute the full +# License text for the above reference.\\) +") +string(REPLACE "\n" "\r?\n" notice_regex "${notice_regex}") +string(REPLACE "\r\r" "\r" notice_regex "${notice_regex}") + +# Modules that do not require our notice. +set(notice_exceptions + FindCUDA.cmake # MIT License, distributed here from upstream project + ) + +# Load the list of modules to check. +set(dir "@CMake_SOURCE_DIR@/Modules") +file(GLOB all_modules RELATIVE "${dir}" "${dir}/*.cmake") +list(REMOVE_ITEM all_modules ${notice_exceptions}) + +# Check each module. +set(notice_missing) +foreach(module ${all_modules}) + message(STATUS "module: ${module}") + file(READ "${dir}/${module}" module_content) + if(NOT "${module_content}" MATCHES "${notice_regex}") + set(notice_missing "${notice_missing} ${module}\n") + endif() +endforeach() + +# Report the list of bad modules. +if(notice_missing) + message(FATAL_ERROR + "Some modules do not have a valid copyright notice:\n${notice_missing}") +endif() |