rscons 0.0.1 → 0.0.2
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.
- checksums.yaml +15 -0
- data/lib/rscons/builders/program.rb +2 -2
- data/lib/rscons/environment.rb +15 -10
- data/lib/rscons/monkey/string.rb +1 -0
- data/lib/rscons/version.rb +1 -1
- data/rscons.gemspec +2 -1
- data/spec/rscons/environment_spec.rb +24 -0
- metadata +10 -33
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MTMyNzAyZWY0MzY3YWExYWUzNmFhZjBmNjVkMGUzNmRiZGUxZjZkNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MTc4NDU4ODYwYjA4ZjQ4ZDhlNjgzZWEzYTdjZTg2Y2QyZTZhMzQzNA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Mjc2M2EzY2E3ZDE3NWVhMDlhM2RlYWNlMWRlYWQzODVmYmI5NjdjM2Q0ZGY5
|
10
|
+
ZGQzNjg4MjJkY2Y5ZTJkNzRjMzBiZGQyNDQ1YTFiZjE0OTQ4ZjM5ZjYwODFk
|
11
|
+
NzBkZGViZDQ4YzhhZmUzZmViMGIzNjQ4Y2Q3M2ZiNjA0Y2ViNzA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NDdmMjE3NDQ2ZWI4YmQ1MzdkNWNjZjJiNWQxZjJlMDU1MDcwZDQ2OGQyOWMx
|
14
|
+
NzM4MDlmMzEwYmVkOGJjZWFhNzVhY2Q0MGM2YTAwYmZjNmI2Mzg3ZWFiOGI4
|
15
|
+
ZTc2MDk3ZTgyZTgxMTliYTJhMTU1MDU3YWIzMDBmMTgwNTZiNjI=
|
@@ -8,9 +8,9 @@ module Rscons
|
|
8
8
|
'OBJSUFFIX' => '.o',
|
9
9
|
'LIBSUFFIX' => '.a',
|
10
10
|
'LDFLAGS' => [],
|
11
|
-
'
|
11
|
+
'LIBPATH' => [],
|
12
12
|
'LIBS' => [],
|
13
|
-
'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[
|
13
|
+
'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATH]', '-l$[LIBS]']
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
data/lib/rscons/environment.rb
CHANGED
@@ -20,7 +20,7 @@ module Rscons
|
|
20
20
|
@varset = VarSet.new(variables)
|
21
21
|
@targets = {}
|
22
22
|
@builders = {}
|
23
|
-
@build_dirs =
|
23
|
+
@build_dirs = []
|
24
24
|
@varset[:exclude_builders] ||= []
|
25
25
|
unless @varset[:exclude_builders] == :all
|
26
26
|
exclude_builders = Set.new(@varset[:exclude_builders] || [])
|
@@ -52,9 +52,6 @@ module Rscons
|
|
52
52
|
@builders.each do |builder_name, builder|
|
53
53
|
env.add_builder(builder)
|
54
54
|
end
|
55
|
-
@build_dirs.each do |src_dir, obj_dir|
|
56
|
-
env.build_dir(src_dir, obj_dir)
|
57
|
-
end
|
58
55
|
env.append(@varset)
|
59
56
|
env.append(variables)
|
60
57
|
|
@@ -79,7 +76,9 @@ module Rscons
|
|
79
76
|
# Specify a build directory for this Environment.
|
80
77
|
# Source files from src_dir will produce object files under obj_dir.
|
81
78
|
def build_dir(src_dir, obj_dir)
|
82
|
-
|
79
|
+
src_dir = src_dir.gsub('\\', '/') if src_dir.is_a?(String)
|
80
|
+
obj_dir = obj_dir.gsub('\\', '/')
|
81
|
+
@build_dirs << [src_dir, obj_dir]
|
83
82
|
end
|
84
83
|
|
85
84
|
# Return the file name to be built from source_fname with suffix suffix.
|
@@ -89,7 +88,12 @@ module Rscons
|
|
89
88
|
def get_build_fname(source_fname, suffix)
|
90
89
|
build_fname = source_fname.set_suffix(suffix).gsub('\\', '/')
|
91
90
|
@build_dirs.each do |src_dir, obj_dir|
|
92
|
-
|
91
|
+
if src_dir.is_a?(Regexp)
|
92
|
+
build_fname.sub!(src_dir, obj_dir)
|
93
|
+
else
|
94
|
+
build_fname.sub!(/^#{src_dir}\//, "#{obj_dir}/")
|
95
|
+
end
|
96
|
+
build_fname.gsub!('\\', '/')
|
93
97
|
end
|
94
98
|
FileUtils.mkdir_p(File.dirname(build_fname))
|
95
99
|
build_fname
|
@@ -212,10 +216,11 @@ module Rscons
|
|
212
216
|
if line =~ /^(.*)\\\s*$/
|
213
217
|
buildup += ' ' + $1
|
214
218
|
else
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
+
buildup += ' ' + line
|
220
|
+
if buildup =~ /^(.*): (.*)$/
|
221
|
+
mf_target, mf_deps = $1.strip, $2
|
222
|
+
if mf_target == target
|
223
|
+
deps += mf_deps.split(' ').map(&:strip)
|
219
224
|
end
|
220
225
|
end
|
221
226
|
buildup = ''
|
data/lib/rscons/monkey/string.rb
CHANGED
data/lib/rscons/version.rb
CHANGED
data/rscons.gemspec
CHANGED
@@ -10,7 +10,8 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["jholtrop@gmail.com"]
|
11
11
|
gem.description = %q{Software construction library inspired by SCons and implemented in Ruby}
|
12
12
|
gem.summary = %q{Software construction library inspired by SCons and implemented in Ruby}
|
13
|
-
gem.homepage = ""
|
13
|
+
gem.homepage = "https://github.com/holtrop/rscons"
|
14
|
+
gem.license = 'MIT'
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Rscons
|
2
|
+
describe Environment do
|
3
|
+
describe '.parse_makefile_deps' do
|
4
|
+
it 'handles dependencies on one line' do
|
5
|
+
File.should_receive(:read).with('makefile').and_return(<<EOS)
|
6
|
+
module.o: source.cc
|
7
|
+
EOS
|
8
|
+
env = Environment.new
|
9
|
+
env.parse_makefile_deps('makefile', 'module.o').should == ['source.cc']
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'handles dependencies split across many lines' do
|
13
|
+
File.should_receive(:read).with('makefile').and_return(<<EOS)
|
14
|
+
module.o: module.c \\
|
15
|
+
module.h \\
|
16
|
+
other.h
|
17
|
+
EOS
|
18
|
+
env = Environment.new
|
19
|
+
env.parse_makefile_deps('makefile', 'module.o').should == [
|
20
|
+
'module.c', 'module.h', 'other.h']
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rscons
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Josh Holtrop
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec-core
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec-mocks
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec-expectations
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rake
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: simplecov
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: json
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rdoc
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ! '>='
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: yard
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ! '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ! '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -195,38 +176,34 @@ files:
|
|
195
176
|
- lib/rscons/version.rb
|
196
177
|
- rscons.gemspec
|
197
178
|
- spec/build_tests_spec.rb
|
179
|
+
- spec/rscons/environment_spec.rb
|
198
180
|
- spec/spec_helper.rb
|
199
|
-
homepage:
|
200
|
-
licenses:
|
181
|
+
homepage: https://github.com/holtrop/rscons
|
182
|
+
licenses:
|
183
|
+
- MIT
|
184
|
+
metadata: {}
|
201
185
|
post_install_message:
|
202
186
|
rdoc_options: []
|
203
187
|
require_paths:
|
204
188
|
- lib
|
205
189
|
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
190
|
requirements:
|
208
191
|
- - ! '>='
|
209
192
|
- !ruby/object:Gem::Version
|
210
193
|
version: '0'
|
211
|
-
segments:
|
212
|
-
- 0
|
213
|
-
hash: -2972754259909908675
|
214
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
|
-
none: false
|
216
195
|
requirements:
|
217
196
|
- - ! '>='
|
218
197
|
- !ruby/object:Gem::Version
|
219
198
|
version: '0'
|
220
|
-
segments:
|
221
|
-
- 0
|
222
|
-
hash: -2972754259909908675
|
223
199
|
requirements: []
|
224
200
|
rubyforge_project:
|
225
|
-
rubygems_version:
|
201
|
+
rubygems_version: 2.0.3
|
226
202
|
signing_key:
|
227
|
-
specification_version:
|
203
|
+
specification_version: 4
|
228
204
|
summary: Software construction library inspired by SCons and implemented in Ruby
|
229
205
|
test_files:
|
230
206
|
- spec/build_tests_spec.rb
|
207
|
+
- spec/rscons/environment_spec.rb
|
231
208
|
- spec/spec_helper.rb
|
232
209
|
has_rdoc:
|