filament 0.2.3 → 0.3.0
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.
- data/CHANGELOG +26 -0
- data/lib/filament/os.rb +77 -0
- data/lib/filament/package.rb +76 -26
- data/lib/filament/platform.rb +81 -78
- data/lib/filament/target.rb +50 -11
- data/lib/filament/util/filelist2.rb +10 -2
- data/lib/filament/util/fileutils.rb +1 -1
- data/lib/filament.rb +48 -24
- data/plugins/00util/lib/filament/plugins/util.rb +7 -7
- data/plugins/01java/lib/filament/java/mixins/classpath.rb +11 -0
- data/plugins/01java/lib/filament/java/tools/compile.rb +3 -1
- data/plugins/01java/lib/filament/java/tools/execute.rb +3 -1
- data/plugins/01java/lib/filament/java/tools/jar.rb +16 -12
- data/plugins/01java/lib/filament/java/tools/proguard.rb +2 -0
- data/plugins/01java/lib/filament/java/tools.rb +18 -18
- data/plugins/01java/lib/filament/plugins/java.rb +1 -1
- data/plugins/02javame/lib/filament/javame/library.rb +79 -16
- data/plugins/02javame/lib/filament/javame/suite.rb +75 -16
- data/plugins/02javame/lib/filament/javame/tasks/library_task.rb +190 -0
- data/plugins/02javame/lib/filament/javame/tools/emulator.rb +1 -1
- data/plugins/02javame/lib/filament/javame/tools/external/mpp_sdk.rb +0 -1
- data/plugins/02javame/lib/filament/javame/tools/external/wtk.rb +0 -1
- data/plugins/02javame/lib/filament/javame/{platform.rb → tools/platform.rb} +6 -5
- data/plugins/02javame/lib/filament/javame/tools/preverifier.rb +1 -1
- data/plugins/02javame/lib/filament/javame/tools.rb +1 -1
- data/plugins/02javame/lib/init.rb +6 -19
- data/plugins/04spin/lib/filament/spin/sji.rb +36 -0
- data/plugins/04spin/lib/filament/spin/tasks/sji_task.rb +86 -0
- data/plugins/04spin/lib/init.rb +4 -0
- data/plugins/04spin/lib/spin/sji.rb +339 -0
- data/plugins/05push/lib/filament/plugins/push.rb +3 -3
- data/plugins/10svn/lib/filament/plugins/svn.rb +3 -3
- data/plugins/10svn/lib/filament/scm/svn.rb +7 -13
- data/plugins/10svn/lib/init.rb +1 -1
- data/plugins/11http/lib/filament/plugins/http.rb +6 -0
- data/plugins/11http/lib/filament/scm/http.rb +67 -0
- data/plugins/11http/lib/init.rb +5 -0
- metadata +34 -8
- data/lib/filament/artifact.rb +0 -49
- data/plugins/01java/lib/filament/java/mixins/java_mixin.rb +0 -19
- data/plugins/02javame/lib/filament/javame/mixins/library_mixin.rb +0 -181
- data/plugins/02javame/lib/filament/javame/mixins/suite_mixin.rb +0 -114
@@ -1,181 +0,0 @@
|
|
1
|
-
require 'filament/java/mixins/java_mixin'
|
2
|
-
|
3
|
-
module Filament::JavaME::Mixins
|
4
|
-
module LibraryMixin
|
5
|
-
include Java::Mixins::JavaMixin
|
6
|
-
|
7
|
-
attr_accessor2 :obfuscate
|
8
|
-
|
9
|
-
attr_writer :package_deps
|
10
|
-
attr_reader :srcs, :resources, :manifest, :platform, :cldc_version
|
11
|
-
|
12
|
-
def init_library
|
13
|
-
init_java
|
14
|
-
@srcs = FileList2.new
|
15
|
-
@resources = FileList2.new
|
16
|
-
@manifest = nil
|
17
|
-
@package_deps = false
|
18
|
-
@obfuscate = false
|
19
|
-
@platform = JavaME::Tools.tags_for($target_platform)
|
20
|
-
@cldc_version = JavaME::Tools.cldc_version_for($target_platform)
|
21
|
-
@bootclasspath = JavaME::Tools.classpath_for($target_platform)
|
22
|
-
@classpath = []
|
23
|
-
|
24
|
-
@append_entries = {}
|
25
|
-
@custom_entries = {}
|
26
|
-
|
27
|
-
@jad_config = Proc.new do |d|
|
28
|
-
d.append_entries(@append_entries)
|
29
|
-
d.custom_entries(@custom_entries)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def custom_entries(h)
|
34
|
-
h.keys.each do |key|
|
35
|
-
@custom_entries[key] = h[key]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def append_entries(h)
|
40
|
-
h.keys.each do |key|
|
41
|
-
@append_entries[key] ||= []
|
42
|
-
|
43
|
-
entry = h[key]
|
44
|
-
|
45
|
-
if entry.is_a?(Array)
|
46
|
-
@append_entries[key] += entry
|
47
|
-
else
|
48
|
-
@append_entries[key] << entry
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def jar_path
|
54
|
-
return "#{output_dir}/#{@name}.jar"
|
55
|
-
end
|
56
|
-
|
57
|
-
def define_library(target)
|
58
|
-
compiled_dir = directory(:compiled)
|
59
|
-
obfuscated_dir = directory(:obfuscated)
|
60
|
-
preverified_dir = directory(:preverified)
|
61
|
-
package_dir = directory(:package)
|
62
|
-
proguard_dir = directory(:proguard)
|
63
|
-
proguard_preverified_dir = directory(:proguard_preverified)
|
64
|
-
|
65
|
-
cp = classpath(target)
|
66
|
-
# prune empty entries from src
|
67
|
-
@srcs.compact!
|
68
|
-
|
69
|
-
if @package_deps
|
70
|
-
target.flattened_deps.each do |dep|
|
71
|
-
j = dep[:jar]
|
72
|
-
unless j.nil?
|
73
|
-
@resources.include(j)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
jar_deps = @srcs + @resources + directories + cp + @bootclasspath
|
79
|
-
|
80
|
-
desc = target.package.descriptor
|
81
|
-
if File.exist?(desc)
|
82
|
-
jar_deps << desc
|
83
|
-
end
|
84
|
-
|
85
|
-
unless @manifest.nil?
|
86
|
-
jar_deps += @manifest
|
87
|
-
end
|
88
|
-
|
89
|
-
jar_task = file(jar_path => jar_deps) do |t|
|
90
|
-
package_files = FileList.new
|
91
|
-
unless @srcs.empty?
|
92
|
-
# compile to the unverified directory
|
93
|
-
Java::Tools::Compile.new(@srcs, compiled_dir) do |c|
|
94
|
-
c.source_version = 1.2
|
95
|
-
c.target_version = 1.1
|
96
|
-
c.classpath = cp
|
97
|
-
c.bootclasspath = @bootclasspath
|
98
|
-
end
|
99
|
-
|
100
|
-
# preverify to the preverified directory
|
101
|
-
JavaME::Tools::preverify(compiled_dir, preverified_dir) do |j|
|
102
|
-
j.cldc_version = @cldc_version
|
103
|
-
j.classpath = cp + @bootclasspath
|
104
|
-
end
|
105
|
-
|
106
|
-
# package up verified classes
|
107
|
-
package_files.add("#{preverified_dir}/*")
|
108
|
-
end
|
109
|
-
|
110
|
-
# package up resources
|
111
|
-
package_files.add(*@resources) unless @resources.empty?
|
112
|
-
package_files.each do |f|
|
113
|
-
p = Pathname.new(f)
|
114
|
-
|
115
|
-
if p.extname == '.jar'
|
116
|
-
Java::Tools::Jar.extract(f, package_dir)
|
117
|
-
else
|
118
|
-
cp_r_if(f, package_dir) { |p| !(p =~ /\.svn$/) }
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
# remove svn files we may have copied
|
123
|
-
exclude_files = FileList.new
|
124
|
-
exclude_files.clear_exclude
|
125
|
-
exclude_files.add("#{package_dir}/META-INF")
|
126
|
-
|
127
|
-
exclude_files.each do |file|
|
128
|
-
rm_rf(file)
|
129
|
-
end
|
130
|
-
|
131
|
-
# obfuscate, if necessary
|
132
|
-
if @obfuscate
|
133
|
-
Java::Tools::proguard(package_dir, proguard_dir) do |o|
|
134
|
-
(@classpath + @bootclasspath).each do |libraryjar|
|
135
|
-
o.libraryjars libraryjar
|
136
|
-
end
|
137
|
-
|
138
|
-
target.flattened_deps.each do |dep|
|
139
|
-
b = dep[:proguard]
|
140
|
-
b.call(o) unless b.nil?
|
141
|
-
end
|
142
|
-
|
143
|
-
o.defaultpackage "''"
|
144
|
-
o.dontusemixedcaseclassnames
|
145
|
-
o.allowaccessmodification
|
146
|
-
o.keep 'public class * extends javax.microedition.midlet.MIDlet'
|
147
|
-
end
|
148
|
-
|
149
|
-
FileList.new("#{proguard_dir}/*").each do |f|
|
150
|
-
cp_r_if(f, proguard_preverified_dir) { |p| !(p =~ /\.class$/) }
|
151
|
-
end
|
152
|
-
|
153
|
-
JavaME::Tools::preverify(proguard_dir, proguard_preverified_dir) do |j|
|
154
|
-
j.cldc_version = @cldc_version
|
155
|
-
j.classpath = cp + @bootclasspath
|
156
|
-
end
|
157
|
-
|
158
|
-
Java::Tools::Jar.new(jar_path, FileList.new(proguard_preverified_dir)) do |jar|
|
159
|
-
jar.manifest = @manifest
|
160
|
-
end
|
161
|
-
else
|
162
|
-
Java::Tools::Jar.new(jar_path, FileList.new(package_dir)) do |jar|
|
163
|
-
jar.manifest = @manifest
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
target.output :tag => [:default, :jar],
|
169
|
-
:output => jar_path,
|
170
|
-
:deployable => true
|
171
|
-
|
172
|
-
target.output :tag => :jad_config,
|
173
|
-
:output => @jad_config,
|
174
|
-
:deployable => false
|
175
|
-
|
176
|
-
@tasks << jar_task
|
177
|
-
|
178
|
-
return jar_task
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
require 'filament/javame/mixins/library_mixin'
|
2
|
-
|
3
|
-
module Filament::JavaME::Mixins
|
4
|
-
module SuiteMixin
|
5
|
-
include JavaME::Mixins::LibraryMixin
|
6
|
-
|
7
|
-
attr_accessor2 :defaultmidlet_class,
|
8
|
-
:suite_version, :suite_name, :suite_icon, :suite_vendor,
|
9
|
-
:me_configuration, :me_profile
|
10
|
-
|
11
|
-
# adds a midlet hash with keys :icon, :classname, and :name
|
12
|
-
def add_midlet(midlet)
|
13
|
-
if midlet == :default
|
14
|
-
midlet = { :classname => defaultmidlet_class,
|
15
|
-
:icon => suite_icon,
|
16
|
-
:name => suite_name }
|
17
|
-
end
|
18
|
-
|
19
|
-
@midlets << midlet
|
20
|
-
end
|
21
|
-
|
22
|
-
def init_suite
|
23
|
-
init_library
|
24
|
-
@descriptor_config = Proc.new {}
|
25
|
-
@package_deps = true
|
26
|
-
@obfuscate = false # TODO should be based on $build_type
|
27
|
-
@defaultmidlet_class = nil
|
28
|
-
@midlets = []
|
29
|
-
|
30
|
-
@me_configuration = 'CLDC-1.0'
|
31
|
-
@me_profile = 'MIDP-2.0'
|
32
|
-
end
|
33
|
-
|
34
|
-
def jad_path
|
35
|
-
jad_name = Pathname.new(jar_path).basename(".*").to_s + '.jad'
|
36
|
-
return "#{output_dir}/#{jad_name}"
|
37
|
-
end
|
38
|
-
|
39
|
-
def manifest_path
|
40
|
-
return "#{working_dir}/MANIFEST.MF"
|
41
|
-
end
|
42
|
-
|
43
|
-
def descriptor_config(&block)
|
44
|
-
@descriptor_config = block
|
45
|
-
end
|
46
|
-
|
47
|
-
def define_jad(target)
|
48
|
-
# create a list for imported jad configs
|
49
|
-
configs = []
|
50
|
-
|
51
|
-
# start with this target
|
52
|
-
config = target[:jad_config]
|
53
|
-
configs << config unless config.nil?
|
54
|
-
|
55
|
-
target.flattened_deps.each do |dep|
|
56
|
-
# ask each dep for its contribution
|
57
|
-
config = dep[:jad_config]
|
58
|
-
configs << config unless config.nil?
|
59
|
-
end
|
60
|
-
|
61
|
-
full_config = Proc.new do |d|
|
62
|
-
d.suite_version = @suite_version
|
63
|
-
d.suite_name = @suite_name
|
64
|
-
d.suite_icon = @suite_icon
|
65
|
-
d.suite_vendor = @suite_vendor
|
66
|
-
d.me_configuration = @me_configuration
|
67
|
-
d.me_profile = @me_profile
|
68
|
-
|
69
|
-
@midlets.each do |midlet|
|
70
|
-
d.add_midlet(midlet)
|
71
|
-
end
|
72
|
-
|
73
|
-
@descriptor_config.call(d)
|
74
|
-
|
75
|
-
configs.each do |config|
|
76
|
-
config.call(d)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
jad_task = file jad_path => jar_path do |t|
|
81
|
-
JavaME::Tools::write_manifest(manifest_path, &full_config)
|
82
|
-
Java::Tools::Jar.new(jar_path) do |jar|
|
83
|
-
jar.update = true
|
84
|
-
jar.manifest = manifest_path
|
85
|
-
end
|
86
|
-
JavaME::Tools::write_jad(jad_path, jar_path, &full_config)
|
87
|
-
end
|
88
|
-
|
89
|
-
target.output :tag => :jad,
|
90
|
-
:output => jad_path,
|
91
|
-
:deployable => true
|
92
|
-
|
93
|
-
@tasks << jad_task
|
94
|
-
return jad_task
|
95
|
-
end
|
96
|
-
|
97
|
-
def define_suite(target)
|
98
|
-
# define all the tasks
|
99
|
-
# and add extra dependencies
|
100
|
-
|
101
|
-
jad_task = define_jad(target)
|
102
|
-
library_task = define_library(target)
|
103
|
-
|
104
|
-
target.output(:tag => :execute,
|
105
|
-
:output => Proc.new do; emulate; end)
|
106
|
-
|
107
|
-
return jad_task, library_task
|
108
|
-
end
|
109
|
-
|
110
|
-
def emulate(midletclass=@defaultmidlet_class)
|
111
|
-
JavaME::Tools::emulate(jad_path, midletclass)
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|