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

ruby-changes:18449

From: tenderlove <ko1@a...>
Date: Thu, 6 Jan 2011 09:18:30 +0900 (JST)
Subject: [ruby-changes:18449] Ruby:r30472 (trunk): * lib/mkmf.rb (configuration): fixing gsub when multiple error flags

tenderlove	2011-01-06 09:18:16 +0900 (Thu, 06 Jan 2011)

  New Revision: 30472

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30472

  Log:
    * lib/mkmf.rb (configuration): fixing gsub when multiple error flags
      are passed to GCC.

  Modified files:
    trunk/ChangeLog
    trunk/lib/mkmf.rb
    trunk/test/mkmf/test_find_executable.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30471)
+++ ChangeLog	(revision 30472)
@@ -1,3 +1,8 @@
+Thu Jan  6 09:12:31 2011  Aaron Patterson <aaron@t...>
+
+	* lib/mkmf.rb (configuration): fixing gsub when multiple error flags
+	  are passed to GCC.
+
 Thu Jan  6 05:25:49 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_modify): export.
Index: lib/mkmf.rb
===================================================================
--- lib/mkmf.rb	(revision 30471)
+++ lib/mkmf.rb	(revision 30472)
@@ -1660,7 +1660,9 @@
   extconf_h = $extconf_h ? "-DRUBY_EXTCONF_H=\\\"$(RUBY_EXTCONF_H)\\\" " : $defs.join(" ") << " "
   if warnflags = CONFIG['warnflags'] and CONFIG['GCC'] == 'yes' and !$extmk
     # turn warnings into errors only for bundled extensions.
-    warnflags = warnflags.gsub(/(?:\A|\s)-Werror=/, '\1-W')
+    warnflags = warnflags.split.map { |flag|
+      flag.gsub(/(?:\A|\s)-Werror=/, '\1-W')
+    }.join ' '
   end
   mk << %{
 CC = #{CONFIG['CC']}
Index: test/mkmf/test_find_executable.rb
===================================================================
--- test/mkmf/test_find_executable.rb	(revision 30471)
+++ test/mkmf/test_find_executable.rb	(revision 30472)
@@ -2,6 +2,22 @@
 
 class TestMkmf
   class TestFindExecutable < TestMkmf
+    def test_valid_warnflags
+      val = $extmk
+      begin
+        makefile = mkmf do
+          $extmk = false
+          self.class::CONFIG['warnflags'] = "-Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32"
+          self.class::CONFIG['GCC'] = 'yes'
+          configuration '.'
+        end
+        generated_flags = makefile.grep(/warnflags/).first[/^warnflags = .*$/]
+        assert_equal "warnflags = -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32", generated_flags
+      ensure
+        $extmk = val
+      end
+    end
+
     def test_find_executable
       bug2669 = '[ruby-core:27912]'
       path, ENV["PATH"] = ENV["PATH"], path

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

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