buildr-hx 0.0.16.pre → 0.0.17.pre

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.16.pre
1
+ 0.0.1.pre
data/buildr-hx.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "buildr-hx"
8
- s.version = "0.0.16.pre"
8
+ s.version = "0.0.17.pre"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dominic Graefen"]
12
- s.date = "2012-02-24"
12
+ s.date = "2012-03-30"
13
13
  s.description = "Build like you code - now supporting haXe"
14
14
  s.email = "dominic @nospam@ devboy.org"
15
15
  s.extra_rdoc_files = [
@@ -26,52 +26,27 @@ Gem::Specification.new do |s|
26
26
  "VERSION",
27
27
  "buildr-hx.gemspec",
28
28
  "buildr-hx.iml",
29
- "lib/buildr/hx.rb",
30
- "lib/buildr/hx/compiler.rb",
31
- "lib/buildr/hx/compiler/haxe_compiler_base.rb",
32
- "lib/buildr/hx/compiler/hxas3.rb",
33
- "lib/buildr/hx/compiler/hxcpp.rb",
34
- "lib/buildr/hx/compiler/hxjs.rb",
35
- "lib/buildr/hx/compiler/hxlib.rb",
36
- "lib/buildr/hx/compiler/hxneko.rb",
37
- "lib/buildr/hx/compiler/hxphp.rb",
38
- "lib/buildr/hx/compiler/hxswf.rb",
39
- "lib/buildr/hx/compiler/hxxml.rb",
40
- "lib/buildr/hx/core.rb",
41
- "lib/buildr/hx/core/haxe_lib.rb",
42
- "lib/buildr/hx/packaging.rb",
43
- "lib/buildr/hx/packaging/haxelib.rb",
44
- "lib/buildr/hx/packaging/hxlib.rb",
45
- "lib/buildr/hx/test.rb",
46
- "lib/buildr/hx/test/base.rb",
47
- "lib/buildr/hx/test/munit.rb",
48
29
  "rake/jeweler.rb",
49
30
  "rake/jeweler_prerelease_tasks.rb",
50
31
  "rake/pre_release_gemspec.rb",
51
32
  "rake/pre_release_to_git.rb",
52
- "spec/hx/compiler/hxswf_spec.rb",
53
33
  "spec/sandbox.rb",
54
34
  "spec/spec_helper.rb"
55
35
  ]
56
36
  s.homepage = "http://github.com/devboy/buildr-hx"
57
37
  s.licenses = ["MIT"]
58
38
  s.require_paths = ["lib"]
59
- s.rubygems_version = "1.8.11"
39
+ s.rubygems_version = "1.8.21"
60
40
  s.summary = "Buildr extension to allow haXe development."
61
- s.test_files = [
62
- "spec/hx/compiler/hxswf_spec.rb",
63
- "spec/sandbox.rb",
64
- "spec/spec_helper.rb"
65
- ]
66
41
 
67
42
  if s.respond_to? :specification_version then
68
43
  s.specification_version = 3
69
44
 
70
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
71
- s.add_development_dependency(%q<buildr>, ["~> 1.4.6"])
46
+ s.add_runtime_dependency(%q<buildr>, ["~> 1.4.6"])
72
47
  s.add_development_dependency(%q<shoulda>, [">= 0"])
73
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
74
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
48
+ s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
49
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
75
50
  s.add_development_dependency(%q<simplecov>, [">= 0"])
76
51
  s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
77
52
  s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
@@ -80,8 +55,8 @@ Gem::Specification.new do |s|
80
55
  else
81
56
  s.add_dependency(%q<buildr>, ["~> 1.4.6"])
82
57
  s.add_dependency(%q<shoulda>, [">= 0"])
83
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
84
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
58
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
59
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
85
60
  s.add_dependency(%q<simplecov>, [">= 0"])
86
61
  s.add_dependency(%q<simplecov-rcov>, [">= 0"])
87
62
  s.add_dependency(%q<rspec>, ["~> 2.1.0"])
@@ -91,8 +66,8 @@ Gem::Specification.new do |s|
91
66
  else
92
67
  s.add_dependency(%q<buildr>, ["~> 1.4.6"])
