[前][次][番号順一覧][スレッド一覧]

ruby-changes:43512

From: nobu <ko1@a...>
Date: Wed, 6 Jul 2016 14:37:18 +0900 (JST)
Subject: [ruby-changes:43512] nobu:r55585 (trunk): update-deps: for clang

nobu	2016-07-06 14:37:13 +0900 (Wed, 06 Jul 2016)

  New Revision: 55585

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=55585

  Log:
    update-deps: for clang
    
    * tool/update-deps (read_single_cc_deps): clang may not include
      the current working directory name in .i files.

  Modified files:
    trunk/tool/update-deps
Index: tool/update-deps
===================================================================
--- tool/update-deps	(revision 55584)
+++ tool/update-deps	(revision 55585)
@@ -327,21 +327,23 @@ end https://github.com/ruby/ruby/blob/trunk/tool/update-deps#L327
 
 def read_single_cc_deps(path_i, cwd)
   files = {}
-  path_i.each_line.with_index {|line, lineindex|
+  compiler_wd = nil
+  path_i.each_line {|line|
     next if /\A\# \d+ "(.*)"/ !~ line
-    files[$1] = lineindex
+    dep = $1
+    next if %r{\A<.*>\z} =~ dep # omit <command-line>, etc.
+    compiler_wd ||= dep
+    files[dep] = true
   }
   # gcc emits {# 1 "/absolute/directory/of/the/source/file//"} at 2nd line.
-  compiler_wd = files.keys.find {|f| %r{\A/.*//\z} =~ f }
-  if compiler_wd
+  if %r{\A/.*//\z} =~ compiler_wd
     files.delete compiler_wd
     compiler_wd = Pathname(compiler_wd.sub(%r{//\z}, ''))
-  else
+  elsif !(compiler_wd = yield)
     raise "compiler working directory not found: #{path_i}"
   end
   deps = []
   files.each_key {|dep|
-    next if %r{\A<.*>\z} =~ dep # omit <command-line>, etc.
     dep = Pathname(dep)
     if dep.relative?
       dep = compiler_wd + dep
@@ -367,7 +369,13 @@ def read_cc_deps(cwd) https://github.com/ruby/ruby/blob/trunk/tool/update-deps#L369
     end
     path_o = cwd + fn_o
     path_i = cwd + fn_i
-    deps[path_o] = read_single_cc_deps(path_i, cwd)
+    deps[path_o] = read_single_cc_deps(path_i, cwd) do
+      if fn_o.to_s.start_with?("enc/")
+        cwd
+      else
+        path_i.parent
+      end
+    end
   }
   deps
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]