cxxproject 0.6.28 → 0.6.29

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- builder (3.0.0)
4
+ builder (3.1.3)
5
5
  diff-lcs (1.1.3)
6
6
  frazzle (0.1.3)
7
7
  grit (2.5.0)
@@ -17,9 +17,9 @@ GEM
17
17
  rspec-expectations (~> 2.11.0)
18
18
  rspec-mocks (~> 2.11.0)
19
19
  rspec-core (2.11.1)
20
- rspec-expectations (2.11.2)
20
+ rspec-expectations (2.11.3)
21
21
  diff-lcs (~> 1.1.3)
22
- rspec-mocks (2.11.1)
22
+ rspec-mocks (2.11.2)
23
23
  ruby_parser (2.3.1)
24
24
  sexp_processor (~> 3.0)
25
25
  sexp_processor (3.2.0)
@@ -142,41 +142,21 @@ module Cxxproject
142
142
  cmd += linker[:LIB_POSTFIX_FLAGS].split(" ") # TODO ... is this still needed e.g. for diab
143
143
 
144
144
  mapfileStr = @mapfile ? " >#{@mapfile}" : ""
145
- if Cxxproject::Utils.old_ruby?
146
- cmd.map! {|c| ((c.include?(" ")) ? ("\""+c+"\"") : c )}
147
-
148
- # TempFile used, because some compilers, e.g. diab, uses ">" for piping to map files:
149
- cmdLinePrint = cmd.join(" ")
150
- cmdLine = cmdLinePrint + " 2>" + get_temp_filename
151
- if cmdLine.length > 8000
152
- inputName = get_executable_name+".tmp"
153
- File.open(inputName,"wb") { |f| f.write(cmd[1..-1].join(" ")) }
154
- inputName = "\""+inputName+"\"" if inputName.include?(' ')
155
- strCmd = "#{linker[:COMMAND] + " @" + inputName + mapfileStr + " 2>" + get_temp_filename}"
156
- else
157
- strCmd = "#{cmd.join(" ") + mapfileStr + " 2>" + get_temp_filename}"
158
- end
159
- printCmd(cmdLinePrint, "Linking #{get_executable_name}", false)
160
- consoleOutput = `#{strCmd}`
161
- consoleOutput.concat(read_file_or_empty_string(get_temp_filename))
162
- else
163
- rd, wr = IO.pipe
164
- cmdLinePrint = cmd
165
- printCmd(cmdLinePrint, "Linking #{get_executable_name}", false)
166
- cmd << {
167
- :out=> @mapfile ? "#{@mapfile}" : wr, # > xy.map
168
- :err=>wr
169
- }
170
- sp = spawn(*cmd)
171
- cmd.pop
172
-
173
- # for console print
174
- cmd << " >#{@mapfile}" if @mapfile
175
- consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
176
- end
145
+ rd, wr = IO.pipe
146
+ cmdLinePrint = cmd
147
+ printCmd(cmdLinePrint, "Linking #{get_executable_name}", false)
148
+ cmd << {
149
+ :out=> @mapfile ? "#{@mapfile}" : wr, # > xy.map
150
+ :err=>wr
151
+ }
152
+ sp = spawn(*cmd)
153
+ cmd.pop
154
+
155
+ # for console print
156
+ cmd << " >#{@mapfile}" if @mapfile
157
+ consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
177
158
 
178
159
  process_result(cmdLinePrint, consoleOutput, linker[:ERROR_PARSER], nil)
179
-
180
160
  check_config_file()
181
161
  end
182
162
  end
@@ -286,27 +286,14 @@ module Cxxproject
286
286
  cmd += compiler[:PREPRO_FLAGS].split(" ") if Rake::application.preproFlags
287
287
  cmd << sourceRel
288
288
 
