stk-code_catmod/lib/wiiuse/cmake/Licensing.cmake

134 lines
3.8 KiB
CMake

# - Building a licensing description file
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# 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()