93
68
  s.add_dependency(%q<shoulda>, [">= 0"])
94
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
95
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
69
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
70
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
96
71
  s.add_dependency(%q<simplecov>, [">= 0"])
97
72
  s.add_dependency(%q<simplecov-rcov>, [">= 0"])
98
73
  s.add_dependency(%q<rspec>, ["~> 2.1.0"])
data/buildr-hx.iml CHANGED
@@ -5,34 +5,6 @@
5
5
  <content url="file://$MODULE_DIR$" />
6
6
  <orderEntry type="jdk" jdkName="RVM: ruby-1.9.2-p180" jdkType="RUBY_SDK" />
7
7
  <orderEntry type="sourceFolder" forTests="false" />
8
- <orderEntry type="library" scope="PROVIDED" name="atoulme-Antwrap (v0.7.1, RVM: ruby-1.9.2-p180) [gem]" level="application" />
9
- <orderEntry type="library" scope="PROVIDED" name="builder (v2.1.2, RVM: ruby-1.9.2-p180) [gem]" level="application" />
10
- <orderEntry type="library" scope="PROVIDED" name="buildr (v1.4.6, RVM: ruby-1.9.2-p180) [gem]" level="application" />
11
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.0.21, RVM: ruby-1.9.2-p180) [gem]" level="application" />
12
- <orderEntry type="library" scope="PROVIDED" name="ci_reporter (v1.6.5, RVM: ruby-1.9.2-p180) [gem]" level="application" />
13
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.1.2, RVM: ruby-1.9.2-p180) [gem]" level="application" />
14
- <orderEntry type="library" scope="PROVIDED" name="git (v1.2.5, RVM: ruby-1.9.2-p180) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="highline (v1.5.1, RVM: ruby-1.9.2-p180) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="hoe (v2.3.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="jeweler (v1.5.2, RVM: ruby-1.9.2-p180) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="json_pure (v1.4.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="minitar (v0.5.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="multi_json (v1.0.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="net-sftp (v2.0.4, RVM: ruby-1.9.2-p180) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="net-ssh (v2.0.23, RVM: ruby-1.9.2-p180) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="rake (v0.8.7, RVM: ruby-1.9.2-p180) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="rjb (v1.3.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="rspec (v2.1.0, RVM: ruby-1.9.2-p180) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.1.0, RVM: ruby-1.9.2-p180) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.1.0, RVM: ruby-1.9.2-p180) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.1.0, RVM: ruby-1.9.2-p180) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="rubyforge (v2.0.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="rubyzip (v0.9.4, RVM: ruby-1.9.2-p180) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="shoulda (v2.11.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.5.4, RVM: ruby-1.9.2-p180) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.5.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="simplecov-rcov (v0.2.3, RVM: ruby-1.9.2-p180) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="xml-simple (v1.0.12, RVM: ruby-1.9.2-p180) [gem]" level="application" />
36
8
  </component>
37
9
  </module>
38
10
 
data/spec/spec_helper.rb CHANGED
@@ -44,7 +44,7 @@ unless defined?(SpecHelpers)
44
44
  require path
45
45
  end
46
46
  #require 'buildr'
47
- require File.dirname( __FILE__) + '/../lib/buildr/hx'
47
+ require File.dirname( __FILE__) + '/../lib/buildr/as3'
48
48
  # load ecj
49
49
  #require 'buildr/java/ecj'
50
50
  #Make ecj appear as a compiler that doesn't apply:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildr-hx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16.pre
4
+ version: 0.0.17.pre
5
5
  prerelease: 7
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,27 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000Z
12
+ date: 2012-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: buildr
16
- requirement: &2161024180 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.4.6
22
- type: :development
22
+ type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161024180
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.4.6
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: shoulda
27
- requirement: &2161023700 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,32 +37,47 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *2161023700
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: bundler
38
- requirement: &2161023180 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
43
- version: 1.0.0
53
+ version: 1.1.3
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *2161023180
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.3
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: jeweler
49
- requirement: &2161022660 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
53
68
  - !ruby/object:Gem::Version