289
- if Cxxproject::Utils.old_ruby?
290
- cmd.map! {|c| ((c.include?(" ")) ? ("\""+c+"\"") : c )}
291
- cmdLine = cmd.join(" ")
292
- if cmdLine.length > 8000
293
- inputName = objectRel+".tmp"
294
- File.open(inputName,"wb") { |f| f.write(cmd[1..-1].join(" ")) }
295
- inputName = "\""+inputName+"\"" if inputName.include?(" ")
296
- consoleOutput = `#{compiler[:COMMAND] + " @" + inputName}`
297
- else
298
- consoleOutput = `#{cmd.join(" ")} 2>&1`
299
- end
300
- else
301
- rd, wr = IO.pipe
302
- cmd << {
303
- :err=>wr,
304
- :out=>wr
305
- }
306
- sp = spawn(*cmd)
307
- cmd.pop
308
- consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
309
- end
289
+ rd, wr = IO.pipe
290
+ cmd << {
291
+ :err=>wr,
292
+ :out=>wr
293
+ }
294
+ sp = spawn(*cmd)
295
+ cmd.pop
296
+ consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
310
297
 
311
298
  process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "Compiling #{sourceRel}")
312
299
 
@@ -80,29 +80,16 @@ module Cxxproject
80
80
  cmd << aname # -o debug/x.exe
81
81
  cmd += objs
82
82
 
83
- if Cxxproject::Utils.old_ruby?
84
- cmd.map! {|c| c.include?(' ') ? "\"#{c}\"" : c }
85
-
86
- cmdLine = cmd.join(" ")
87
- if cmdLine.length > 8000
88
- inputName = aname+".tmp"
89
- File.open(inputName,"wb") { |f| f.write(cmd[1..-1].join(" ")) }
90
- consoleOutput = `#{archiver[:COMMAND] + " @" + inputName}`
91
- else
92
- consoleOutput = `#{cmd.join(" ")} 2>&1`
93
- end
94
- else
95
- cmd.map! {|c| c.include?(' ') ? "\"#{c}\"" : c }
96
- rd, wr = IO.pipe
97
- cmd << {
98
- :err => wr,
99
- :out => wr
100
- }
101
- sp = spawn(*cmd)
102
- cmd.pop
103
-
104
- consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
105
- end
83
+ cmd.map! {|c| c.include?(' ') ? "\"#{c}\"" : c }
84
+ rd, wr = IO.pipe
85
+ cmd << {
86
+ :err => wr,
87
+ :out => wr
88
+ }
89
+ sp = spawn(*cmd)
90
+ cmd.pop
91
+
92
+ consoleOutput = ProcessHelper.readOutput(sp, rd, wr)
106
93
 
107
94
  process_result(cmd, consoleOutput, archiver[:ERROR_PARSER], "Creating #{aname}")
108
95
 
@@ -5,61 +5,47 @@ class File
5
5
  SLASH = '/'
6
6
 
7
7
  def self.is_absolute?(filename)
8
- if Cxxproject::Utils.old_ruby?
9
- filename[0] == 47 or filename[1] == 58 # 47 = /, 58 = :
10
- else
11
- filename[0] == SLASH or filename[1] == ':'
12
- end
8
+ filename[0] == SLASH or filename[1] == ':'
13
9
  end
14
10
 
15
11
  def self.rel_from_to_project(from,to,endWithSlash = true)
16
12
  return nil if from.nil? or to.nil?
17
-
18
- toSplitted = to.split('/')
19
- fromSplitted = from.split('/')
20
-
21
- max = [toSplitted.length, fromSplitted.length].min
22
-
23
- return nil if max < 1
24
-
25
- i = 0
26
13
 
27
- # path letter in windows may be case different
28
- if toSplitted[0].length > 1 and fromSplitted[0].length > 1
29
- if Cxxproject::Utils.old_ruby?
30
- i = 1 if toSplitted[0][1] == 58 and fromSplitted[0][1] == 58 and toSplitted[0].swapcase[0] == fromSplitted[0][0]
31
- else
32
- i = 1 if toSplitted[0][1] == ':' and fromSplitted[0][1] == ':' and toSplitted[0].swapcase[0] == fromSplitted[0][0]
33
- end
34
- end
35
-
36
- while i < max
37
- break if toSplitted[i] != fromSplitted[i]
38
- i += 1
39
- end
40
- j = i
41
-
42
- res = []
43
- while i < fromSplitted.length
44
- res << ".."
45
- i += 1
46
- end
47
-
48
- while j < toSplitted.length
49
- res << toSplitted[j]
50
- j += 1
51
- end
52
-
53
- if res.length == 0
54
- return ""
55
- end
56
-
57
- res = res.join('/')
58
- res += "/" if endWithSlash
59
- res
14
+ toSplitted = to.split('/')
15
+ fromSplitted = from.split('/')
16
+ max = [toSplitted.length, fromSplitted.length].min
17
+ return nil if max < 1
18
+
19
+ i = 0
20
+ # path letter in windows may be case different
21
+ if toSplitted[0].length > 1 and fromSplitted[0].length > 1
22
+ i = 1 if toSplitted[0][1] == ':' and fromSplitted[0][1] == ':' and toSplitted[0].swapcase[0] == fromSplitted[0][0]
23
+ end
24
+ while i < max
25
+ break if toSplitted[i] != fromSplitted[i]
26
+ i += 1
27
+ end
28
+ j = i
29
+ res = []
30
+ while i < fromSplitted.length
31
+ res << ".."
32
+ i += 1
33
+ end
34
+
35
+ while j < toSplitted.length
36
+ res << toSplitted[j]
37
+ j += 1
38
+ end
39
+
40
+ if res.length == 0
41
+ return ""
42
+ end
43
+
44
+ res = res.join('/')
45
+ res += "/" if endWithSlash
46
+ res
60
47
  end
61
48
 
62
-
63
49
  def self.add_prefix(prefix, file)
64
50
  if not prefix or is_absolute?(file)
65
51
  file
@@ -18,7 +18,7 @@ module Cxxproject
18
18
  # simple class to colorize compiler output
19
19
  # the class depends on the rainbow gem
20
20
  class ColorizingFormatter
21
-
21
+
22
22
  # colors are not instance vars due to caching the building blocks
23
23
  def self.setColorScheme(scheme)
24
24
  if scheme == :black
@@ -76,7 +76,7 @@ module Cxxproject
76
76
  else
77
77
  res << l
78
78
  end
79
- res << "\n"
79
+ res << "\n"
80
80
  end
81
81
  rescue Exception => e
82
82
  puts "Error while parsing compiler output: #{e}"
@@ -5,14 +5,14 @@ module Cxxproject
5
5
 
6
6
  def self.readOutput(sp, rd, wr)
7
7
  wr.close
8
-
8
+
9
9
  consoleOutput = ""
10
10
  begin
11
- while not rd.eof?
11
+ while not rd.eof?
12
12
  tmp = rd.read(1000)
13
13
  if (tmp != nil)
14
14
  consoleOutput << tmp
15
- end
15
+ end
16
16
  end
17
17
  rescue Exception=>e
18
18
  # Seems to be a bug in ruby: sometimes there is a bad file descriptor on Windows instead of eof, which causes
@@ -20,24 +20,22 @@ module Cxxproject
20
20
  # how to "break" the loop.
21
21
  # This problem occurs on Windows command shell and Cygwin.
22
22
  end
23
-
23
+
24
24
  Process.wait(sp)
25
25
  rd.close
26
-
27
- # seems that pipe cannot handle non-ascii characters right on windows (even with correct encoding)
26
+
27
+ # seems that pipe cannot handle non-ascii characters right on windows (even with correct encoding)
28
28
  consoleOutput.gsub!(/\xE2\x80\x98/,"`") # ���
29
29
  consoleOutput.gsub!(/\xE2\x80\x99/,"'") # ���
30
-
30
+
31
31
  consoleOutput
32
32
  end
33
33
 
34
34
  def self.spawnProcess(cmdLine)
35
- return system(cmdLine) if Cxxproject::Utils.old_ruby?
36
-
37
35
  @@pid = spawn(cmdLine)
38
36
  pid, status = Process.wait2(@@pid)
39
37
  @@pid = nil
40
- status.success?
38
+ status.success?
41
39
  end
42
40
 
43
41
  def self.killProcess
@@ -47,7 +45,7 @@ module Cxxproject
47
45
  end
48
46
  @@pid = nil
49
47
  end
50
-
48
+
51
49
  end
52
50
 
53
- end
51
+ end
@@ -1,5 +1,5 @@
1
1
  module Cxxproject
2
- VERSION = '0.6.28'
2
+ VERSION = '0.6.29'
3
3
 
4
4
  class Version
5
5
  def self.cxxproject
data/rake_helper/spec.rb CHANGED
@@ -44,7 +44,9 @@ def new_rspec
44
44
  desc "Run examples"
45
45
  RSpec::Core::RakeTask.new() do |t|
46
46
  t.pattern = SPEC_PATTERN
47
- t.rspec_opts = '-r ./junit.rb -f JUnit -o build/test_details.xml'
47
+ if ENV['BUILD_SERVER']
48
+ t.rspec_opts = '-r ./junit.rb -f JUnit -o build/test_details.xml'
49
+ end
48
50
  end
49
51
 
50
52
  desc 'Run examples with coverage'
@@ -52,30 +54,12 @@ def new_rspec
52
54
  CLOBBER.include('coverage')
53
55
  end
54
56
 
55
- def old_rspec
56
- require 'spec/rake/spectask'
57
- desc "Run examples"
58
- Spec::Rake::SpecTask.new() do |t|
59
- t.spec_files = SPEC_PATTERN
60
- end
61
- end
62
-
63
57
  namespace :spec do
64
- begin
65
- new_rspec
66
- rescue LoadError
67
- begin
68
- old_rspec
69
- rescue LoadError
70
- desc "Run examples"
71
- task 'spec' do
72
- puts 'rspec not installed...! please install with "gem install rspec"'
73
- end
74
- end
75
- end
58
+ new_rspec
76
59
  end
60
+
77
61
  task :spec do
78
62
  puts 'Please use spec:spec or spec:coverage'
79
63
  end
80
- task :gem => [:spec]
81
64
 
65
+ task :gem => [:spec]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cxxproject
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.28
4
+ version: 0.6.29
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-11 00:00:00.000000000 Z
12
+ date: 2012-09-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colored
@@ -168,12 +168,9 @@ files:
168
168
  - rake_helper/spec.rb
169
169
  - roodi.yml
170
170
  - spec/building_block_spec.rb
171
- - spec/cxxproject_2_rake_spe.rb
172
171
  - spec/file_ext_spec.rb
173
172
  - spec/ide_interface_spec.rb
174
- - spec/object_dependency_spe.rb
175
173
  - spec/plugin_context_spec.rb
176
- - spec/project_path_spe.rb
177
174
  - spec/provider_spec.rb
178
175
  - spec/rake_listener_ext_spec.rb
179
176
  - spec/spec_helper.rb
@@ -220,7 +217,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
217
  version: '0'
221
218
  segments:
222
219
  - 0
223
- hash: -1684714182921890965
220
+ hash: 4389251987030978626
224
221
  required_rubygems_version: !ruby/object:Gem::Requirement
225
222
  none: false
226
223
  requirements:
@@ -1,167 +0,0 @@
1
- require 'spec_helper'
2
- require 'cxxproject'
3
- require 'cxxproject/utils/cleanup'
4
-
5
- RSPECDIR = File.dirname(__FILE__)
6
- puts RSPECDIR
7
-
8
- class SpecTaskListener
9
- def initialize
10
- @task_execution_count = 0
11
- end
12
- def before_prerequisites(name)
13
- end
14
-
15
- def after_prerequisites(name)
16
- end
17
-
18
- def before_execute(name)
19
- @task_execution_count += 1
20
- end
21
-
22
- def after_execute(name)
23
- end
24
- def reset_exec_count()
25
- @task_execution_count = 0
26
- end
27
- def get_exec_count()
28
- @task_execution_count
29
- end
30
- end
31
-
32
- def rebuild
33
- tasks = fresh_cxx.all_tasks
34
- execute_all_tasks(tasks)
35
- end
36
-
37
- def check_rebuilding (end_product, prereq_file, should_rebuild = true)
38
- sleep(1)
39
- FileUtils.touch prereq_file
40
- # prereq_file should be newer
41
- File.mtime(prereq_file).should > File.mtime(end_product)
42
- rebuild
43
- if should_rebuild
44
- # prereq_file should NOT be newer
45
- File.mtime(prereq_file).should <= File.mtime(end_product)
46
- else
47
- # prereq_file should still be newer
48
- File.mtime(prereq_file).should > File.mtime(end_product)
49
- end
50
- end
51
-
52
- def execute_all_tasks(tasks)
53
- tasks.each do |t|
54
- t.invoke
55
- end
56
- end
57
-
58
- def fresh_cxx
59
- Cxxproject::Utils.cleanup_rake
60
- outputdir = 'output'
61
- CxxProject2Rake.new(Dir.glob('**/project.rb'), outputdir, 'gcc')
62
- end
63
-
64
- def cleanup
65
- rm_r 'output' if File.directory?('output')
66
- end
67
-
68
- ONLY_ONE_HEADER = "#{RSPECDIR}/testdata/onlyOneHeader"
69
- describe CxxProject2Rake do
70
- before(:all) do
71
- Rake::application.options.silent = true
72
- end
73
-
74
- it 'should provide runtask for executables' do
75
- cd ONLY_ONE_HEADER, :verbose => false do
76
- cleanup
77
- tasks = fresh_cxx.all_tasks
78
- Rake::Task['run:basic'].invoke
79
- cleanup
80
- end
81
- end
82
-
83
- it 'should rebuild only when one file was changed' do
84
- require 'cxxproject/ext/rake_listener'
85
- require 'cxxproject/ext/rake_dirty'
86
-
87
- listener = SpecTaskListener.new
88
- Rake::add_listener(listener)
89
- cd(ONLY_ONE_HEADER, :verbose => false) do
90
- # fresh build
91
- listener.reset_exec_count
92
- cleanup
93
-
94
- tasks = fresh_cxx.all_tasks
95
- CLOBBER.each { |fn| rm_r fn rescue nil }
96
- execute_all_tasks(tasks)
97
- fresh_build_steps = listener.get_exec_count
98
-
99
- # rebuild, nothing changed
100
- listener.reset_exec_count
101
- execute_all_tasks(tasks)
102
- rebuild_build_steps = listener.get_exec_count
103
-
104
- # rebuild, nothing changed
105
- listener.reset_exec_count
106
- execute_all_tasks(tasks)
107
- listener.get_exec_count.should == rebuild_build_steps
108
-
109
- # rebuild after header changed
110
- listener.reset_exec_count
111
- sleep(1)
112
- files2touch = Dir.glob('help.h')
113
- FileUtils.touch files2touch
114
- execute_all_tasks(fresh_cxx.all_tasks)
115
- rebuild_after_touch_steps = listener.get_exec_count
116
- rebuild_after_touch_steps.should > rebuild_build_steps
117
-
118
- # rebuild, nothing changed
119
- listener.reset_exec_count
120
- execute_all_tasks(tasks)
121
- listener.get_exec_count.should == rebuild_build_steps
122
-
123
- cleanup
124
- end
125
- Rake::remove_listener(listener)
126
- end
127
-
128
- it 'should rebuild when any source file changes' do
129
- cd("#{RSPECDIR}/testdata/basic", :verbose => false) do
130
- cleanup
131
-
132
- tasks = fresh_cxx.all_tasks
133
- CLOBBER.each { |fn| rm_r fn rescue nil }
134
- execute_all_tasks(tasks)
135
-
136
- # dependencies: exe -> libC -> libB
137
-
138
- headerA = 'exe12/help.h'
139
- sourceA = 'exe12/main.cpp'
140
- projectA = 'exe12/project.rb'
141
- headerB = 'lib1/lib1.h'
142
- sourceB = 'lib1/lib1.cpp'
143
- projectB = 'lib1/project.rb'
144
- headerC = 'lib2/lib2.h'
145
- sourceC = 'lib2/lib2.cpp'
146
- projectC = 'lib2/project.rb'
147
- exe = 'output/basic.exe'
148
- libB = 'output/libs/lib1.a'
149
- libC = 'output/libs/lib2.a'
150
-
151
- check_rebuilding exe, headerA
152
- check_rebuilding exe, sourceA
153
- check_rebuilding exe, projectA
154
- check_rebuilding exe, headerB
155
- check_rebuilding exe, headerC
156
- check_rebuilding libB, sourceA, false
157
- check_rebuilding libB, sourceB
158
-
159
- check_rebuilding libB, sourceC, false
160
- check_rebuilding libC, sourceB
161
-
162
- cleanup
163
- Cxxproject::Utils.cleanup_rake
164
- end
165
- end
166
-
167
- end
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
- require 'cxxproject'
3
- require 'cxxproject/ext/rake_listener.rb'
4
- require 'cxxproject/utils/cleanup'
5
-
6
- describe Rake::Task do
7
- compiler = 'gcc'
8
- before(:each) do
9
- Rake::application.options.silent = true
10
- Cxxproject::Utils.cleanup_rake
11
- end
12
- after(:each) do
13
- Cxxproject::Utils.cleanup_rake
14
- end
15
-
16
- it 'should fail if source of object is missing' do
17
- file 'test.cc' => 'compiler'
18
- File.delete('test.cc') if File.exists?('test.cc')
19
- sl = Cxxproject::SourceLibrary.new('testlib').set_sources(['test.cc']).set_project_dir(".")
20
- cxx = CxxProject2Rake.new([], 'build', compiler)
21
-
22
- task = Rake::application['lib:testlib']
23
- task.invoke
24
- task.failure.should eq(true)
25
-
26
- FileUtils.rm_rf('build')
27
- end
28
-
29
- it 'should not fail if include-dependency of object is missing' do
30
- File.open('test.cc', 'w') do |io|
31
- io.puts('#include "test.h"')
32
- end
33
-
34
- File.open('test.h', 'w') do |io|
35
- end
36
-
37
- sl = Cxxproject::SourceLibrary.new('testlib').set_sources(['test.cc']).set_project_dir(".")
38
- CxxProject2Rake.new([], 'build', compiler)
39
-
40
- task = Rake::application['lib:testlib']
41
- task.invoke
42
- task.failure.should == false
43
-
44
- Cxxproject::Utils.cleanup_rake
45
-
46
- FileUtils.rm_rf('test.h')
47
- File.open('test.cc', 'w') do |io|
48
- end
49
-
50
- sl = Cxxproject::SourceLibrary.new('testlib').set_sources(['test.cc']).set_project_dir(".")
51
- CxxProject2Rake.new([], 'build', compiler)
52
-
53
- task = Rake::application['build/libs/libtestlib.a']
54
- task.invoke
55
- task.failure.should == false
56
-
57
- FileUtils.rm_rf('test.cc')
58
- end
59
-
60
- end
@@ -1,70 +0,0 @@
1
- require 'spec_helper'
2
- require 'cxxproject'
3
- require 'cxxproject/utils/cleanup'
4
-
5
- RSPECDIR = File.dirname(__FILE__)
6
-
7
- describe CxxProject2Rake do
8
-
9
- def execute_all_tasks(tasks)
10
- tasks.each do |t|
11
- t.invoke
12
- end
13
- end
14
-
15
- def fresh_cxx(outputdir,base)
16
- Cxxproject::Utils.cleanup_rake
17
- project_configs = nil
18
- cd base do # have to be relative to base
19
- project_configs = Dir.glob('**/project.rb')
20
- end
21
- CxxProject2Rake.new(project_configs, outputdir, 'gcc', base)
22
- end
23
-
24
- # def is_older? fileA, fileB
25
- # File.mtime(fileA) < File.mtime(fileB)
26
- # end
27
-
28
- # def is_newer? fileA, fileB
29
- # File.mtime(fileA) > File.mtime(fileB)
30
- # end
31
-
32
- def test_on_level(base, outputdir)
33
- libOne = "#{outputdir}/libs/lib1.a"
34
- libTwo = "#{outputdir}/libs/lib2.a"
35
- exe = "#{outputdir}/basic.exe"
36
- exe2 = "#{outputdir}/debug.exe"
37
- files = [libOne,libTwo,exe,exe2]
38
- rm_r outputdir if File.directory?(outputdir)
39
- tasks = fresh_cxx(outputdir, base).all_tasks
40
- CLOBBER.each { |fn| rm_r fn rescue nil }
41
-
42
- files.all? {|f| File.exists?(f).should be_false }
43
-
44
- execute_all_tasks(tasks)
45
-
46
- files.all? {|f| File.exists?(f).should be_true }
47
-
48
- # cleanup
49
- rm_r outputdir if File.directory?(outputdir)
50
- Cxxproject::Utils.cleanup_rake
51
- end
52
-
53
- it 'should resolve paths on different levels' do
54
- outputdir = 'output'
55
-
56
- cd("#{RSPECDIR}/testdata/multiple_levels", :verbose => false) do
57
- test_on_level(".", outputdir)
58
- end
59
-
60
- cd("#{RSPECDIR}/testdata/multiple_levels/mainproject", :verbose => false) do
61
- test_on_level("..", outputdir)
62
- end
63
-
64
- cd("#{RSPECDIR}/testdata", :verbose => false) do
65
- test_on_level("multiple_levels/", outputdir)
66
- end
67
- end
68
-
69
- end
70
-