Skip to content

Commit 2e67533

Browse files
reduce hard-coded build directory path
1 parent 763789c commit 2e67533

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

lib/ruby_wasm/build_system/product/crossruby.rb

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ def initialize(srcdir, toolchain, name: nil)
99
@name = name || File.basename(srcdir)
1010
end
1111

12+
def product_build_dir(crossruby)
13+
File.join(crossruby.ext_build_dir, lib)
14+
end
15+
16+
def linklist(crossruby)
17+
File.join(product_build_dir(crossruby), "link.filelist")
18+
end
19+
1220
def define_task(crossruby)
1321
task "#{crossruby.name}-ext-#{@name}" => [crossruby.configure] do
1422
make_args = []
@@ -19,7 +27,7 @@ def define_task(crossruby)
1927

2028
lib = @name
2129
source = crossruby.source
22-
objdir = "#{crossruby.ext_build_dir}/#{lib}"
30+
objdir = product_build_dir crossruby
2331
FileUtils.mkdir_p objdir
2432
extconf_args = [
2533
"--disable=gems",
@@ -45,9 +53,9 @@ def define_task(crossruby)
4553
make_cmd = %Q(make -C "#{objdir}" #{make_args.join(" ")} static)
4654
sh make_cmd
4755
# A ext can provide link args by link.filelist. It contains only built archive file by default.
48-
unless File.exist?("#{objdir}/link.filelist")
56+
unless File.exist?(linklist(crossruby))
4957
File.write(
50-
"#{objdir}/link.filelist",
58+
linklist(crossruby),
5159
Dir.glob("#{objdir}/*.a").join("\n")
5260
)
5361
end
@@ -89,11 +97,10 @@ def define_task
8997

9098
user_ext_products = @params.user_exts
9199
user_ext_tasks = user_ext_products.map { |prod| prod.define_task(self) }
92-
user_ext_names = user_ext_products.map(&:name)
93100
extinit_task =
94101
task extinit_obj => [@configure, extinit_c_erb] + user_ext_tasks do
95102
mkdir_p File.dirname(extinit_obj)
96-
sh %Q(ruby #{extinit_c_erb} #{user_ext_names.join(" ")} | #{toolchain.cc} -c -x c - -o #{extinit_obj})
103+
sh %Q(ruby #{extinit_c_erb} #{user_ext_products.map(&:name).join(" ")} | #{toolchain.cc} -c -x c - -o #{extinit_obj})
97104
end
98105

99106
install =
@@ -201,7 +208,7 @@ def configure_args(build_triple, toolchain)
201208
end
202209

203210
(user_exts || []).each do |lib|
204-
xldflags << "@#{ext_build_dir}/#{lib.name}/link.filelist"
211+
xldflags << "@#{lib.linklist(self)}"
205212
end
206213
xldflags << extinit_obj
207214

0 commit comments

Comments
 (0)