xcake 0.5.3 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/Gemfile.lock +11 -23
- data/lib/xcake.rb +34 -18
- data/lib/xcake/command/init.rb +1 -1
- data/lib/xcake/command/make.rb +17 -4
- data/lib/xcake/configurable.rb +4 -0
- data/lib/xcake/context.rb +15 -0
- data/lib/xcake/context/xcodeproj_context.rb +49 -0
- data/lib/xcake/core_ext/string.rb +8 -0
- data/lib/xcake/dependency.rb +23 -0
- data/lib/xcake/dependency_provider.rb +28 -0
- data/lib/xcake/file_reference_installer.rb +54 -0
- data/lib/xcake/file_reference_installer/compile_source_file_reference_installer.rb +16 -0
- data/lib/xcake/file_reference_installer/compile_xcdatamodeld_file_reference_installer.rb +25 -0
- data/lib/xcake/file_reference_installer/copy_resources_file_reference_installer.rb +21 -0
- data/lib/xcake/file_reference_installer/copy_xcassets_file_reference_installer.rb +25 -0
- data/lib/xcake/file_reference_installer/header_file_reference_installer.rb +11 -0
- data/lib/xcake/generator.rb +16 -0
- data/lib/xcake/generator/configuration_generator.rb +36 -0
- data/lib/xcake/generator/project_generator.rb +17 -0
- data/lib/xcake/generator/project_metadata_generator.rb +11 -0
- data/lib/xcake/{project_structure_resolver.rb → generator/project_structure_generator.rb} +1 -6
- data/lib/xcake/generator/scheme_generator.rb +16 -0
- data/lib/xcake/generator/target_build_phase_generator.rb +49 -0
- data/lib/xcake/generator/target_custom_build_phase_generator.rb +16 -0
- data/lib/xcake/generator/target_dependency_generator.rb +15 -0
- data/lib/xcake/generator/target_file_reference_generator.rb +59 -0
- data/lib/xcake/generator/target_framework_generator.rb +14 -0
- data/lib/xcake/generator/target_generator.rb +12 -0
- data/lib/xcake/informative.rb +2 -0
- data/lib/xcake/plugin.rb +25 -0
- data/lib/xcake/project.rb +13 -9
- data/lib/xcake/project/sugar.rb +2 -3
- data/lib/xcake/shell_script_build_phase.rb +15 -0
- data/lib/xcake/target.rb +24 -15
- data/lib/xcake/target/sugar.rb +13 -0
- data/lib/xcake/ui.rb +7 -0
- data/lib/xcake/version.rb +1 -1
- data/lib/xcake/visitor.rb +2 -2
- data/lib/xcake/xcode/project.rb +25 -2
- data/xcake.gemspec +1 -0
- metadata +43 -17
- data/LICENSE +0 -201
- data/lib/fastlane_plugin.rb +0 -5
- data/lib/xcake/generator/build_phase.rb +0 -78
- data/lib/xcake/generator/build_phase/compile_source_build_phase.rb +0 -18
- data/lib/xcake/generator/build_phase/compile_xcdatamodeld_build_phase.rb +0 -20
- data/lib/xcake/generator/build_phase/copy_resources_build_phase.rb +0 -17
- data/lib/xcake/generator/build_phase/copy_xcassets_build_phase.rb +0 -21
- data/lib/xcake/generator/build_phase/header_file_build_phase.rb +0 -13
- data/lib/xcake/generator/build_phase_registry.rb +0 -40
- data/lib/xcake/generator/configuration.rb +0 -46
- data/lib/xcake/generator/path.rb +0 -41
- data/lib/xcake/generator/project.rb +0 -64
- data/lib/xcake/generator/target.rb +0 -48
data/lib/xcake/project.rb
CHANGED
@@ -14,10 +14,11 @@ module Xcake
|
|
14
14
|
|
15
15
|
# @!group Configuring a project
|
16
16
|
|
17
|
+
# TODO: Rename to name
|
17
18
|
# @return [String] the name of the project file. This is used as
|
18
19
|
# the filename.
|
19
20
|
#
|
20
|
-
attr_accessor :
|
21
|
+
attr_accessor :name
|
21
22
|
|
22
23
|
# @return [String] the prefix used for Objective-C Classes. This is
|
23
24
|
# used by xcode when creating new files.
|
@@ -48,7 +49,7 @@ module Xcake
|
|
48
49
|
#
|
49
50
|
def initialize(name="Project", &block)
|
50
51
|
|
51
|
-
self.
|
52
|
+
self.name = name
|
52
53
|
self.targets = []
|
53
54
|
|
54
55
|
block.call(self) if block_given?
|
@@ -71,15 +72,17 @@ module Xcake
|
|
71
72
|
target
|
72
73
|
end
|
73
74
|
|
74
|
-
#
|
75
|
+
# @!group Conversion
|
76
|
+
|
77
|
+
def to_s
|
78
|
+
"Project<#{name}>"
|
79
|
+
end
|
80
|
+
|
81
|
+
# @!group Visitable
|
82
|
+
|
75
83
|
def accept(visitor)
|
76
84
|
visitor.visit(self)
|
77
85
|
|
78
|
-
flatten_configurations.each do |c|
|
79
|
-
visitor.visit(c)
|
80
|
-
visitor.leave(c)
|
81
|
-
end
|
82
|
-
|
83
86
|
targets.each do |t|
|
84
87
|
visitor.visit(t)
|
85
88
|
visitor.leave(t)
|
@@ -90,7 +93,8 @@ module Xcake
|
|
90
93
|
|
91
94
|
protected
|
92
95
|
|
93
|
-
# Configurable
|
96
|
+
# @!group Configurable
|
97
|
+
|
94
98
|
def default_settings
|
95
99
|
common_settings = Xcodeproj::Constants::PROJECT_DEFAULT_BUILD_SETTINGS
|
96
100
|
settings = Xcodeproj::Project::ProjectHelper.deep_dup(common_settings[:all])
|
data/lib/xcake/project/sugar.rb
CHANGED
@@ -99,9 +99,8 @@ module Xcake
|
|
99
99
|
t.language = language
|
100
100
|
end
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
#watch_app_target.add_dependency(watch_extension_target)
|
102
|
+
host_target.target_dependencies << watch_app_target
|
103
|
+
watch_app_target.target_dependencies << watch_extension_target
|
105
104
|
|
106
105
|
block.call(watch_app_target, watch_extension_target) if block_given?
|
107
106
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Xcake
|
2
|
+
# This class is used to hold a shell script build phase name
|
3
|
+
# and script contents
|
4
|
+
#
|
5
|
+
class ShellScriptBuildPhase
|
6
|
+
attr_accessor :name
|
7
|
+
attr_accessor :script
|
8
|
+
|
9
|
+
def generate_native_build_phase(target)
|
10
|
+
phase = target.new_shell_script_build_phase(name)
|
11
|
+
phase.shell_script = script
|
12
|
+
phase
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/xcake/target.rb
CHANGED
@@ -32,6 +32,15 @@ module Xcake
|
|
32
32
|
#
|
33
33
|
attr_accessor :language
|
34
34
|
|
35
|
+
# @return [Target] the test target for this target
|
36
|
+
#
|
37
|
+
attr_accessor :test_target
|
38
|
+
|
39
|
+
# @return [Array<Xcodeproj::Project::Object::AbstractBuildPhase>] the list
|
40
|
+
# of custom build phases for the project.
|
41
|
+
#
|
42
|
+
attr_accessor :build_phases
|
43
|
+
|
35
44
|
# @!group File patterns
|
36
45
|
|
37
46
|
#
|
@@ -141,6 +150,10 @@ module Xcake
|
|
141
150
|
#
|
142
151
|
attr_accessor :system_frameworks
|
143
152
|
|
153
|
+
# @return [Array<Target>] targets to use as dependencies
|
154
|
+
#
|
155
|
+
attr_accessor :target_dependencies
|
156
|
+
|
144
157
|
# @param [Proc] block
|
145
158
|
# an optional block that configures the project through the DSL.
|
146
159
|
#
|
@@ -151,6 +164,7 @@ module Xcake
|
|
151
164
|
# end
|
152
165
|
#
|
153
166
|
def initialize(&block)
|
167
|
+
self.build_phases = []
|
154
168
|
block.call(self) if block_given?
|
155
169
|
end
|
156
170
|
|
@@ -166,6 +180,16 @@ module Xcake
|
|
166
180
|
@system_frameworks ||= default_system_frameworks_for self.platform
|
167
181
|
end
|
168
182
|
|
183
|
+
def target_dependencies
|
184
|
+
@target_dependencies ||= []
|
185
|
+
end
|
186
|
+
|
187
|
+
# @!group Conversion
|
188
|
+
|
189
|
+
def to_s
|
190
|
+
"Target<#{name}>"
|
191
|
+
end
|
192
|
+
|
169
193
|
protected
|
170
194
|
|
171
195
|
def default_system_frameworks_for(platform)
|
@@ -208,20 +232,5 @@ module Xcake
|
|
208
232
|
type,
|
209
233
|
language).merge!(default_settings)
|
210
234
|
end
|
211
|
-
|
212
|
-
#Visitable
|
213
|
-
|
214
|
-
public
|
215
|
-
|
216
|
-
def accept(visitor)
|
217
|
-
visitor.visit(self)
|
218
|
-
|
219
|
-
flatten_configurations.each do |c|
|
220
|
-
visitor.visit(c)
|
221
|
-
visitor.leave(c)
|
222
|
-
end
|
223
|
-
|
224
|
-
visitor.leave(self)
|
225
|
-
end
|
226
235
|
end
|
227
236
|
end
|
data/lib/xcake/ui.rb
ADDED
data/lib/xcake/version.rb
CHANGED
data/lib/xcake/visitor.rb
CHANGED
@@ -43,7 +43,7 @@ module Xcake
|
|
43
43
|
item_name = item_name(item)
|
44
44
|
|
45
45
|
method = "visit_#{item_name}"
|
46
|
-
send(method, item)
|
46
|
+
send(method, item) if respond_to? method
|
47
47
|
end
|
48
48
|
|
49
49
|
# This is called when a visitor is leaving a
|
@@ -61,7 +61,7 @@ module Xcake
|
|
61
61
|
item_name = item_name(item)
|
62
62
|
|
63
63
|
method = "leave_#{item_name}"
|
64
|
-
send(method, item)
|
64
|
+
send(method, item) if respond_to? method
|
65
65
|
end
|
66
66
|
|
67
67
|
private
|
data/lib/xcake/xcode/project.rb
CHANGED
@@ -86,7 +86,7 @@ module Xcake
|
|
86
86
|
# @return [Target] new xcode target
|
87
87
|
#
|
88
88
|
def new_target(target)
|
89
|
-
native_target =
|
89
|
+
native_target = new(Xcodeproj::Project::Object::PBXNativeTarget)
|
90
90
|
native_target.name = target.name
|
91
91
|
native_target.product_name = target.name
|
92
92
|
|
@@ -97,7 +97,7 @@ module Xcake
|
|
97
97
|
native_target.product_type = target.type
|
98
98
|
end
|
99
99
|
|
100
|
-
native_target.build_configuration_list =
|
100
|
+
native_target.build_configuration_list = new(Xcodeproj::Project::Object::XCConfigurationList)
|
101
101
|
|
102
102
|
product = self.products_group.new_product_ref_for_target(native_target.product_name, native_target.product_type)
|
103
103
|
native_target.product_reference = product
|
@@ -106,6 +106,29 @@ module Xcake
|
|
106
106
|
native_target
|
107
107
|
end
|
108
108
|
|
109
|
+
# Creates a new xcode configuration from the configuration DSL
|
110
|
+
#
|
111
|
+
# @param [Configurarion] configuration
|
112
|
+
# configuration DSL to create target from
|
113
|
+
#
|
114
|
+
# @return [Configurarion] new xcode configuration
|
115
|
+
#
|
116
|
+
def new_configuration(configuration)
|
117
|
+
new(Xcodeproj::Project::Object::XCBuildConfiguration)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Creates a new xcode group from the node
|
121
|
+
#
|
122
|
+
# @param [Node] node
|
123
|
+
# configuration DSL to create target from
|
124
|
+
#
|
125
|
+
# @return [Group] new xcode group
|
126
|
+
#
|
127
|
+
def new_group(node)
|
128
|
+
return main_group unless node.parent
|
129
|
+
main_group.find_subpath(node.parent.path, true)
|
130
|
+
end
|
131
|
+
|
109
132
|
# Finds a unit test target for a xcode target
|
110
133
|
#
|
111
134
|
# @param [Target] target
|
data/xcake.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Campbell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 0.3.2
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: molinillo
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
description: Create your Xcode projects automatically using a stupid simple DSL.
|
154
168
|
email:
|
155
169
|
- james@supmenow.com
|
@@ -167,7 +181,6 @@ files:
|
|
167
181
|
- CODE_OF_CONDUCT.md
|
168
182
|
- Gemfile
|
169
183
|
- Gemfile.lock
|
170
|
-
- LICENSE
|
171
184
|
- LICENSE.txt
|
172
185
|
- README.md
|
173
186
|
- Rakefile
|
@@ -181,7 +194,6 @@ files:
|
|
181
194
|
- docs/Getting Started.md
|
182
195
|
- docs/Hooks.md
|
183
196
|
- docs/Xcode Project Support.md
|
184
|
-
- lib/fastlane_plugin.rb
|
185
197
|
- lib/xcake.rb
|
186
198
|
- lib/xcake/command.rb
|
187
199
|
- lib/xcake/command/init.rb
|
@@ -190,27 +202,41 @@ files:
|
|
190
202
|
- lib/xcake/configuration.rb
|
191
203
|
- lib/xcake/configuration/proxies/preproccessor_definitions_setting_proxy.rb
|
192
204
|
- lib/xcake/configuration/sugar.rb
|
205
|
+
- lib/xcake/context.rb
|
206
|
+
- lib/xcake/context/xcodeproj_context.rb
|
193
207
|
- lib/xcake/core_ext/string.rb
|
208
|
+
- lib/xcake/dependency.rb
|
209
|
+
- lib/xcake/dependency_provider.rb
|
194
210
|
- lib/xcake/fastlane/xcake.rb
|
195
|
-
- lib/xcake/
|
196
|
-
- lib/xcake/
|
197
|
-
- lib/xcake/
|
198
|
-
- lib/xcake/
|
199
|
-
- lib/xcake/
|
200
|
-
- lib/xcake/
|
201
|
-
- lib/xcake/generator
|
202
|
-
- lib/xcake/generator/
|
203
|
-
- lib/xcake/generator/
|
204
|
-
- lib/xcake/generator/
|
205
|
-
- lib/xcake/generator/
|
211
|
+
- lib/xcake/file_reference_installer.rb
|
212
|
+
- lib/xcake/file_reference_installer/compile_source_file_reference_installer.rb
|
213
|
+
- lib/xcake/file_reference_installer/compile_xcdatamodeld_file_reference_installer.rb
|
214
|
+
- lib/xcake/file_reference_installer/copy_resources_file_reference_installer.rb
|
215
|
+
- lib/xcake/file_reference_installer/copy_xcassets_file_reference_installer.rb
|
216
|
+
- lib/xcake/file_reference_installer/header_file_reference_installer.rb
|
217
|
+
- lib/xcake/generator.rb
|
218
|
+
- lib/xcake/generator/configuration_generator.rb
|
219
|
+
- lib/xcake/generator/project_generator.rb
|
220
|
+
- lib/xcake/generator/project_metadata_generator.rb
|
221
|
+
- lib/xcake/generator/project_structure_generator.rb
|
222
|
+
- lib/xcake/generator/scheme_generator.rb
|
223
|
+
- lib/xcake/generator/target_build_phase_generator.rb
|
224
|
+
- lib/xcake/generator/target_custom_build_phase_generator.rb
|
225
|
+
- lib/xcake/generator/target_dependency_generator.rb
|
226
|
+
- lib/xcake/generator/target_file_reference_generator.rb
|
227
|
+
- lib/xcake/generator/target_framework_generator.rb
|
228
|
+
- lib/xcake/generator/target_generator.rb
|
206
229
|
- lib/xcake/informative.rb
|
207
230
|
- lib/xcake/node.rb
|
231
|
+
- lib/xcake/plugin.rb
|
208
232
|
- lib/xcake/project.rb
|
209
233
|
- lib/xcake/project/hooks.rb
|
210
234
|
- lib/xcake/project/sugar.rb
|
211
|
-
- lib/xcake/project_structure_resolver.rb
|
212
235
|
- lib/xcake/resources/Cakefile
|
236
|
+
- lib/xcake/shell_script_build_phase.rb
|
213
237
|
- lib/xcake/target.rb
|
238
|
+
- lib/xcake/target/sugar.rb
|
239
|
+
- lib/xcake/ui.rb
|
214
240
|
- lib/xcake/version.rb
|
215
241
|
- lib/xcake/visitable.rb
|
216
242
|
- lib/xcake/visitor.rb
|
@@ -238,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
238
264
|
version: '0'
|
239
265
|
requirements: []
|
240
266
|
rubyforge_project:
|
241
|
-
rubygems_version: 2.
|
267
|
+
rubygems_version: 2.4.8
|
242
268
|
signing_key:
|
243
269
|
specification_version: 4
|
244
270
|
summary: DSL for Xcode Projects.
|
data/LICENSE
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
The Artistic License 2.0
|
2
|
-
|
3
|
-
Copyright (c) 2015 James Campbell
|
4
|
-
|
5
|
-
Everyone is permitted to copy and distribute verbatim copies
|
6
|
-
of this license document, but changing it is not allowed.
|
7
|
-
|
8
|
-
Preamble
|
9
|
-
|
10
|
-
This license establishes the terms under which a given free software
|
11
|
-
Package may be copied, modified, distributed, and/or redistributed.
|
12
|
-
The intent is that the Copyright Holder maintains some artistic
|
13
|
-
control over the development of that Package while still keeping the
|
14
|
-
Package available as open source and free software.
|
15
|
-
|
16
|
-
You are always permitted to make arrangements wholly outside of this
|
17
|
-
license directly with the Copyright Holder of a given Package. If the
|
18
|
-
terms of this license do not permit the full use that you propose to
|
19
|
-
make of the Package, you should contact the Copyright Holder and seek
|
20
|
-
a different licensing arrangement.
|
21
|
-
|
22
|
-
Definitions
|
23
|
-
|
24
|
-
"Copyright Holder" means the individual(s) or organization(s)
|
25
|
-
named in the copyright notice for the entire Package.
|
26
|
-
|
27
|
-
"Contributor" means any party that has contributed code or other
|
28
|
-
material to the Package, in accordance with the Copyright Holder's
|
29
|
-
procedures.
|
30
|
-
|
31
|
-
"You" and "your" means any person who would like to copy,
|
32
|
-
distribute, or modify the Package.
|
33
|
-
|
34
|
-
"Package" means the collection of files distributed by the
|
35
|
-
Copyright Holder, and derivatives of that collection and/or of
|
36
|
-
those files. A given Package may consist of either the Standard
|
37
|
-
Version, or a Modified Version.
|
38
|
-
|
39
|
-
"Distribute" means providing a copy of the Package or making it
|
40
|
-
accessible to anyone else, or in the case of a company or
|
41
|
-
organization, to others outside of your company or organization.
|
42
|
-
|
43
|
-
"Distributor Fee" means any fee that you charge for Distributing
|
44
|
-
this Package or providing support for this Package to another
|
45
|
-
party. It does not mean licensing fees.
|
46
|
-
|
47
|
-
"Standard Version" refers to the Package if it has not been
|
48
|
-
modified, or has been modified only in ways explicitly requested
|
49
|
-
by the Copyright Holder.
|
50
|
-
|
51
|
-
"Modified Version" means the Package, if it has been changed, and
|
52
|
-
such changes were not explicitly requested by the Copyright
|
53
|
-
Holder.
|
54
|
-
|
55
|
-
"Original License" means this Artistic License as Distributed with
|
56
|
-
the Standard Version of the Package, in its current version or as
|
57
|
-
it may be modified by The Perl Foundation in the future.
|
58
|
-
|
59
|
-
"Source" form means the source code, documentation source, and
|
60
|
-
configuration files for the Package.
|
61
|
-
|
62
|
-
"Compiled" form means the compiled bytecode, object code, binary,
|
63
|
-
or any other form resulting from mechanical transformation or
|
64
|
-
translation of the Source form.
|
65
|
-
|
66
|
-
|
67
|
-
Permission for Use and Modification Without Distribution
|
68
|
-
|
69
|
-
(1) You are permitted to use the Standard Version and create and use
|
70
|
-
Modified Versions for any purpose without restriction, provided that
|
71
|
-
you do not Distribute the Modified Version.
|
72
|
-
|
73
|
-
|
74
|
-
Permissions for Redistribution of the Standard Version
|
75
|
-
|
76
|
-
(2) You may Distribute verbatim copies of the Source form of the
|
77
|
-
Standard Version of this Package in any medium without restriction,
|
78
|
-
either gratis or for a Distributor Fee, provided that you duplicate
|
79
|
-
all of the original copyright notices and associated disclaimers. At
|
80
|
-
your discretion, such verbatim copies may or may not include a
|
81
|
-
Compiled form of the Package.
|
82
|
-
|
83
|
-
(3) You may apply any bug fixes, portability changes, and other
|
84
|
-
modifications made available from the Copyright Holder. The resulting
|
85
|
-
Package will still be considered the Standard Version, and as such
|
86
|
-
will be subject to the Original License.
|
87
|
-
|
88
|
-
|
89
|
-
Distribution of Modified Versions of the Package as Source
|
90
|
-
|
91
|
-
(4) You may Distribute your Modified Version as Source (either gratis
|
92
|
-
or for a Distributor Fee, and with or without a Compiled form of the
|
93
|
-
Modified Version) provided that you clearly document how it differs
|
94
|
-
from the Standard Version, including, but not limited to, documenting
|
95
|
-
any non-standard features, executables, or modules, and provided that
|
96
|
-
you do at least ONE of the following:
|
97
|
-
|
98
|
-
(a) make the Modified Version available to the Copyright Holder
|
99
|
-
of the Standard Version, under the Original License, so that the
|
100
|
-
Copyright Holder may include your modifications in the Standard
|
101
|
-
Version.
|
102
|
-
|
103
|
-
(b) ensure that installation of your Modified Version does not
|
104
|
-
prevent the user installing or running the Standard Version. In
|
105
|
-
addition, the Modified Version must bear a name that is different
|
106
|
-
from the name of the Standard Version.
|
107
|
-
|
108
|
-
(c) allow anyone who receives a copy of the Modified Version to
|
109
|
-
make the Source form of the Modified Version available to others
|
110
|
-
under
|
111
|
-
|
112
|
-
(i) the Original License or
|
113
|
-
|
114
|
-
(ii) a license that permits the licensee to freely copy,
|
115
|
-
modify and redistribute the Modified Version using the same
|
116
|
-
licensing terms that apply to the copy that the licensee
|
117
|
-
received, and requires that the Source form of the Modified
|
118
|
-
Version, and of any works derived from it, be made freely
|
119
|
-
available in that license fees are prohibited but Distributor
|
120
|
-
Fees are allowed.
|
121
|
-
|
122
|
-
|
123
|
-
Distribution of Compiled Forms of the Standard Version
|
124
|
-
or Modified Versions without the Source
|
125
|
-
|
126
|
-
(5) You may Distribute Compiled forms of the Standard Version without
|
127
|
-
the Source, provided that you include complete instructions on how to
|
128
|
-
get the Source of the Standard Version. Such instructions must be
|
129
|
-
valid at the time of your distribution. If these instructions, at any
|
130
|
-
time while you are carrying out such distribution, become invalid, you
|
131
|
-
must provide new instructions on demand or cease further distribution.
|
132
|
-
If you provide valid instructions or cease distribution within thirty
|
133
|
-
days after you become aware that the instructions are invalid, then
|
134
|
-
you do not forfeit any of your rights under this license.
|
135
|
-
|
136
|
-
(6) You may Distribute a Modified Version in Compiled form without
|
137
|
-
the Source, provided that you comply with Section 4 with respect to
|
138
|
-
the Source of the Modified Version.
|
139
|
-
|
140
|
-
|
141
|
-
Aggregating or Linking the Package
|
142
|
-
|
143
|
-
(7) You may aggregate the Package (either the Standard Version or
|
144
|
-
Modified Version) with other packages and Distribute the resulting
|
145
|
-
aggregation provided that you do not charge a licensing fee for the
|
146
|
-
Package. Distributor Fees are permitted, and licensing fees for other
|
147
|
-
components in the aggregation are permitted. The terms of this license
|
148
|
-
apply to the use and Distribution of the Standard or Modified Versions
|
149
|
-
as included in the aggregation.
|
150
|
-
|
151
|
-
(8) You are permitted to link Modified and Standard Versions with
|
152
|
-
other works, to embed the Package in a larger work of your own, or to
|
153
|
-
build stand-alone binary or bytecode versions of applications that
|
154
|
-
include the Package, and Distribute the result without restriction,
|
155
|
-
provided the result does not expose a direct interface to the Package.
|
156
|
-
|
157
|
-
|
158
|
-
Items That are Not Considered Part of a Modified Version
|
159
|
-
|
160
|
-
(9) Works (including, but not limited to, modules and scripts) that
|
161
|
-
merely extend or make use of the Package, do not, by themselves, cause
|
162
|
-
the Package to be a Modified Version. In addition, such works are not
|
163
|
-
considered parts of the Package itself, and are not subject to the
|
164
|
-
terms of this license.
|
165
|
-
|
166
|
-
|
167
|
-
General Provisions
|
168
|
-
|
169
|
-
(10) Any use, modification, and distribution of the Standard or
|
170
|
-
Modified Versions is governed by this Artistic License. By using,
|
171
|
-
modifying or distributing the Package, you accept this license. Do not
|
172
|
-
use, modify, or distribute the Package, if you do not accept this
|
173
|
-
license.
|
174
|
-
|
175
|
-
(11) If your Modified Version has been derived from a Modified
|
176
|
-
Version made by someone other than you, you are nevertheless required
|
177
|
-
to ensure that your Modified Version complies with the requirements of
|
178
|
-
this license.
|
179
|
-
|
180
|
-
(12) This license does not grant you the right to use any trademark,
|
181
|
-
service mark, tradename, or logo of the Copyright Holder.
|
182
|
-
|
183
|
-
(13) This license includes the non-exclusive, worldwide,
|
184
|
-
free-of-charge patent license to make, have made, use, offer to sell,
|
185
|
-
sell, import and otherwise transfer the Package with respect to any
|
186
|
-
patent claims licensable by the Copyright Holder that are necessarily
|
187
|
-
infringed by the Package. If you institute patent litigation
|
188
|
-
(including a cross-claim or counterclaim) against any party alleging
|
189
|
-
that the Package constitutes direct or contributory patent
|
190
|
-
infringement, then this Artistic License to you shall terminate on the
|
191
|
-
date that such litigation is filed.
|
192
|
-
|
193
|
-
(14) Disclaimer of Warranty:
|
194
|
-
THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
|
195
|
-
IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
|
196
|
-
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
197
|
-
NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
|
198
|
-
LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
|
199
|
-
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
200
|
-
DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
|
201
|
-
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|