From 4c25ace8b3c170af22d630f926c95521030ba768 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 8 Aug 2021 22:50:47 +0900 Subject: Expose all header files of the gems for small compilation After building mruby, if the user compiles and links to `libmruby.a`, expose the included directory of the captured gems. This is a change to the ` /lib/libmruby.flags.mak` file and will result in being added to `bin/mruby-config --cflags`. This eliminates the need for the user to look up the path and add the compiler flag if the user wants to take advantage of her gems publishing features. In the main build with `rake CONFIG=...`, there is no problem because it can only be seen from the gems that depends directly and indirectly as before. However, when compiling independently by the user using `bin/mruby-config`, a header file name collision may occur if a unique header directory is added. --- tasks/libmruby.rake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tasks/libmruby.rake') diff --git a/tasks/libmruby.rake b/tasks/libmruby.rake index 9a7a57ff7..1fb3cbc31 100644 --- a/tasks/libmruby.rake +++ b/tasks/libmruby.rake @@ -14,7 +14,8 @@ MRuby.each_target do file "#{build_dir}/lib/libmruby.flags.mak" => [__FILE__, libmruby_static] do |t| mkdir_p File.dirname t.name open(t.name, 'w') do |f| - f.puts "MRUBY_CFLAGS = #{cc.all_flags}" + gemincs = gems.map { |g| g.export_include_paths.map { |n| g.filename(n) } }.flatten.uniq + f.puts "MRUBY_CFLAGS = #{cc.all_flags([], gemincs)}" f.puts "MRUBY_CC = #{cc.command}" f.puts "MRUBY_LD = #{linker.command}" -- cgit v1.2.3