paper_house 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +46 -12
  3. data/LICENSE +674 -0
  4. data/README.md +18 -10
  5. data/Rakefile +7 -117
  6. data/features/executable_task.feature +6 -0
  7. data/features/step_definitions/paper_house_steps.rb +1 -1
  8. data/features/support/env.rb +3 -32
  9. data/lib/paper_house/auto_depends.rb +4 -23
  10. data/lib/paper_house/build_failed.rb +18 -0
  11. data/lib/paper_house/build_task.rb +10 -24
  12. data/lib/paper_house/cc_options.rb +1 -23
  13. data/lib/paper_house/dependency.rb +1 -23
  14. data/lib/paper_house/executable_task.rb +1 -27
  15. data/lib/paper_house/library_task.rb +1 -23
  16. data/lib/paper_house/linker_options.rb +1 -23
  17. data/lib/paper_house/platform.rb +11 -32
  18. data/lib/paper_house/ruby_extension_task.rb +1 -27
  19. data/lib/paper_house/safe_popen.rb +1 -23
  20. data/lib/paper_house/shared_library_task.rb +1 -27
  21. data/lib/paper_house/static_library_task.rb +2 -24
  22. data/lib/paper_house/version.rb +2 -24
  23. data/lib/paper_house.rb +1 -23
  24. data/paper_house.gemspec +11 -9
  25. data/spec/paper_house/executable_task_spec.rb +26 -53
  26. data/spec/paper_house/ruby_extension_task_spec.rb +26 -53
  27. data/spec/paper_house/shared_library_task_spec.rb +30 -57
  28. data/spec/paper_house/static_library_task_spec.rb +41 -68
  29. data/spec/paper_house/version_spec.rb +1 -23
  30. data/spec/spec_helper.rb +3 -31
  31. metadata +24 -67
  32. data/.gitignore +0 -19
  33. data/.rspec +0 -3
  34. data/.rubocop.yml +0 -1
  35. data/.ruby-version +0 -1
  36. data/.travis.yml +0 -18
  37. data/Gemfile +0 -35
  38. data/Guardfile +0 -22
  39. data/cucumber.yml +0 -3
  40. data/examples/executable/.gitignore +0 -4
  41. data/examples/executable/Rakefile +0 -5
  42. data/examples/executable/Rakefile.llvm +0 -5
  43. data/examples/executable/hello.c +0 -7
  44. data/examples/executable_subdirs/.gitignore +0 -4
  45. data/examples/executable_subdirs/Rakefile +0 -11
  46. data/examples/executable_subdirs/includes/hello.h +0 -1
  47. data/examples/executable_subdirs/sources/hello.c +0 -6
  48. data/examples/executable_subdirs/sources/main.c +0 -8
  49. data/examples/ruby_extension/.gitignore +0 -5
  50. data/examples/ruby_extension/Rakefile +0 -5
  51. data/examples/ruby_extension/Rakefile.llvm +0 -5
  52. data/examples/ruby_extension/hello.c +0 -6
  53. data/examples/shared_library/.gitignore +0 -8
  54. data/examples/shared_library/Rakefile +0 -23
  55. data/examples/shared_library/Rakefile.llvm +0 -25
  56. data/examples/shared_library/hello.c +0 -6
  57. data/examples/shared_library/hello.h +0 -1
  58. data/examples/shared_library/main.c +0 -7
  59. data/examples/shared_library_subdirs/.gitignore +0 -8
  60. data/examples/shared_library_subdirs/Rakefile +0 -28
  61. data/examples/shared_library_subdirs/includes/hello.h +0 -1
  62. data/examples/shared_library_subdirs/sources/hello.c +0 -6
  63. data/examples/shared_library_subdirs/sources/main.c +0 -8
  64. data/examples/static_library/.gitignore +0 -7
  65. data/examples/static_library/Rakefile +0 -14
  66. data/examples/static_library/Rakefile.llvm +0 -14
  67. data/examples/static_library/hello.c +0 -6
  68. data/examples/static_library/hello.h +0 -1
  69. data/examples/static_library/main.c +0 -7
  70. data/examples/static_library_subdirs/.gitignore +0 -7
  71. data/examples/static_library_subdirs/Rakefile +0 -19
  72. data/examples/static_library_subdirs/includes/hello.h +0 -1
  73. data/examples/static_library_subdirs/sources/hello.c +0 -6
  74. data/examples/static_library_subdirs/sources/main.c +0 -8
  75. data/rake_simplecov_hook.rb +0 -24
  76. data/rubocop-todo.yml +0 -6
data/README.md CHANGED
@@ -1,10 +1,16 @@
1
1
  Paper House
2
2
  ===========
3
- [![Gem Version](https://badge.fury.io/rb/paper_house.png)](http://badge.fury.io/rb/paper_house)
4
- [![Build Status](https://travis-ci.org/trema/paper-house.png?branch=develop)](https://travis-ci.org/trema/paper-house)
5
- [![Code Climate](https://codeclimate.com/github/trema/paper-house.png)](https://codeclimate.com/github/trema/paper-house)
6
- [![Coverage Status](https://coveralls.io/repos/trema/paper-house/badge.png?branch=develop)](https://coveralls.io/r/trema/paper-house)
7
- [![Dependency Status](https://gemnasium.com/trema/paper-house.png)](https://gemnasium.com/trema/paper-house)
3
+ [![Gem Version](http://img.shields.io/gem/v/paper_house.svg)][gem]
4
+ [![Build Status](http://img.shields.io/travis/trema/paper-house/develop.svg)][travis]
5
+ [![Code Climate](http://img.shields.io/codeclimate/github/trema/paper-house.svg)][codeclimate]
6
+ [![Coverage Status](http://img.shields.io/coveralls/trema/paper-house/develop.svg)][coveralls]
7
+ [![Dependency Status](http://img.shields.io/gemnasium/trema/paper-house.svg)][gemnasium]
8
+
9
+ [gem]: https://rubygems.org/gems/paper_house
10
+ [travis]: http://travis-ci.org/trema/paper-house
11
+ [codeclimate]: https://codeclimate.com/github/trema/paper-house
12
+ [coveralls]: https://coveralls.io/r/trema/paper-house?branch=develop
13
+ [gemnasium]: https://gemnasium.com/trema/paper-house
8
14
 
9
15
  <a href="http://www.flickr.com/photos/studiobeerhorst/8221979536/" title="paper houses - 3d woodcut prints by Rick&Brenda Beerhorst, on Flickr"><img src="http://farm9.staticflickr.com/8202/8221979536_60404c309d_n.jpg" width="320" height="240" alt="paper houses - 3d woodcut prints" align="right"></a>
10
16
 
@@ -22,9 +28,10 @@ Features Overview
22
28
  * Provides a simple yet a powerful syntax to build above mentioned
23
29
  targets using predefined Rake tasks.
24
30
  * Pure Ruby. No additional dependency on other external tools
25
- (`makedepend` etc.) to resolve file dependencies.
31
+ ([makedepend](http://linux.die.net/man/1/makedepend) etc.) to
32
+ resolve file dependencies.
26
33
  * Multi-Platform. Runs on both Linux and MacOSX, and supports all
27
- major version of Ruby (1.8.7, 1.9.3, 2.0.0).
34
+ major version of Ruby (1.9.3, 2.0.0).
28
35
 
29
36
 
30
37
  Example
@@ -35,17 +42,18 @@ and `*.h` files in the current directory, just add the following lines
35
42
  to your `Rakefile`.
36
43
 
37
44
  ```ruby
38
- require "paper_house"
45
+ require 'paper_house'
39
46
 
40
47
  PaperHouse::ExecutableTask.new :hello
41
48
  ```
42
49
 
43
50
  This defines a new task `hello`, and `rake hello` will automatically
44
51
  analyze all file dependencies of the source files, compile them into
45
- an executable named `hello``.
52
+ an executable named `hello`.
46
53
 
47
54
  If you wish to customize the build process more, please set the
48
- following options defined in `PaperHouse::ExecutableTask`:
55
+ following options defined in
56
+ [PaperHouse::ExecutableTask](http://rubydoc.info/github/trema/paper-house/PaperHouse/ExecutableTask):
49
57
 
50
58
  ```ruby
51
59
  PaperHouse::ExecutableTask.new :hello do |task|
data/Rakefile CHANGED
@@ -1,126 +1,16 @@
1
- #
2
- # Copyright (C) 2013 NEC Corporation
3
- #
4
- # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License, version 3, as
6
- # published by the Free Software Foundation.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
- #
1
+ # encoding: utf-8
17
2
 
18
3
  require 'bundler/gem_tasks'
19
- require 'coveralls/rake/task'
20
- require 'flay'
21
- require 'flay_task'
22
- require 'flog'
23
- require 'rake/tasklib'
24
- require 'reek/rake/task'
25
- require 'rspec/core'
26
- require 'rspec/core/rake_task'
27
- require 'yaml'
28
- require 'yard'
29
4
 
30
- ruby_source = FileList['lib/**/*.rb']
5
+ # rubocop:disable HashSyntax
31
6
 
32
7
  task :default => :travis
33
- task :travis => [:spec, :cucumber, :quality, 'coveralls:push']
34
- task :quality => [:reek, :flog, :flay]
35
-
36
- Coveralls::RakeTask.new
37
-
38
- RSpec::Core::RakeTask.new
39
-
40
- require 'cucumber/rake/task'
41
- Cucumber::Rake::Task.new do |t|
42
- profile = %w(--profile)
43
- require 'paper_house/platform'
44
- if PaperHouse::Platform::MAC
45
- profile << 'mac'
46
- else
47
- profile << 'linux'
48
- end
49
- t.cucumber_opts = profile.join(' ')
50
- end
51
-
52
- Reek::Rake::Task.new do |t|
53
- t.fail_on_error = true
54
- t.verbose = false
55
- t.ruby_opts = ['-rubygems']
56
- t.reek_opts = '--quiet'
57
- t.source_files = ruby_source
58
- end
59
-
60
- desc 'Analyze for code complexity'
61
- task :flog do
62
- flog = Flog.new(:continue => true)
63
- flog.flog(*ruby_source)
64
- threshold = 10
65
-
66
- bad_methods = flog.totals.select do |name, score|
67
- !(/##{flog.no_method}$/ =~ name) && score > threshold
68
- end
69
- bad_methods.sort { |a, b| a[1] <=> b[1] }.reverse.each do |name, score|
70
- puts sprintf('%8.1f: %s', [score, name])
71
- end
72
- unless bad_methods.empty?
73
- fail "#{bad_methods.size} methods have a flog complexity > #{threshold}"
74
- end
75
- end
76
8
 
77
- FlayTask.new do |t|
78
- t.dirs = ruby_source.map do |each|
79
- each[/[^\/]+/]
80
- end.uniq
81
- t.threshold = 0
82
- t.verbose = true
83
- end
84
-
85
- if RUBY_VERSION >= '1.9.0'
86
- task :quality => :rubocop
87
- require 'rubocop/rake_task'
88
- Rubocop::RakeTask.new
89
- end
90
-
91
- task :relish do
92
- sh 'relish push trema/paper-house'
93
- end
94
-
95
- YARD::Rake::YardocTask.new do |t|
96
- t.options = ['--no-private']
97
- t.options << '--debug' << '--verbose' if Rake.verbose
98
- end
99
-
100
- def travis_yml
101
- File.join File.dirname(__FILE__), '.travis.yml'
102
- end
103
-
104
- def rubies
105
- (['1.8.7'] + YAML.load_file(travis_yml)['rvm']).uniq.sort
106
- end
107
-
108
- desc 'Run tests against multiple rubies'
109
- task :portability
9
+ task :travis => [:spec, :cucumber, :quality, 'coveralls:push']
110
10
 
111
- rubies.each do |each|
112
- portability_task_name = "portability:#{each}"
113
- task :portability => portability_task_name
11
+ desc 'Check for code quality'
12
+ task :quality => [:reek, :flog, :flay, :rubocop]
114
13
 
115
- desc "Run tests against Ruby#{each}"
116
- task portability_task_name do
117
- sh "rvm #{each} exec bundle"
118
- sh "rvm #{each} exec bundle exec rake"
119
- end
120
- end
14
+ # rubocop:enable HashSyntax
121
15
 
122
- ### Local variables:
123
- ### mode: Ruby
124
- ### coding: utf-8-unix
125
- ### indent-tabs-mode: nil
126
- ### End:
16
+ Dir.glob('tasks/*.rake').each { |each| import each }
@@ -69,3 +69,9 @@ Feature: PaperHouse::ExecutableTask
69
69
  Then a file named "hello.o" should not exist
70
70
  And a file named ".hello.depends" should not exist
71
71
  And a file named "hello" should not exist
72
+
73
+ Scenario: Failure
74
+ Given the current project directory is "examples/fail"
75
+ When I run `rake hello`
76
+ Then the exit status should not be 0
77
+ And the stderr should contain "failed with status"
@@ -9,7 +9,7 @@ Given(/^the current project directory is "(.*?)"$/) do | dir |
9
9
  FileUtils.rm_r 'objects' if FileTest.exists?('objects')
10
10
  end
11
11
  end
12
- step %{I cd to "#{example_name}"}
12
+ step %(I cd to "#{example_name}")
13
13
  end
14
14
 
15
15
  When(/^I run rake "(.*?)"$/) do |args|
@@ -1,38 +1,9 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
18
-
19
- require 'rubygems'
20
-
21
- require 'simplecov'
22
- SimpleCov.start
1
+ # encoding: utf-8
23
2
 
24
3
  require 'aruba/cucumber'
25
4
  require 'rake'
26
5
 
27
6
  ENV['LD_LIBRARY_PATH'] = '.'
28
7
 
29
- if ENV['TRAVIS']
30
- require 'coveralls'
31
- Coveralls.wear_merged!
32
- end
33
-
34
- ### Local variables:
35
- ### mode: Ruby
36
- ### coding: utf-8-unix
37
- ### indent-tabs-mode: nil
38
- ### End:
8
+ require 'coveralls'
9
+ Coveralls.wear_merged!
@@ -1,21 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
3
+ # encoding: utf-8
18
4
 
5
+ require 'paper_house/build_failed'
19
6
  require 'paper_house/safe_popen'
20
7
 
21
8
  module PaperHouse
@@ -38,7 +25,7 @@ module PaperHouse
38
25
  def run
39
26
  @out.puts @command
40
27
  exit_status = popen_command
41
- fail "#{@cc} failed" if exit_status != 0
28
+ fail BuildFailed.new(@command, exit_status) if exit_status != 0
42
29
  end
43
30
 
44
31
  private
@@ -47,7 +34,7 @@ module PaperHouse
47
34
  SafePopen.popen(@command) do |stdout, stderr, stdin, |
48
35
  stdin.close
49
36
  parse_cc_h_stderr stderr
50
- end.exitstatus
37
+ end
51
38
  end
52
39
 
53
40
  def parse_cc_h_stderr(stderr)
@@ -82,9 +69,3 @@ module PaperHouse
82
69
  end
83
70
  end
84
71
  end
85
-
86
- ### Local variables:
87
- ### mode: Ruby
88
- ### coding: utf-8-unix
89
- ### indent-tabs-mode: nil
90
- ### End:
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ module PaperHouse
4
+ # Exception raised if a build task fails
5
+ class BuildFailed < ::StandardError
6
+ attr_reader :command
7
+ attr_reader :status
8
+
9
+ def initialize(command, status)
10
+ @command = command
11
+ @status = status
12
+ end
13
+
14
+ def message
15
+ "Command `#{command}' failed with status #{status.exitstatus}"
16
+ end
17
+ end
18
+ end
@@ -1,24 +1,9 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'paper_house/auto_depends'
20
- require 'paper_house/dependency'
4
+ require 'paper_house/build_failed'
21
5
  require 'paper_house/cc_options'
6
+ require 'paper_house/dependency'
22
7
  require 'rake/clean'
23
8
  require 'rake/tasklib'
24
9
 
@@ -154,11 +139,12 @@ module PaperHouse
154
139
  def dependency
155
140
  @dependency ||= Dependency.new(@name)
156
141
  end
142
+
143
+ def generate_target
144
+ command = ([cc] + cc_options).join(' ')
145
+ sh(command) do |ok, status|
146
+ ok || fail(BuildFailed.new(command, status))
147
+ end
148
+ end
157
149
  end
158
150
  end
159
-
160
- ### Local variables:
161
- ### mode: Ruby
162
- ### coding: utf-8-unix
163
- ### indent-tabs-mode: nil
164
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  module PaperHouse
20
4
  # CC option utilities.
@@ -63,9 +47,3 @@ module PaperHouse
63
47
  end
64
48
  end
65
49
  end
66
-
67
- ### Local variables:
68
- ### mode: Ruby
69
- ### coding: utf-8-unix
70
- ### indent-tabs-mode: nil
71
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'pstore'
20
4
  require 'rake'
@@ -57,9 +41,3 @@ module PaperHouse
57
41
  end
58
42
  end
59
43
  end
60
-
61
- ### Local variables:
62
- ### mode: Ruby
63
- ### coding: utf-8-unix
64
- ### indent-tabs-mode: nil
65
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'paper_house/build_task'
20
4
  require 'paper_house/linker_options'
@@ -46,10 +30,6 @@ module PaperHouse
46
30
 
47
31
  private
48
32
 
49
- def generate_target
50
- sh(([cc] + cc_options).join(' '))
51
- end
52
-
53
33
  def cc_options
54
34
  [o_option, objects, ldflags, l_options].flatten
55
35
  end
@@ -59,9 +39,3 @@ module PaperHouse
59
39
  end
60
40
  end
61
41
  end
62
-
63
- ### Local variables:
64
- ### mode: Ruby
65
- ### coding: utf-8-unix
66
- ### indent-tabs-mode: nil
67
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'paper_house/build_task'
20
4
 
@@ -54,9 +38,3 @@ module PaperHouse
54
38
  end
55
39
  end
56
40
  end
57
-
58
- ### Local variables:
59
- ### mode: Ruby
60
- ### coding: utf-8-unix
61
- ### indent-tabs-mode: nil
62
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  module PaperHouse
20
4
  #
@@ -71,9 +55,3 @@ module PaperHouse
71
55
  end
72
56
  end
73
57
  end
74
-
75
- ### Local variables:
76
- ### mode: Ruby
77
- ### coding: utf-8-unix
78
- ### indent-tabs-mode: nil
79
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'rbconfig'
20
4
 
@@ -38,23 +22,18 @@ module PaperHouse
38
22
  SONAME_OPTION = MAC ? '-install_name' : '-soname'
39
23
 
40
24
  # Include directories for compiling C extensions.
41
- RUBY_INCLUDES = if RUBY_VERSION >= '1.9.0'
42
- [
43
- File.join(CONFIG['rubyhdrdir'], CONFIG['arch']),
44
- File.join(CONFIG['rubyhdrdir'], 'ruby/backward'),
45
- CONFIG['rubyhdrdir']
46
- ]
47
- else
48
- [CONFIG['archdir']]
49
- end
25
+ RUBY_INCLUDES =
26
+ [
27
+ File.join(CONFIG['rubyhdrdir'], CONFIG['arch']),
28
+ File.join(CONFIG['rubyhdrdir'], 'ruby/backward'),
29
+ CONFIG['rubyhdrdir']
30
+ ]
50
31
 
51
32
  # Library directories for compiling C extensions.
52
33
  RUBY_LIBDIR = CONFIG['libdir']
34
+
35
+ def self.name
36
+ MAC ? 'mac' : 'linux'
37
+ end
53
38
  end
54
39
  end
55
-
56
- ### Local variables:
57
- ### mode: Ruby
58
- ### coding: utf-8-unix
59
- ### indent-tabs-mode: nil
60
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'paper_house/library_task'
20
4
  require 'paper_house/linker_options'
@@ -46,10 +30,6 @@ module PaperHouse
46
30
 
47
31
  private
48
32
 
49
- def generate_target
50
- sh(([cc] + cc_options).join(' '))
51
- end
52
-
53
33
  def cc_options
54
34
  [LDSHARED, o_option, objects, ldflags, libdir_option, l_options].flatten
55
35
  end
@@ -67,9 +47,3 @@ module PaperHouse
67
47
  end
68
48
  end
69
49
  end
70
-
71
- ### Local variables:
72
- ### mode: Ruby
73
- ### coding: utf-8-unix
74
- ### indent-tabs-mode: nil
75
- ### End:
@@ -1,20 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 NEC Corporation
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License, version 3, as
7
- # published by the Free Software Foundation.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License along
15
- # with this program; if not, write to the Free Software Foundation, Inc.,
16
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
- #
1
+ # encoding: utf-8
18
2
 
19
3
  require 'popen4'
20
4
 
@@ -40,9 +24,3 @@ module PaperHouse
40
24
  end
41
25
  end
42
26
  end
43
-
44
- ### Local variables:
45
- ### mode: Ruby
46
- ### coding: utf-8-unix
47
- ### indent-tabs-mode: nil
48
- ### End: