This repository has been archived by the owner on Mar 19, 2021. It is now read-only.
/
buildfile
102 lines (91 loc) · 3.08 KB
/
buildfile
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
require 'buildr/bnd'
require 'buildr/git_auto_version'
require 'buildr/single_intermediate_layout'
require 'buildr/top_level_generate_dir'
require 'buildr/gpg'
desc 'SwungWeave: Bytecode weaver to simplify Swing UI code'
define 'swung-weave' do
project.group = 'org.realityforge.swung-weave'
# Must be Java6 to work under OSX IDEA
compile.options.source = '1.6'
compile.options.target = '1.6'
compile.options.lint = 'all'
project.version = ENV['PRODUCT_VERSION'] if ENV['PRODUCT_VERSION']
pom.add_apache_v2_license
pom.add_github_project('realityforge/swung_weave')
pom.add_developer('realityforge', 'Peter Donald')
pom.add_developer('behrangsa', 'Behrang Saeedzadeh')
ipr.extra_modules << 'idea/idea.iml'
desc 'SwungWeave: API and Annotations'
define 'api' do
test.using :testng
test.using :properties => {'java.awt.headless' => true}
package(:bundle).tap do |bnd|
bnd['Export-Package'] = "org.realityforge.swung_weave.*;version=#{version}"
end
package(:sources)
package(:javadoc)
end
desc 'SwungWeave: Bytecode weaver tool'
define 'tool' do
pom.provided_dependencies.concat [:asm]
compile.with :asm, projects('api')
test.using :testng
package(:bundle).tap do |bnd|
bnd['Export-Package'] = "org.realityforge.swung_weave.tool.*;version=#{version}"
bnd['Private-Package'] = 'org.objectweb.asm.*'
end
package(:sources)
package(:javadoc)
end
desc 'SwungWeave: IntelliJ IDEA plugin'
define 'idea-plugin', :base_dir => 'idea' do
compile.with OPENAPI, :jdom, projects('tool')
project.no_iml
project.resources.filter.using :'version' => project.version
test.using :testng
package(:jar)
package(:sources)
package(:javadoc)
end
doc.using :javadoc
doc.from projects('tool','api')
desc 'SwungWeave: Buildr extension'
define 'buildr' do
generated_file = _(:target, :generated, 'version.rb')
file(generated_file => Buildr.application.buildfile) do
mkdir_p File.dirname(generated_file)
File.open(generated_file, 'wb') do |f|
f.write <<TEXT
module Buildr
module SwungWeave
private
VERSION='#{project.version}'
GROUP='#{project.group}'
end
end
TEXT
end
end
package(:gem).tap do |gem|
gem.spec do |spec|
spec.authors = ['Peter Donald']
spec.email = %w(peter@realityforge.org)
spec.license = 'Apache-2.0'
spec.homepage = 'http://github.com/realityforge/swung_weave'
spec.summary = 'Buildr extension to run the swung_weave tool'
spec.description = <<-TEXT
Buildr extension to process bytecode using swung-weaver. Swung weaver is
bytecode weaving of annotated UI classes to ensure all UI updates occur
in the Event Dispatch Thread
TEXT
spec.require_paths = %w(lib)
spec.has_rdoc = false
end
gem.include :from => _('lib'), :path => 'lib'
gem.include %w(LICENSE README.md NOTICE)
gem.include generated_file, :as => 'lib/buildr/swung_weave/version.rb'
gem.prerequisites << generated_file
end
end
end