blackwinter-rake-compiler 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/History.txt +308 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +415 -0
  6. data/Rakefile +15 -0
  7. data/bin/rake-compiler +24 -0
  8. data/cucumber.yml +4 -0
  9. data/features/compile.feature +79 -0
  10. data/features/cross-compile.feature +23 -0
  11. data/features/cross-package-multi.feature +15 -0
  12. data/features/cross-package.feature +14 -0
  13. data/features/java-compile.feature +22 -0
  14. data/features/java-no-native-compile.feature +33 -0
  15. data/features/java-package.feature +24 -0
  16. data/features/package.feature +40 -0
  17. data/features/step_definitions/compilation.rb +70 -0
  18. data/features/step_definitions/cross_compilation.rb +27 -0
  19. data/features/step_definitions/execution.rb +52 -0
  20. data/features/step_definitions/folders.rb +32 -0
  21. data/features/step_definitions/gem.rb +46 -0
  22. data/features/step_definitions/java_compilation.rb +7 -0
  23. data/features/support/env.rb +10 -0
  24. data/features/support/file_template_helpers.rb +137 -0
  25. data/features/support/generator_helpers.rb +123 -0
  26. data/features/support/platform_extension_helpers.rb +27 -0
  27. data/lib/rake/baseextensiontask.rb +90 -0
  28. data/lib/rake/extensioncompiler.rb +53 -0
  29. data/lib/rake/extensiontask.rb +513 -0
  30. data/lib/rake/javaextensiontask.rb +226 -0
  31. data/spec/lib/rake/extensiontask_spec.rb +501 -0
  32. data/spec/lib/rake/javaextensiontask_spec.rb +182 -0
  33. data/spec/spec.opts +3 -0
  34. data/spec/spec_helper.rb +15 -0
  35. data/spec/support/capture_output_helper.rb +22 -0
  36. data/tasks/bin/cross-ruby.rake +213 -0
  37. data/tasks/bootstrap.rake +11 -0
  38. data/tasks/common.rake +10 -0
  39. data/tasks/cucumber.rake +23 -0
  40. data/tasks/gem.rake +52 -0
  41. data/tasks/news.rake +39 -0
  42. data/tasks/release.rake +26 -0
  43. data/tasks/rspec.rake +9 -0
  44. metadata +138 -0
@@ -0,0 +1,10 @@
1
+ require 'rake/clean'
2
+
3
+ # common pattern cleanup
4
+ CLOBBER.include('tmp')
5
+
6
+ # set default task
7
+ task :default => [:spec, :features]
8
+
9
+ # make packing depend on success of running specs and features
10
+ task :package => [:spec, :features]
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'cucumber/rake/task'
3
+ rescue LoadError
4
+ warn "Cucumber gem is required, please install it. (gem install cucumber)"
5
+ end
6
+
7
+ if defined?(Cucumber)
8
+ namespace :cucumber do
9
+ Cucumber::Rake::Task.new('default', 'Run features testing C extension support') do |t|
10
+ t.profile = 'default'
11
+ t.cucumber_opts = '--format pretty --no-source'
12
+ end
13
+ Cucumber::Rake::Task.new('java', 'Run features testing Java extension support') do |t|
14
+ t.profile = 'java'
15
+ t.cucumber_opts = '--format pretty --no-source'
16
+ end
17
+
18
+ desc 'Run all features'
19
+ task :all => [:default, :java]
20
+ end
21
+ desc 'Alias for cucumber:default'
22
+ task :cucumber => 'cucumber:default'
23
+ end
@@ -0,0 +1,52 @@
1
+ require 'rubygems/package_task'
2
+
3
+ GEM_SPEC = Gem::Specification.new do |s|
4
+ # basic information
5
+ s.name = "blackwinter-rake-compiler"
6
+ s.version = "0.9.2"
7
+ s.platform = Gem::Platform::RUBY
8
+
9
+ # description and details
10
+ s.summary = 'Rake-based Ruby Extension (C, Java) task generator.'
11
+ s.description = "Provide a standard and simplified way to build and package\nRuby extensions (C, Java) using Rake as glue."
12
+
13
+ # requirements
14
+ s.required_ruby_version = ">= 1.8.7"
15
+ s.required_rubygems_version = ">= 1.8.25"
16
+
17
+ # dependencies
18
+ s.add_dependency 'rake'
19
+
20
+ # development dependencies
21
+ s.add_development_dependency 'rspec', '~> 2.8.0'
22
+ s.add_development_dependency 'cucumber', '~> 1.1.4'
23
+
24
+ # components, files and paths
25
+ s.files = FileList["features/**/*.{feature,rb}", "bin/rake-compiler",
26
+ "lib/**/*.rb", "spec/spec.opts", "spec/**/*.rb",
27
+ "tasks/**/*.rake", "Rakefile", "Gemfile",
28
+ "*.{rdoc,txt,yml}"]
29
+
30
+ s.bindir = 'bin'
31
+ s.executables = ['rake-compiler']
32
+
33
+ s.require_path = 'lib'
34
+
35
+ # documentation
36
+ s.rdoc_options << '--main' << 'README.rdoc' << '--title' << 'rake-compiler -- Documentation'
37
+
38
+ s.extra_rdoc_files = %w(README.rdoc LICENSE.txt History.txt)
39
+
40
+ # project information
41
+ s.homepage = 'http://github.com/blackwinter/rake-compiler'
42
+ s.licenses = ['MIT']
43
+
44
+ # author and contributors
45
+ s.authors = ['Luis Lavena', 'Jens Wille']
46
+ s.email = 'jens.wille@gmail.com'
47
+ end
48
+
49
+ gem_package = Gem::PackageTask.new(GEM_SPEC) do |pkg|
50
+ pkg.need_tar = false
51
+ pkg.need_zip = false
52
+ end
@@ -0,0 +1,39 @@
1
+ desc 'Generate email template to standard output'
2
+ task :announce do
3
+ fail "no GEM_SPEC is found or defined. 'announce' task cannot work without it." unless defined?(GEM_SPEC)
4
+
5
+ # read project info and overview
6
+ notes = begin
7
+ r = File.read("README.rdoc")
8
+ r.split(/^(=+ .*)/)[1..4].join.strip
9
+ rescue
10
+ warn "Missing README.rdoc"
11
+ ''
12
+ end
13
+
14
+ # read changes
15
+ changes = begin
16
+ h = File.read("History.txt")
17
+ h.split(/^(===+ .*)/)[1..2].join.strip
18
+ rescue
19
+ warn "Missing History.txt"
20
+ ''
21
+ end
22
+
23
+ # standard fields
24
+ subject = "#{GEM_SPEC.name} #{GEM_SPEC.version} Released"
25
+ title = "#{GEM_SPEC.name} version #{GEM_SPEC.version} has been released!"
26
+ body = "#{notes}\n\nChanges:\n\n#{changes}"
27
+ urls = [GEM_SPEC.homepage].map { |u| "* <#{u.strip}>" }.join("\n")
28
+
29
+ puts "=" * 80, ""
30
+ puts "Subject: [ANN] #{subject}"
31
+ puts
32
+ puts title
33
+ puts
34
+ puts urls
35
+ puts
36
+ puts body
37
+ puts
38
+ puts "=" * 80, ""
39
+ end
@@ -0,0 +1,26 @@
1
+ desc 'Package gems and upload to RubyGems'
2
+ task :release, [:version] => [:package] do |t, args|
3
+ args.with_defaults(:version => "")
4
+ ver = args.version
5
+
6
+ fail "no GEM_SPEC is found or defined. 'release' task cannot work without it." unless defined?(GEM_SPEC)
7
+
8
+ # compare versions to avoid mistakes
9
+ unless ver == GEM_SPEC.version.to_s then
10
+ fail "Version mismatch (supplied and specification versions differ)."
11
+ end
12
+
13
+ files = FileList["pkg/#{GEM_SPEC.name}-#{GEM_SPEC.version}*.*"].to_a
14
+ fail "No files found for the release." if files.empty?
15
+
16
+ puts "Files to release:"
17
+ files.each do |f|
18
+ puts " * #{f}"
19
+ end
20
+
21
+ puts "Releasing #{GEM_SPEC.name} version #{GEM_SPEC.version}..."
22
+ files.each do |f|
23
+ system "gem push #{f}"
24
+ end
25
+ puts "Done."
26
+ end
@@ -0,0 +1,9 @@
1
+ begin
2
+ require "rspec/core/rake_task"
3
+ rescue LoadError => e
4
+ warn "RSpec gem is required, please install it (gem install rspec)."
5
+ end
6
+
7
+ if defined?(RSpec::Core::RakeTask)
8
+ RSpec::Core::RakeTask.new(:spec)
9
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blackwinter-rake-compiler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.2
5
+ platform: ruby
6
+ authors:
7
+ - Luis Lavena
8
+ - Jens Wille
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-05-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 2.8.0
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 2.8.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: cucumber
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 1.1.4
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 1.1.4
56
+ description: |-
57
+ Provide a standard and simplified way to build and package
58
+ Ruby extensions (C, Java) using Rake as glue.
59
+ email: jens.wille@gmail.com
60
+ executables:
61
+ - rake-compiler
62
+ extensions: []
63
+ extra_rdoc_files:
64
+ - README.rdoc
65
+ - LICENSE.txt
66
+ - History.txt
67
+ files:
68
+ - Gemfile
69
+ - History.txt
70
+ - LICENSE.txt
71
+ - README.rdoc
72
+ - Rakefile
73
+ - bin/rake-compiler
74
+ - cucumber.yml
75
+ - features/compile.feature
76
+ - features/cross-compile.feature
77
+ - features/cross-package-multi.feature
78
+ - features/cross-package.feature
79
+ - features/java-compile.feature
80
+ - features/java-no-native-compile.feature
81
+ - features/java-package.feature
82
+ - features/package.feature
83
+ - features/step_definitions/compilation.rb
84
+ - features/step_definitions/cross_compilation.rb
85
+ - features/step_definitions/execution.rb
86
+ - features/step_definitions/folders.rb
87
+ - features/step_definitions/gem.rb
88
+ - features/step_definitions/java_compilation.rb
89
+ - features/support/env.rb
90
+ - features/support/file_template_helpers.rb
91
+ - features/support/generator_helpers.rb
92
+ - features/support/platform_extension_helpers.rb
93
+ - lib/rake/baseextensiontask.rb
94
+ - lib/rake/extensioncompiler.rb
95
+ - lib/rake/extensiontask.rb
96
+ - lib/rake/javaextensiontask.rb
97
+ - spec/lib/rake/extensiontask_spec.rb
98
+ - spec/lib/rake/javaextensiontask_spec.rb
99
+ - spec/spec.opts
100
+ - spec/spec_helper.rb
101
+ - spec/support/capture_output_helper.rb
102
+ - tasks/bin/cross-ruby.rake
103
+ - tasks/bootstrap.rake
104
+ - tasks/common.rake
105
+ - tasks/cucumber.rake
106
+ - tasks/gem.rake
107
+ - tasks/news.rake
108
+ - tasks/release.rake
109
+ - tasks/rspec.rake
110
+ homepage: http://github.com/blackwinter/rake-compiler
111
+ licenses:
112
+ - MIT
113
+ metadata: {}
114
+ post_install_message:
115
+ rdoc_options:
116
+ - "--main"
117
+ - README.rdoc
118
+ - "--title"
119
+ - rake-compiler -- Documentation
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 1.8.7
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.8.25
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 2.2.2.x
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Rake-based Ruby Extension (C, Java) task generator.
138
+ test_files: []