diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-07-11 23:56:45 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-07-12 14:23:35 +0900 |
| commit | 66909dfe8650e242ed96c26e576498d290ece347 (patch) | |
| tree | 40f281de1bd3a5aca765a4d60bb985feaf970b19 | |
| parent | bc7c5d376a1f4bf65e585841682a8d474a52abed (diff) | |
| download | mruby-66909dfe8650e242ed96c26e576498d290ece347.tar.gz mruby-66909dfe8650e242ed96c26e576498d290ece347.zip | |
Consider `-MP` flag specified when parsing `.d` file
`-MP` flag is used in `tasks/toolchains/android.rake`.
| -rw-r--r-- | lib/mruby/build/command.rb | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/lib/mruby/build/command.rb b/lib/mruby/build/command.rb index 0f18e0e62..d4354225e 100644 --- a/lib/mruby/build/command.rb +++ b/lib/mruby/build/command.rb @@ -127,13 +127,40 @@ module MRuby end private + + # + # === Example of +.d+ file + # + # ==== Without <tt>-MP</tt> compiler flag + # + # /build/host/src/array.o: \ + # /src/array.c \ + # /include/mruby/common.h \ + # /include/mruby/value.h \ + # /src/value_array.h + # + # ==== With <tt>-MP</tt> compiler flag + # + # /build/host/src/array.o: \ + # /src/array.c \ + # /include/mruby/common.h \ + # /include/mruby/value.h \ + # /src/value_array.h + # + # /include/mruby/common.h: + # + # /include/mruby/value.h: + # + # /src/value_array.h: + # def get_dependencies(file) file = file.ext('d') unless File.extname(file) == '.d' + deps = [] if File.exist?(file) - File.read(file).gsub("\\\n ", "").scan(/^\S+:\s+(.+)$/).flatten.map {|s| s.split(' ') }.flatten - else - [] - end + [ MRUBY_CONFIG ] + File.foreach(file){|line| deps << $1 if /^ +(.*?)(?: *\\)?$/ =~ line} + deps.uniq! + end + deps << MRUBY_CONFIG end end |
