File: Licensing.cmake

package info (click to toggle)
freespace2 24.0.2%2Brepack-1
  • links: PTS, VCS
  • area: non-free
  • in suites: trixie
  • size: 43,188 kB
  • sloc: cpp: 583,107; ansic: 21,729; python: 1,174; sh: 464; makefile: 248; xml: 181
file content (133 lines) | stat: -rw-r--r-- 3,854 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# - 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()