# - Building a licensing description file # # Original Author: # 2009-2010 Ryan Pavlik # http://academic.cleardefinition.com # Iowa State University HCI Graduate Program/VRAC # # Copyright Iowa State University 2009-2010. # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) define_property(GLOBAL PROPERTY PROPRIETARY_LICENSES BRIEF_DOCS "Text for proprietary licenses" FULL_DOCS "Text for proprietary licenses") define_property(GLOBAL PROPERTY SHAREALIKE_LICENSES BRIEF_DOCS "Text for share-alike licenses" FULL_DOCS "Text for share-alike licenses (e.g. GPL)") define_property(GLOBAL PROPERTY PERMISSIVE_LICENSES BRIEF_DOCS "Text for permissive licenses" FULL_DOCS "Text for permissive licenses (e.g. BSD, MIT, X11)") define_property(GLOBAL PROPERTY PACKAGES_LICENSED BRIEF_DOCS "List of all packages whose licenses are registered here" FULL_DOCS "List of all packages whose licenses are registered here") define_property(GLOBAL PROPERTY REDISTRIBUTION_WARNINGS BRIEF_DOCS "Text for important redistribution warnings" FULL_DOCS "Text for important redistribution warnings, such as 'This is not redistributable!'") function(add_license LICENSE_TYPE_PROPERTY package license) get_property(def GLOBAL PROPERTY LICENSE_PACKAGE_${package} DEFINED) if(NOT def) define_property(GLOBAL PROPERTY LICENSE_PACKAGE_${package} BRIEF_DOCS "Flag to indicate the addition of the license for ${package}" FULL_DOCS "Flag to indicate the addition of the license for ${package}") get_property(existing GLOBAL PROPERTY ${LICENSE_TYPE_PROPERTY}) set_property(GLOBAL PROPERTY ${LICENSE_TYPE_PROPERTY} "${existing}${license}\n\n") if(ARGN) define_property(GLOBAL PROPERTY LICENSE_EXTRAS_PACKAGE_${package} BRIEF_DOCS "Extras (like URL) for the license for ${package}" FULL_DOCS "Extras (like URL) for the license for ${package}") set_property(GLOBAL PROPERTY LICENSE_EXTRAS_PACKAGE_${package} "${ARGN}") endif() get_property(allpackages GLOBAL PROPERTY PACKAGES_LICENSED) list(APPEND allpackages "${package}") set_property(GLOBAL PROPERTY PACKAGES_LICENSED "${allpackages}") endif() endfunction() function(add_proprietary_license package license) add_license(PROPRIETARY_LICENSES "${package}" "${license}" ${ARGN}) endfunction() function(add_sharealike_license package license) add_license(SHAREALIKE_LICENSES "${package}" "${license}" ${ARGN}) endfunction() function(add_permissive_license package license) add_license(PERMISSIVE_LICENSES "${package}" "${license}" ${ARGN}) endfunction() function(add_redistribution_warning warning) get_property(existing GLOBAL PROPERTY REDISTRIBUTION_WARNINGS) set_property(GLOBAL PROPERTY REDISTRIBUTION_WARNINGS "${warning} ${existing}") endfunction() function(configure_license_file input output) get_property(PACKAGES_LICENSED GLOBAL PROPERTY PACKAGES_LICENSED) if(PACKAGES_LICENSED) list(SORT PACKAGES_LICENSED) set(PACKAGES_LICENSED_BULLETED) foreach(package ${PACKAGES_LICENSED}) set(EXTRAS) get_property(package_extras GLOBAL PROPERTY "LICENSE_EXTRAS_PACKAGE_${package}") if(package_extras) set(EXTRAS " ${package_extras}") endif() set(PACKAGES_LICENSED_BULLETED "${PACKAGES_LICENSED_BULLETED} * ${package}${EXTRAS}\n") endforeach() endif() get_property(REDISTRIBUTION_WARNINGS GLOBAL PROPERTY REDISTRIBUTION_WARNINGS) get_property(PROPRIETARY_LICENSES GLOBAL PROPERTY PROPRIETARY_LICENSES) get_property(SHAREALIKE_LICENSES GLOBAL PROPERTY SHAREALIKE_LICENSES) get_property(PERMISSIVE_LICENSES GLOBAL PROPERTY PERMISSIVE_LICENSES) configure_file("${input}" "${output}" ${ARGN}) endfunction()