paper_house 0.4.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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +17 -0
  5. data/Gemfile +35 -0
  6. data/Guardfile +28 -0
  7. data/README.md +116 -0
  8. data/Rakefile +139 -0
  9. data/cucumber.yml +3 -0
  10. data/examples/c_extension/.gitignore +5 -0
  11. data/examples/c_extension/Rakefile +3 -0
  12. data/examples/c_extension/Rakefile.llvm +5 -0
  13. data/examples/c_extension/hello.c +6 -0
  14. data/examples/executable/.gitignore +4 -0
  15. data/examples/executable/Rakefile +3 -0
  16. data/examples/executable/Rakefile.llvm +5 -0
  17. data/examples/executable/hello.c +7 -0
  18. data/examples/executable_subdirs/.gitignore +4 -0
  19. data/examples/executable_subdirs/Rakefile +9 -0
  20. data/examples/executable_subdirs/includes/hello.h +1 -0
  21. data/examples/executable_subdirs/sources/hello.c +6 -0
  22. data/examples/executable_subdirs/sources/main.c +8 -0
  23. data/examples/shared_library/.gitignore +8 -0
  24. data/examples/shared_library/Rakefile +17 -0
  25. data/examples/shared_library/Rakefile.llvm +19 -0
  26. data/examples/shared_library/hello.c +6 -0
  27. data/examples/shared_library/hello.h +1 -0
  28. data/examples/shared_library/main.c +7 -0
  29. data/examples/shared_library/symlinks.rake +7 -0
  30. data/examples/shared_library_subdirs/.gitignore +8 -0
  31. data/examples/shared_library_subdirs/Rakefile +27 -0
  32. data/examples/shared_library_subdirs/includes/hello.h +1 -0
  33. data/examples/shared_library_subdirs/sources/hello.c +6 -0
  34. data/examples/shared_library_subdirs/sources/main.c +8 -0
  35. data/examples/static_library/.gitignore +7 -0
  36. data/examples/static_library/Rakefile +13 -0
  37. data/examples/static_library/Rakefile.llvm +14 -0
  38. data/examples/static_library/hello.c +6 -0
  39. data/examples/static_library/hello.h +1 -0
  40. data/examples/static_library/main.c +7 -0
  41. data/examples/static_library_subdirs/.gitignore +7 -0
  42. data/examples/static_library_subdirs/Rakefile +17 -0
  43. data/examples/static_library_subdirs/includes/hello.h +1 -0
  44. data/examples/static_library_subdirs/sources/hello.c +6 -0
  45. data/examples/static_library_subdirs/sources/main.c +8 -0
  46. data/features/c_extension_task.feature +119 -0
  47. data/features/executable_task.feature +83 -0
  48. data/features/shared_library_task.feature +209 -0
  49. data/features/static_library_task.feature +116 -0
  50. data/features/step_definitions/paper_house_steps.rb +8 -0
  51. data/features/support/env.rb +41 -0
  52. data/features/support/hooks.rb +12 -0
  53. data/lib/paper_house/auto_depends.rb +95 -0
  54. data/lib/paper_house/build_task.rb +188 -0
  55. data/lib/paper_house/c_extension_task.rb +95 -0
  56. data/lib/paper_house/cc_options.rb +81 -0
  57. data/lib/paper_house/dependency.rb +74 -0
  58. data/lib/paper_house/executable_task.rb +77 -0
  59. data/lib/paper_house/library_task.rb +64 -0
  60. data/lib/paper_house/linker_options.rb +89 -0
  61. data/lib/paper_house/platform.rb +69 -0
  62. data/lib/paper_house/safe_popen.rb +50 -0
  63. data/lib/paper_house/shared_library_task.rb +92 -0
  64. data/lib/paper_house/static_library_task.rb +65 -0
  65. data/lib/paper_house/version.rb +30 -0
  66. data/lib/paper_house.rb +30 -0
  67. data/paper_house.gemspec +34 -0
  68. data/spec/paper_house/c_extension_task_spec.rb +59 -0
  69. data/spec/paper_house/cc_options_spec.rb +59 -0
  70. data/spec/paper_house/executable_task_spec.rb +49 -0
  71. data/spec/paper_house/shared_library_task_spec.rb +94 -0
  72. data/spec/paper_house/static_library_task_spec.rb +61 -0
  73. data/spec/paper_house/version_spec.rb +31 -0
  74. data/spec/spec_helper.rb +46 -0
  75. metadata +161 -0
