canoe 0.3.3.1 → 0.3.3.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 +4 -4
- data/lib/workspace/build.rb +1 -1
- data/lib/workspace/test.rb +16 -18
- data/lib/workspace/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 74d6ddb337f4f8d2b52f18e5f6d3f2925211481dd5ad139ba555675bf434d356
|
|
4
|
+
data.tar.gz: 9828b9850dc35c90ba98a93f3b63a53df1ac102ba0c3c5ae41716f1f670e702d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bbd6271cff5a4a5c6342918b9b9c1420216016d185a8979d7d177ce78a3e01e26d4984dc69c90aec0706824fd14e6be0dd9cfb1fb612988bad9412241e16326f
|
|
7
|
+
data.tar.gz: 0e39977c7d620b0cc5b8fc55ab9e6b79049c9ca01534e75ef2f856d5fd2005e56102337aeb19e34800d948058e83c6e74af54e51bf6f646fe61edbd002e14c40
|
data/lib/workspace/build.rb
CHANGED
|
@@ -135,7 +135,7 @@ module Canoe
|
|
|
135
135
|
puts "#{'[BUILDING TARGET]'.magenta}..."
|
|
136
136
|
target = "#{@target}/#{@name}"
|
|
137
137
|
build_time = File.exist?(target) ? File.mtime(target) : Time.new(0)
|
|
138
|
-
files = DepAnalyzer.compiling_filter
|
|
138
|
+
files = DepAnalyzer.compiling_filter(target_deps, build_time, @source_suffix, @header_suffix)
|
|
139
139
|
|
|
140
140
|
if files.empty? && File.exist?(target)
|
|
141
141
|
puts "nothing to do, all up to date"
|
data/lib/workspace/test.rb
CHANGED
|
@@ -8,7 +8,7 @@ module Canoe
|
|
|
8
8
|
# we don't handle spaces
|
|
9
9
|
test_single(args[0], args[1..].join(" "))
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
# extract one test file's dependency
|
|
13
13
|
def extract_one_file(file, deps)
|
|
14
14
|
ret = deps[file].map { |f| f.gsub(".#{@header_suffix}", ".#{@source_suffix}") }
|
|
@@ -42,10 +42,11 @@ module Canoe
|
|
|
42
42
|
bin = "#{@target_short}/test_#{name}"
|
|
43
43
|
|
|
44
44
|
rebuild ||= !File.exist?(bin)
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
file = "#{@tests_short}/test_#{name}.#{@source_suffix}"
|
|
47
|
+
abort_on_err "No test file exists for #{name}" unless File.exist?(file)
|
|
47
48
|
rebuild ||= File.mtime(bin) < File.mtime(file)
|
|
48
|
-
|
|
49
|
+
|
|
49
50
|
deps = fetch_all_deps
|
|
50
51
|
extract_one_file(file, deps).each do |f|
|
|
51
52
|
rebuild ||= File.mtime(bin) < File.mtime(f) || File.mtime(bin) < File.mtime(hdr_of_src(f))
|
|
@@ -77,26 +78,22 @@ module Canoe
|
|
|
77
78
|
end.min
|
|
78
79
|
end
|
|
79
80
|
|
|
80
|
-
# @deps is the dependency hash for tests
|
|
81
|
-
# cyclic dependency is not handled
|
|
82
|
-
# compiler should first be built
|
|
83
|
-
def compile_one_test(test_file, deps)
|
|
84
|
-
extract_one_file(test_file, deps).each do |f|
|
|
85
|
-
o = file_to_obj(f)
|
|
86
|
-
next if File.exist?(o) && File.mtime(o) > File.mtime(f) && File.mtime(o) > File.mtime(hdr_of_src(f))
|
|
87
|
-
|
|
88
|
-
compile(f, o)
|
|
89
|
-
end
|
|
90
|
-
compile(test_file, file_to_obj(test_file))
|
|
91
|
-
end
|
|
92
|
-
|
|
93
81
|
def link_one_test(test_file, deps)
|
|
94
82
|
target = "#{@target_short}/#{File.basename(test_file, '.*')}"
|
|
95
83
|
@compiler.link_executable target, extract_one_file_obj(test_file, deps) + [file_to_obj(test_file)]
|
|
96
84
|
end
|
|
97
85
|
|
|
98
86
|
def build_one_test(test_file, deps)
|
|
99
|
-
|
|
87
|
+
files = DepAnalyzer.compiling_filter(target_deps, Time.new(0), @source_suffix, @header_suffix)
|
|
88
|
+
flag = true
|
|
89
|
+
files << test_file
|
|
90
|
+
|
|
91
|
+
files.each do |f|
|
|
92
|
+
o = file_to_obj(f)
|
|
93
|
+
flag = false unless compile f, o
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
abort_on_err("Compiling errors encountered") unless flag;
|
|
100
97
|
link_one_test(test_file, deps)
|
|
101
98
|
end
|
|
102
99
|
|
|
@@ -109,7 +106,7 @@ module Canoe
|
|
|
109
106
|
|
|
110
107
|
files.each do |f|
|
|
111
108
|
printf "#{stepper.progress_as_str.green} compiling #{f} "
|
|
112
|
-
|
|
109
|
+
build_one_test(f, deps)
|
|
113
110
|
stepper.step
|
|
114
111
|
end
|
|
115
112
|
end
|
|
@@ -126,6 +123,7 @@ module Canoe
|
|
|
126
123
|
end
|
|
127
124
|
|
|
128
125
|
def build_test
|
|
126
|
+
build_compiler_from_config
|
|
129
127
|
puts "#{'[COMPILING TESTS]'.magenta}..."
|
|
130
128
|
return unless test_build_time
|
|
131
129
|
|
data/lib/workspace/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: canoe
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.3.
|
|
4
|
+
version: 0.3.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- XIONG Ziwei
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-12-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: |+
|
|
14
14
|
Canoe offers project management and building facilities to C/C++ projects.
|