54
- version: 1.5.2
69
+ version: 1.8.3
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2161022660
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.8.3
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: simplecov
60
- requirement: &2161022120 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2161022120
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: simplecov-rcov
71
- requirement: &2161021640 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *2161021640
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: rspec
82
- requirement: &2161021040 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ~>
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 2.1.0
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2161021040
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 2.1.0
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: ci_reporter
93
- requirement: &2161020540 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: 1.6.5
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *2161020540
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 1.6.5
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: buildr
104
- requirement: &2161020060 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
@@ -109,7 +149,12 @@ dependencies:
109
149
  version: 1.4.6
110
150
  type: :runtime
111
151
  prerelease: false
112
- version_requirements: *2161020060
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 1.4.6
113
158
  description: Build like you code - now supporting haXe
114
159
  email: dominic @nospam@ devboy.org
115
160
  executables: []
@@ -127,30 +172,10 @@ files:
127
172
  - VERSION
128
173
  - buildr-hx.gemspec
129
174
  - buildr-hx.iml
130
- - lib/buildr/hx.rb
131
- - lib/buildr/hx/compiler.rb
132
- - lib/buildr/hx/compiler/haxe_compiler_base.rb
133
- - lib/buildr/hx/compiler/hxas3.rb
134
- - lib/buildr/hx/compiler/hxcpp.rb
135
- - lib/buildr/hx/compiler/hxjs.rb
136
- - lib/buildr/hx/compiler/hxlib.rb
137
- - lib/buildr/hx/compiler/hxneko.rb
138
- - lib/buildr/hx/compiler/hxphp.rb
139
- - lib/buildr/hx/compiler/hxswf.rb
140
- - lib/buildr/hx/compiler/hxxml.rb
141
- - lib/buildr/hx/core.rb
142
- - lib/buildr/hx/core/haxe_lib.rb
143
- - lib/buildr/hx/packaging.rb
144
- - lib/buildr/hx/packaging/haxelib.rb
145
- - lib/buildr/hx/packaging/hxlib.rb
146
- - lib/buildr/hx/test.rb
147
- - lib/buildr/hx/test/base.rb
148
- - lib/buildr/hx/test/munit.rb
149
175
  - rake/jeweler.rb
150
176
  - rake/jeweler_prerelease_tasks.rb
151
177
  - rake/pre_release_gemspec.rb
152
178
  - rake/pre_release_to_git.rb
153
- - spec/hx/compiler/hxswf_spec.rb
154
179
  - spec/sandbox.rb
155
180
  - spec/spec_helper.rb
156
181
  homepage: http://github.com/devboy/buildr-hx
@@ -168,7 +193,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
193
  version: '0'
169
194
  segments:
170
195
  - 0
171
- hash: 2659228895798235121
196
+ hash: -2732739556421316452
172
197
  required_rubygems_version: !ruby/object:Gem::Requirement
173
198
  none: false
174
199
  requirements:
@@ -177,11 +202,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
202
  version: 1.3.1
178
203
  requirements: []
179
204
  rubyforge_project:
180
- rubygems_version: 1.8.11
205
+ rubygems_version: 1.8.21
181
206
  signing_key:
182
207
  specification_version: 3
183
208
  summary: Buildr extension to allow haXe development.
184
- test_files:
185
- - spec/hx/compiler/hxswf_spec.rb
186
- - spec/sandbox.rb
187
- - spec/spec_helper.rb
209
+ test_files: []
@@ -1,131 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HaxeCompilerBase < Buildr::Compiler::Base
5
-
6
- COMPILE_OPTIONS = [:warnings, :debug, :args, :main, :output, :hxml, :resources, :flags]
7
-
8
- def initialize(project, options)
9
- super
10
- options[:debug] = Buildr.options.debug if options[:debug].nil?
11
- options[:warnings] ||= true
12
- end
13
-
14
- def compile(sources, target, dependencies)
15
- check_options options, COMPILE_OPTIONS
16
- @output = get_output_file(target)
17
- is_test = is_test?(sources, target, dependencies)
18
- args = ["haxe"]
19
- sources += @project.compile.sources.map(&:to_s) if is_test
20
- args += generate_source_args sources
21
- args += generate_dependency_args dependencies
22
- args += base_compiler_args
23
- args += compiler_args if respond_to? :compiler_args
24
- unless Buildr.application.options.dryrun
25
- create_hxml args, is_test
26
- appwd = Dir.pwd
27
- Dir.chdir @project.base_dir
28
- fail("Compilation failed!") unless sh args.join " "
29
- Dir.chdir appwd
30
- end
31
- end
32
-
33
- def needed?(sources, target, dependencies)
34
- return true unless File.exist? get_output_file(target)
35
- source_files = Dir.glob(sources.collect { |source| "#{source}/**/*" })
36
- dep_files = dependencies.collect { |dep|
37
- File.directory?(dep) ? Dir.glob("#{dep}/**/*") : dep
38
- }.flatten
39
- maxtime = (source_files + dep_files).collect { |file| File.stat(file).mtime }.max || Time.at(0)
40
- maxtime > File.stat(get_output_file(target)).mtime
41
- end
42
-
43
- protected
44
-
45
- def base_compiler_args #:nodoc:
46
- args = []
47
- args << "-main #{options[:main]}"
48
- args << '-debug' if options[:debug]
49
- args += options[:resources].map{|id,path| "-resource #{path}@#{id.to_s}"} unless options[:resources].nil?
50
- args += options[:flags].map{|flag| "-D #{flag.to_s}"} unless options[:flags].nil?
51
- args + Array(options[:args])
52
- end
53
-
54
- def generate_source_args sources
55
- sources.collect { |source| "-cp #{source}" }
56
- end
57
-
58
- def generate_dependency_args dependencies
59
- args = []
60
- dependencies.each { |dep|
61
- spec = HaxeLib.path_to_spec(dep)
62
- if spec
63
- args << "-lib #{spec[:id]}:#{spec[:version]}"
64
- #elsif File.extname(dep) == ".zip" && Buildr.zip(dep).contain?("haxelib.xml")
65
- # xml = Zip::ZipFile.open(dep) { |zip| zip.file.read("haxelib.xml") }
66
- # require 'rexml/document'
67
- # doc = REXML::Document.new(xml)
68
- # id = doc.root.attribute("name")
69
- # version = doc.root.elements['version'].attribute("name")
70
- # fail "Could not install #{id}:#{version}." unless install_haxelib_zip dep
71
- # args << "-lib #{id}:#{version}"
72
- elsif File.extname(dep) == ".swf"
73
- args << "-swf-lib #{dep}"
74
- elsif File.extname(dep) == ".hxlib"
75
- args += File.read(dep).split("\n").map{ |dep|
76
- dep.start_with?("-cp") ? "-cp #{File.join(root_project_dir, dep.gsub("-cp ", "").strip )}" : dep
77
- }
78
- end
79
- }
80
- args
81
- end
82
-
83
- def install_haxelib_zip zip
84
- system "haxelib test #{zip}"
85
- end
86
-
87
- def is_test?(sources, target, dependencies)
88
- test_task = @project.test.compile
89
- sources==test_task.sources && dependencies==test_task.dependencies.collect { |dep| dep.to_s } && target==test_task.target.to_s
90
- end
91
-
92
- def get_output_file target
93
- file = "#{@project.name.split(":").last}.#{self.class.packaging.to_s}"
94
- file = options[:output] unless options[:output].nil?
95
- File.join(target.to_s, file)
96
- end
97
-
98
- def create_hxml( args, is_test )
99
- file = File.join(@project.base_dir, options[:hxml] || is_test ? "test.hxml" : "compile.hxml")
100
- puts "Creating hxml '#{file}'"
101
- with_path = ["cp", "swf-lib", "swf", "js", "as3", "cpp", "neko", "xml", "swf9", "resource"].map{|p|"-#{p}"}
102
- File.open(file, 'w') {|f| f.write(
103
- args.reject{|a| a == "haxe"}.
104
- map{|a|
105
- cmd = a.split(" ").first
106
- if with_path.include? cmd
107
- path = a.gsub(cmd,"").strip
108
- path, id = path.split("@") if cmd == "-resource"
109
- path = relative_path(path,@project.base_dir)
110
- entry = "#{cmd} #{path}"
111
- id.nil? ? entry : entry + "@#{id}"
112
- else
113
- a
114
- end
115
- }.
116
- join("\n")
117
- ) }
118
- end
119
-
120
- def relative_path path, from
121
- Pathname.new(path).relative_path_from(Pathname.new(from)).to_s
122
- end
123
-
124
- def root_project_dir
125
- Buildr.application.instance_eval { find_rakefile_location.last }
126
- end
127
-
128
- end
129
- end
130
- end
131
- end
@@ -1,16 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXAS3 < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx
8
-
9
- def compiler_args
10
- [ "-as3 #{@output}" ]
11
- end
12
-
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXCPP < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx
8
-
9
- def compiler_args
10
- [ "-cpp #{@output}" ]
11
- end
12
-
13
- end
14
- end
15
- end
16
- end
@@ -1,18 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXJS < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx,
8
- :target_ext => "js",
9
- :packaging => :js
10
-
11
- def compiler_args
12
- [ "-js #{@output}" ]
13
- end
14
-
15
- end
16
- end
17
- end
18
- end
@@ -1,27 +0,0 @@
1
- require "fileutils"
2
- require "pathname"
3
-
4
- module Buildr
5
- module Haxe
6
- module Compiler
7
- class HXLib < HaxeCompilerBase
8
-
9
- specify :language => :haxe,
10
- :sources => :hx, :source_ext => :hx,
11
- :packaging => :hxlib
12
-
13
- def compile(sources, target, dependencies)
14
- dependency_list = (generate_dependency_args(dependencies) + generate_source_args(sources)).
15
- reject{|dep| !( dep.start_with?("-cp") || dep.start_with?("-lib") ) }.
16
- map{ |dep|
17
- dep.start_with?("-cp") ? "-cp #{relative_path( dep.gsub("-cp ", "").strip, root_project_dir )}" : dep
18
- }
19
- file = get_output_file(target)
20
- FileUtils.mkdir_p File.dirname(file)
21
- File.open(file, 'w') {|f| f.write( dependency_list.join("\n") ) }
22
- end
23
-
24
- end
25
- end
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXNeko < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx,
8
- :target_ext => "n",
9
- :packaging => :n
10
-
11
- def compiler_args
12
- [ "-neko #{@output}" ]
13
- end
14
-
15
- end
16
- end
17
- end
18
- end
@@ -1,16 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXPHP < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx
8
-
9
- def compiler_args
10
- [ "-php #{@output}" ]
11
- end
12
-
13
- end
14
- end
15
- end
16
- end
@@ -1,25 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXSWF < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx,
8
- :target_ext => "swf",
9
- :packaging => :swf
10
-
11
- COMPILE_OPTIONS << :swfversion << :swfheader << :flashstrict << :apparat
12
-
13
- def compiler_args
14
- args = []
15
- args << "-swf #{@output}"
16
- args << "-swf-version #{options[:swfversion]}"
17
- args << "-swf-header #{options[:swfheader]}" unless options[:swfheader].nil?
18
- args << "--flash-strict" if options[:flashstrict]
19
- args
20
- end
21
-
22
- end
23
- end
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- module Buildr
2
- module Haxe
3
- module Compiler
4
- class HXXML < HaxeCompilerBase
5
-
6
- specify :language => :haxe,
7
- :sources => :hx, :source_ext => :hx,
8
- :target_ext => "xml",
9
- :packaging => :xml
10
-
11
- def compiler_args
12
- [ "-xml #{@output}" ]
13
- end
14
-
15
- end
16
- end
17
- end
18
- end
@@ -1,40 +0,0 @@
1
- #
2
- # Copyright (C) 2011 by Dominic Graefen / http://devboy.org
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in
12
- # all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #
22
-
23
- require File.dirname(__FILE__) + '/compiler/haxe_compiler_base'
24
- require File.dirname(__FILE__) + '/compiler/hxswf'
25
- require File.dirname(__FILE__) + '/compiler/hxjs'
26
- require File.dirname(__FILE__) + '/compiler/hxneko'
27
- require File.dirname(__FILE__) + '/compiler/hxphp'
28
- require File.dirname(__FILE__) + '/compiler/hxxml'
29
- require File.dirname(__FILE__) + '/compiler/hxas3'
30
- require File.dirname(__FILE__) + '/compiler/hxcpp'
31
- require File.dirname(__FILE__) + '/compiler/hxlib'
32
-
33
- Buildr::Compiler << Buildr::Haxe::Compiler::HXSWF
34
- Buildr::Compiler << Buildr::Haxe::Compiler::HXJS
35
- Buildr::Compiler << Buildr::Haxe::Compiler::HXNeko
36
- Buildr::Compiler << Buildr::Haxe::Compiler::HXPHP
37
- Buildr::Compiler << Buildr::Haxe::Compiler::HXXML
38
- Buildr::Compiler << Buildr::Haxe::Compiler::HXAS3
39
- Buildr::Compiler << Buildr::Haxe::Compiler::HXCPP
40
- Buildr::Compiler << Buildr::Haxe::Compiler::HXLib
@@ -1,64 +0,0 @@
1
- class HaxeLib < Rake::FileTask
2
- class << self
3
- def home
4
- `haxelib config`.chomp
5
- end
6
-
7
- def spec_to_path spec
8
- id, version = spec.split(":")
9
- fail("No version number provided for haxelib '#{id}'!") if version.nil?
10
- File.join( home, id, version.gsub(".",",") )
11
- end
12
-
13
- def path_to_spec path
14
- id, version = path.gsub(home,"").split(File::SEPARATOR)
15
- return nil unless id && version && path.include?(home)
16
- {:id => id, :version => version.gsub(",",".")}
17
- end
18
-
19
- def lookup spec
20
- id, version = spec.split(":")
21
- task = HaxeLib.define_task( spec_to_path spec )
22
- task.id = id
23
- task.version = version
24
- task
25
- end
26
- end
27
-
28
- attr_accessor :id, :version
29
-
30
- def initialize(*args)
31
- super
32
- enhance do |task|
33
- task.enhance do
34
- if download_needed?
35
- info "Downloading #{to_spec}"
36
- download
37
- end
38
- end
39
- end
40
- end
41
-
42
- def download
43
- fail( "Could not download #{to_spec}") unless system "haxelib install #{id} #{version}"
44
- end
45
-
46
- def download_needed?
47
- !File.exists?(name)
48
- end
49
-
50
- def to_spec
51
- "#{id}:#{version}"
52
- end
53
-
54
- def to_spec_hash
55
- {:id => @id, :version => @version}
56
- end
57
-
58
- end
59
-
60
- module Buildr
61
- def haxelib spec
62
- HaxeLib.lookup(spec)
63
- end
64
- end
@@ -1 +0,0 @@
1
- require File.dirname(__FILE__) + '/core/haxe_lib'
@@ -1,84 +0,0 @@
1
- #
2
- # Copyright (C) 2011 by Dominic Graefen / http://devboy.org
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in
12
- # all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #
22
-
23
- require 'buildr'
24
- require "fileutils"
25
-
26
- module Buildr
27
- module Haxe
28
- module Packaging
29
- include Extension
30
-
31
- class HaxelibTask < Buildr::ZipTask
32
-
33
- def initialize(*args) #:nodoc:
34
- super
35
- enhance do
36
- include *@project.compile.sources.collect { |src| File.join(src, "**", "*") }
37
- xml = @project._("haxelib.xml")
38
- File.open(xml, 'w') {|f| f.write(haxelib_xml) }
39
- include xml
40
- end
41
- end
42
-
43
- attr_accessor :url, :license, :tags, :user
44
-
45
- protected
46
-
47
- def associate(project)
48
- @project = project
49
- end
50
-
51
- def haxelib_xml
52
- buffer =''
53
- xml = Builder::XmlMarkup.new(:target=>buffer, :indent => 2)
54
- xml.project(:name => @project.name.gsub(":","-"), :url => url, :license => license) do
55
- xml.description @project.comment
56
- xml.version(@project.version, :name => @project.version)
57
- @tags.each { |tag| xml.tag :v => tag }
58
- xml.user :name => @user
59
- haxelib_dependencies.each{ |dep| xml.depends :name => dep[:id], :version => dep[:version] }
60
- end
61
- buffer
62
- end
63
-
64
- def haxelib_dependencies
65
- haxelib_deps = []
66
- @project.compile.dependencies.each{ |dep| haxelib_deps << dep.to_spec_hash if dep.is_a? HaxeLib }
67
- haxelib_deps
68
- end
69
-
70
- end
71
-
72
- def package_as_haxelib(file_name)
73
- HaxelibTask.define_task(file_name).tap do |haxelib|
74
- haxelib.send :associate, self
75
- end
76
- end
77
-
78
- def package_as_haxelib_spec(spec)
79
- spec.merge :type=>:zip
80
- end
81
-
82
- end
83
- end
84
- end
@@ -1,78 +0,0 @@
1
- #
2
- # Copyright (C) 2011 by Dominic Graefen / http://devboy.org
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in
12
- # all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #
22
-
23
- require 'buildr'
24
- require 'fileutils'
25
-
26
- module Buildr
27
- module AS3
28
- module Packaging
29
-
30
- class HxlibTask < Rake::FileTask
31
-
32
- include Extension
33
-
34
- attr_accessor :target_hxlib, :src_hxlib
35
-
36
- def initialize(*args) #:nodoc:
37
- super
38
- enhance do
39
- fail "File not found: #{src_hxlib}" unless File.exists? src_hxlib
40
- FileUtils.cp(src_hxlib, target_hxlib)
41
- end
42
- end
43
-
44
- def needed?
45
- return true unless File.exists?(target_hxlib)
46
- File.stat(src_hxlib).mtime > File.stat(target_hxlib).mtime
47
- end
48
-
49
- first_time do
50
- desc 'create hxlib package task'
51
- Project.local_task('package_hxlib')
52
- end
53
-
54
- before_define do |project|
55
- HxlibTask.define_task('package_hxlib').tap do |package_hxlib|
56
- package_hxlib
57
- end
58
- end
59
-
60
- end
61
-
62
- def package_hxlib(&block)
63
- task("package_hxlib").enhance &block
64
- end
65
-
66
- protected
67
-
68
- def package_as_hxlib(file_name)
69
- fail("Package types don't match! :hxlib vs. :#{compile.packaging.to_s}") unless compile.packaging == :hxlib
70
- HxlibTask.define_task(file_name).tap do |hxlib|
71
- hxlib.src_hxlib = File.join(compile.target.to_s, compile.options[:output] || "#{project.name.split(":").last}.#{compile.packaging.to_s}")
72
- hxlib.target_hxlib = file_name
73
- end
74
- end
75
-
76
- end
77
- end
78
- end
@@ -1,27 +0,0 @@
1
- #
2
- # Copyright (C) 2011 by Dominic Graefen / http://devboy.org
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in
12
- # all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #
22
- require File.dirname(__FILE__)+"/packaging/haxelib"
23
- require File.dirname(__FILE__)+"/packaging/hxlib"
24
-
25
- class Buildr::Project
26
- include Buildr::Haxe::Packaging
27
- end
@@ -1,25 +0,0 @@
1
- require 'buildr'
2
-
3
- module Buildr
4
- module Haxe
5
- module Test
6
- class TestFramework::Haxe < TestFramework::Base
7
-
8
- class << self
9
-
10
- def applies_to?(project) #:nodoc:
11
- project.test.compile.language == :haxe
12
- end
13
-
14
- def dependencies
15
- unless @dependencies
16
- super
17
- end
18
- @dependencies
19
- end
20
- end
21
- end
22
- end
23
-
24
- end
25
- end
@@ -1,90 +0,0 @@
1
- require 'buildr'
2
- require 'fileutils'
3
- require 'pathname'
4
- require "rexml/document"
5
-
6
- module Buildr
7
- module Haxe
8
- module Test
9
-
10
- class MUnit < TestFramework::Haxe
11
-
12
- DEFAULT_VERSION = "0.9.2.1"
13
-
14
- "src=test
15
- bin=bin/test/build
16
- report=bin/test/report
17
- hxml=test.hxml
18
- classPaths=lib"
19
-
20
- def tests(dependencies) #:nodoc:
21
- candidates = []
22
- task.project.test.compile.sources.each do |source|
23
- files = Dir["#{source}/**/*Test.hx"] + Dir["#{source}/**/*Tests.hx"]
24
- files.each { |item|
25
- if File.dirname(item) == source
26
- candidates << File.basename(item, '.*')
27
- else
28
- candidates << "#{File.dirname(item).gsub!(source+"/", "").gsub!("/", ".")}.#{File.basename(item, '.*')}"
29
- end
30
- }
31
- end
32
- candidates
33
- end
34
-
35
- def run(tests, dependencies) #:nodoc:
36
-
37
- unless Buildr.application.options.dryrun
38
- create_munit_config
39
- appwd = Dir.pwd
40
- Dir.chdir task.project.base_dir
41
-
42
- cmd = "haxelib run munit test"
43
- cmd << " -browser #{options[:browser]}" unless options[:browser].nil?
44
- cmd << " -keep-browser-alive" if options[:keepbrowseralive]
45
- cmd << " -coverage" if options[:coverage]
46
-
47
- fail "Problems...oh noes!" unless system cmd
48
-
49
- Dir.chdir appwd
50
-
51
- Dir[File.join(task.project.path_to(:reports, :munit),"**/TEST-*.xml")].each do |xml_report|
52
- doc = REXML::Document.new File.new(xml_report)
53
- name = doc.elements["testsuite"].attributes["name"]
54
- failures = Integer(doc.elements["testsuite"].attributes["failures"])
55
- errors = Integer(doc.elements["testsuite"].attributes["errors"])
56
- tests -= [name] unless failures + errors == 0
57
- end
58
-
59
- end
60
- tests
61
- end
62
-
63
- def create_munit_config
64
- file = File.join(task.project.base_dir, ".munit")
65
- puts "Creating munit config '#{file}'"
66
- File.open(file, 'w') { |f| f.write(
67
- "version=#{options[:version].nil? ? DEFAULT_VERSION : options[:version]}\n" +
68
- "src=#{relative_path task.project.path_to(:source, :test, :hx), task.project.base_dir}\n" +
69
- "bin=#{relative_path task.project.test.compile.target.to_s, task.project.base_dir}\n" +
70
- "report=#{relative_path task.project.path_to(:reports, :munit), task.project.base_dir}\n" +
71
- "hxml=#{relative_path get_hxml_file, task.project.base_dir}\n" +
72
- "classPaths=#{task.project.compile.sources.map(&:to_s).map{|s| relative_path s, task.project.base_dir}.join(',')}"
73
- ) }
74
- end
75
-
76
- def get_hxml_file
77
- file = "test.hxml"
78
- file = task.project.test.compile.options[:hxml] unless task.project.test.compile.options[:hxml].nil?
79
- File.join(task.project.base_dir, file)
80
- end
81
-
82
- def relative_path path, from
83
- Pathname.new(path).relative_path_from(Pathname.new(from)).to_s
84
- end
85
-
86
- end
87
- end
88
- end
89
-
90
- end
@@ -1,4 +0,0 @@
1
- require File.dirname(__FILE__)+"/test/base"
2
- require File.dirname(__FILE__)+"/test/munit"
3
-
4
- Buildr::TestFramework << Buildr::Haxe::Test::MUnit
data/lib/buildr/hx.rb DELETED
@@ -1,6 +0,0 @@
1
- require 'buildr'
2
-
3
- require File.dirname(__FILE__) + '/../buildr/hx/core'
4
- require File.dirname(__FILE__) + '/../buildr/hx/compiler'
5
- require File.dirname(__FILE__) + '/../buildr/hx/packaging'
6
- require File.dirname(__FILE__) + '/../buildr/hx/test'
@@ -1,9 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../../spec/spec_helper'
2
-
3
- describe Buildr::Haxe::Compiler::HXSWF do
4
-
5
- it 'should report the language as :haxe' do
6
- define('foo').compile.using(:hxswf).language.should eql(:haxe)
7
- end
8
-
9
- end