@@ -0,0 +1,94 @@
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
+ #
17
+
18
+
19
+ require "paper_house/shared_library_task"
20
+
21
+
22
+ module PaperHouse
23
+ describe SharedLibraryTask do
24
+ it "should find registered tasks by name" do
25
+ task = SharedLibraryTask.new( :libtest, "0.1.0" )
26
+
27
+ SharedLibraryTask.find_by( :libtest ).should eq task
28
+ SharedLibraryTask.find_by( "libtest" ).should eq task
29
+ SharedLibraryTask.find_by( :no_such_task ).should be_nil
30
+ end
31
+ end
32
+
33
+
34
+ describe SharedLibraryTask, %{.new( :libtest, "0.1.0" )} do
35
+ subject { SharedLibraryTask.new :libtest, "0.1.0" }
36
+
37
+ its( :cc ) { should eq "gcc" }
38
+ its( :cflags ) { should be_empty }
39
+ its( :includes ) { should be_empty }
40
+ its( :name ) { should eq "libtest" }
41
+ its( :sources ) { should eq "*.c" }
42
+ its( :target_directory ) { should eq "." }
43
+ its( :version ) { should eq "0.1.0" }
44
+ its( :linker_name ) { should eq "libtest.so" }
45
+ its( :soname ) { should eq "libtest.so.0" }
46
+ its( :target_file_name ) { should eq "libtest.so.0.1.0" }
47
+ its( :library_name ) { should eq "libtest" }
48
+ its( :lname ) { should eq "test" }
49
+
50
+ it {
51
+ expect {
52
+ Rake::Task[ subject.name ].invoke
53
+ }.to raise_error( "Cannot find sources (*.c)." )
54
+ }
55
+ end
56
+
57
+
58
+ describe SharedLibraryTask, %{(:library_name = "libtest")} do
59
+ subject {
60
+ SharedLibraryTask.new( :libtest, "0.1.0" ) do | task |
61
+ task.library_name = "libtest"
62
+ end
63
+ }
64
+
65
+ its( :library_name ) { should eq "libtest" }
66
+ end
67
+
68
+
69
+ describe SharedLibraryTask, %{(:library_name = "test")} do
70
+ subject {
71
+ SharedLibraryTask.new( :libtest, "0.1.0" ) do | task |
72
+ task.library_name = "test"
73
+ end
74
+ }
75
+
76
+ its( :library_name ) { should eq "libtest" }
77
+ end
78
+
79
+
80
+ describe SharedLibraryTask, %{.new( :libtest )} do
81
+ subject { SharedLibraryTask.new "libtest" }
82
+
83
+ it {
84
+ expect { subject }.to raise_error( ":version option is a mandatory." )
85
+ }
86
+ end
87
+ end
88
+
89
+
90
+ ### Local variables:
91
+ ### mode: Ruby
92
+ ### coding: utf-8-unix
93
+ ### indent-tabs-mode: nil
94
+ ### End:
@@ -0,0 +1,61 @@
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
+ #
17
+
18
+
19
+ require "paper_house/static_library_task"
20
+
21
+
22
+ module PaperHouse
23
+ describe StaticLibraryTask do
24
+ it "should find registered tasks by name" do
25
+ task = StaticLibraryTask.new( :libtest )
26
+
27
+ StaticLibraryTask.find_by( :libtest ).should eq task
28
+ StaticLibraryTask.find_by( "libtest" ).should eq task
29
+ StaticLibraryTask.find_by( :no_such_task ).should be_nil
30
+ end
31
+ end
32
+
33
+
34
+ describe StaticLibraryTask, ".new( :libtest )" do
35
+ subject { StaticLibraryTask.new :libtest }
36
+
37
+ its( :cc ) { should eq "gcc" }
38
+ its( :cflags ) { should be_empty }
39
+ its( :includes ) { should be_empty }
40
+ its( :name ) { should eq "libtest" }
41
+ its( :sources ) { should eq "*.c" }
42
+ its( :target_directory ) { should eq "." }
43
+ its( :library_name ) { should eq "libtest" }
44
+ its( :lname ) { should eq "test" }
45
+ its( :target_file_name ) { should eq "libtest.a" }
46
+ its( :target_path ) { should eq "./libtest.a" }
47
+
48
+ it {
49
+ expect {
50
+ Rake::Task[ subject.name ].invoke
51
+ }.to raise_error( "Cannot find sources (*.c)." )
52
+ }
53
+ end
54
+ end
55
+
56
+
57
+ ### Local variables:
58
+ ### mode: Ruby
59
+ ### coding: utf-8-unix
60
+ ### indent-tabs-mode: nil
61
+ ### End:
@@ -0,0 +1,31 @@
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
+ #
17
+
18
+
19
+ require "paper_house/version"
20
+
21
+
22
+ describe PaperHouse do
23
+ it { expect( PaperHouse::VERSION ).to match( /\A\d+\.\d+\.\d+\Z/ ) }
24
+ end
25
+
26
+
27
+ ### Local variables:
28
+ ### mode: Ruby
29
+ ### coding: utf-8-unix
30
+ ### indent-tabs-mode: nil
31
+ ### End:
@@ -0,0 +1,46 @@
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
+ #
17
+
18
+
19
+ require "rubygems"
20
+
21
+ require "simplecov"
22
+ SimpleCov.start
23
+
24
+
25
+ require "rake"
26
+ require "rspec"
27
+
28
+
29
+ RSpec.configure do | config |
30
+ config.before( :all ) do
31
+ Rake::Task.clear
32
+ end
33
+ end
34
+
35
+
36
+ if ENV[ "TRAVIS" ]
37
+ require "coveralls"
38
+ Coveralls.wear_merged!
39
+ end
40
+
41
+
42
+ ### Local variables:
43
+ ### mode: Ruby
44
+ ### coding: utf-8-unix
45
+ ### indent-tabs-mode: nil
46
+ ### End:
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: paper_house
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Yasuhito Takamiya
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: POpen4
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 10.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 10.1.0
41
+ description: Rake tasks for compiling C projects.
42
+ email:
43
+ - yasuhito@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files:
47
+ - README.md
48
+ files:
49
+ - .gitignore
50
+ - .rspec
51
+ - .travis.yml
52
+ - Gemfile
53
+ - Guardfile
54
+ - README.md
55
+ - Rakefile
56
+ - cucumber.yml
57
+ - examples/c_extension/.gitignore
58
+ - examples/c_extension/Rakefile
59
+ - examples/c_extension/Rakefile.llvm
60
+ - examples/c_extension/hello.c
61
+ - examples/executable/.gitignore
62
+ - examples/executable/Rakefile
63
+ - examples/executable/Rakefile.llvm
64
+ - examples/executable/hello.c
65
+ - examples/executable_subdirs/.gitignore
66
+ - examples/executable_subdirs/Rakefile
67
+ - examples/executable_subdirs/includes/hello.h
68
+ - examples/executable_subdirs/sources/hello.c
69
+ - examples/executable_subdirs/sources/main.c
70
+ - examples/shared_library/.gitignore
71
+ - examples/shared_library/Rakefile
72
+ - examples/shared_library/Rakefile.llvm
73
+ - examples/shared_library/hello.c
74
+ - examples/shared_library/hello.h
75
+ - examples/shared_library/main.c
76
+ - examples/shared_library/symlinks.rake
77
+ - examples/shared_library_subdirs/.gitignore
78
+ - examples/shared_library_subdirs/Rakefile
79
+ - examples/shared_library_subdirs/includes/hello.h
80
+ - examples/shared_library_subdirs/sources/hello.c
81
+ - examples/shared_library_subdirs/sources/main.c
82
+ - examples/static_library/.gitignore
83
+ - examples/static_library/Rakefile
84
+ - examples/static_library/Rakefile.llvm
85
+ - examples/static_library/hello.c
86
+ - examples/static_library/hello.h
87
+ - examples/static_library/main.c
88
+ - examples/static_library_subdirs/.gitignore
89
+ - examples/static_library_subdirs/Rakefile
90
+ - examples/static_library_subdirs/includes/hello.h
91
+ - examples/static_library_subdirs/sources/hello.c
92
+ - examples/static_library_subdirs/sources/main.c
93
+ - features/c_extension_task.feature
94
+ - features/executable_task.feature
95
+ - features/shared_library_task.feature
96
+ - features/static_library_task.feature
97
+ - features/step_definitions/paper_house_steps.rb
98
+ - features/support/env.rb
99
+ - features/support/hooks.rb
100
+ - lib/paper_house.rb
101
+ - lib/paper_house/auto_depends.rb
102
+ - lib/paper_house/build_task.rb
103
+ - lib/paper_house/c_extension_task.rb
104
+ - lib/paper_house/cc_options.rb
105
+ - lib/paper_house/dependency.rb
106
+ - lib/paper_house/executable_task.rb
107
+ - lib/paper_house/library_task.rb
108
+ - lib/paper_house/linker_options.rb
109
+ - lib/paper_house/platform.rb
110
+ - lib/paper_house/safe_popen.rb
111
+ - lib/paper_house/shared_library_task.rb
112
+ - lib/paper_house/static_library_task.rb
113
+ - lib/paper_house/version.rb
114
+ - paper_house.gemspec
115
+ - spec/paper_house/c_extension_task_spec.rb
116
+ - spec/paper_house/cc_options_spec.rb
117
+ - spec/paper_house/executable_task_spec.rb
118
+ - spec/paper_house/shared_library_task_spec.rb
119
+ - spec/paper_house/static_library_task_spec.rb
120
+ - spec/paper_house/version_spec.rb
121
+ - spec/spec_helper.rb
122
+ homepage: http://github.com/trema/paper-house
123
+ licenses:
124
+ - GPL3
125
+ metadata: {}
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project:
142
+ rubygems_version: 2.0.7
143
+ signing_key:
144
+ specification_version: 4
145
+ summary: Rake for C projects.
146
+ test_files:
147
+ - features/c_extension_task.feature
148
+ - features/executable_task.feature
149
+ - features/shared_library_task.feature
150
+ - features/static_library_task.feature
151
+ - features/step_definitions/paper_house_steps.rb
152
+ - features/support/env.rb
153
+ - features/support/hooks.rb
154
+ - spec/paper_house/c_extension_task_spec.rb
155
+ - spec/paper_house/cc_options_spec.rb
156
+ - spec/paper_house/executable_task_spec.rb
157
+ - spec/paper_house/shared_library_task_spec.rb
158
+ - spec/paper_house/static_library_task_spec.rb
159
+ - spec/paper_house/version_spec.rb
160
+ - spec/spec_helper.rb
161
+ has_rdoc: