[57997] trunk/dports/ruby/rb-cocoa

kimuraw at macports.org kimuraw at macports.org
Sun Sep 20 09:09:15 PDT 2009


Revision: 57997
          http://trac.macports.org/changeset/57997
Author:   kimuraw at macports.org
Date:     2009-09-20 09:09:11 -0700 (Sun, 20 Sep 2009)
Log Message:
-----------
ruby/rb-cocoa: fix some errors on 10.6 or x86_64

Modified Paths:
--------------
    trunk/dports/ruby/rb-cocoa/Portfile

Added Paths:
-----------
    trunk/dports/ruby/rb-cocoa/files/patch-r2258.diff

Modified: trunk/dports/ruby/rb-cocoa/Portfile
===================================================================
--- trunk/dports/ruby/rb-cocoa/Portfile	2009-09-20 12:15:49 UTC (rev 57996)
+++ trunk/dports/ruby/rb-cocoa/Portfile	2009-09-20 16:09:11 UTC (rev 57997)
@@ -4,6 +4,7 @@
 PortGroup		ruby 1.0
 
 ruby.setup		{cocoa rubycocoa} 1.0.0 install.rb {ChangeLog ReadMe.html ReadMe.ja.html}
+revision		1
 maintainers		kimuraw
 description		Ruby bindings for writing cocoa programs
 long_description	RubyCocoa is a Ruby library for using Cocoa Objects \
@@ -23,6 +24,8 @@
 
 # fix #16928: allow non Mac OS X's make, like gmake
 patchfiles-append	patch-ext-rubycocoa-extconf.rb.in.diff
+# fix some errors 1.0.0 on Snow Leopard (1.0.0 to r2258)
+patchfiles-append	patch-r2258.diff
 
 configure.args		--install-prefix=${destroot}${prefix} \
 					--install-root=${destroot} \
@@ -30,12 +33,6 @@
 					--examples=${prefix}/share/examples/${name}
 destroot.violate_mtree	yes
 
-platform darwin 9 {
-	if {![variant_isset universal]} {
-		configure.args-append --build-universal=no
-    }
-}
-
 # by default, do not install Xcode templates. #18708
 variant xcode description {install project templates for Xcode} { }
 if {![variant_isset xcode]} {

Added: trunk/dports/ruby/rb-cocoa/files/patch-r2258.diff
===================================================================
--- trunk/dports/ruby/rb-cocoa/files/patch-r2258.diff	                        (rev 0)
+++ trunk/dports/ruby/rb-cocoa/files/patch-r2258.diff	2009-09-20 16:09:11 UTC (rev 57997)
@@ -0,0 +1,530 @@
+Index: Rakefile
+===================================================================
+--- Rakefile	(.../tags/release-1_0_0/src)	(revision 2258)
++++ Rakefile	(.../trunk/src)	(revision 2258)
+@@ -21,7 +21,7 @@
+ 
+ desc "build RubyCocoa.framework"
+ task :build do
+-  config = ["config", "--build-universal=yes"]
++  config = ["config"]
+   config << '--gen-bridge-support=no' if `sw_vers -productVersion` =~ /^10\.5/
+   ruby "install.rb", *config
+   ruby "install.rb", "setup"
+@@ -65,7 +65,7 @@
+   rm_rf dstdir
+   svn "export", "-r", rev, SVN_REPOS_URL, dstdir
+   chdir(dstdir) do
+-    config = ["config", "--prefix=yes", "--build-universal=yes"]
++    config = ["config", "--prefix=yes"]
+     config << '--gen-bridge-support=no' if `sw_vers -productVersion` =~ /^10\.5/
+     ruby "install.rb", *config
+     ruby "install.rb", "setup"
+Index: ChangeLog
+===================================================================
+--- ChangeLog	(.../tags/release-1_0_0/src)	(revision 2258)
++++ ChangeLog	(.../trunk/src)	(revision 2258)
+@@ -1,3 +1,81 @@
++2009-09-20  kimura wataru <kimuraw at i.nifty.jp>
++
++	* framework/src/objc/BridgeSupport.m:
++	correct reading order between 'value64' and 'value' from .bridgesupport
++
++	* install.rb:
++	new option --arch of test task allows testing specified architecture,
++	like `ruby install.rb test --arch=i386'.
++
++	* tests/Makefile.in:
++	use -arch flags for compiling tests/*.bundle.
++
++	* tests/tc_bool.rb:
++	fix a failure of test_informal_protocol(in tc_bool.rb).
++	use "validateMenuItem", not "control:textView:doCommandBySelector:"
++	for testing informal protocol.
++	On 10.6, "control:textView:doCommandBySelector:" becomes an optional
++	method of a formal protocol NSTextViewDelegate.
++
++2009-09-17  Satoshi Nakagawa <psychs at limechat.net>
++
++	* pre-config.rb:
++	Enabled -DRB_ID=ID always.
++	Because we need it to build RubyCocoa with target=10.5 on 10.6.
++
++2009-09-15  kimura wataru <kimuraw at i.nifty.jp>
++
++	* Rakefile:
++	remove config option "--build-universal".
++
++	* pre-config.rb, framework/GeneratedConfig.xcconfig.in,
++	  ext/rubycocoa/extconf.rb.in:
++	use $ARCHS of Xcode for building RubyCocoa.xcodeproj
++
++2009-09-15  kimura wataru <kimuraw at i.nifty.jp>
++
++	* package/post-package.rb, package/pre-package.rb,
++	  package/config/10.4, package/config/10.5, package/config/10.6:
++	use --target-archs for packaging. remove "universal" from package
++	name, like "RubyCocoa-1.0.0-OSX10.6.dmg"
++
++2009-09-15  kimura wataru <kimuraw at i.nifty.jp>
++
++	* pre-config.rb, framework/post-config.rb, metaconfig:
++	remove configure option "--build-universal", and
++	add option "--target-archs".
++
++2009-09-15  Satoshi Nakagawa <psychs at limechat.net>
++
++	* src/framework/src/objc/RBRuntime.m:
++	Switch back to disable the threading hacks in runtime.
++
++2009-09-15  Satoshi Nakagawa <psychs at limechat.net>
++
++	* src/framework/src/objc/RBRuntime.m:
++	We cannot use a common RubyCocoa.framework on 10.5 and 10.6.
++	So simply applied a patch from Apple: http://www.opensource.apple.com/source/RubyCocoa/RubyCocoa-67/patches/disable_threading_hacks.diff
++
++2009-09-15  Satoshi Nakagawa <psychs at limechat.net>
++
++	* src/framework/src/objc/RBRuntime.m:
++	Disable threading hacks in 10.6.
++	Based on a patch from Apple: http://www.opensource.apple.com/source/RubyCocoa/RubyCocoa-67/patches/disable_threading_hacks.diff
++
++2009-09-13  kimura wataru <kimuraw at i.nifty.jp>
++
++	* framework/src/objc/internal_macros.h:
++	suppress warning "format not a string literal and no format arguments"
++
++2009-09-08  kimura wataru <kimuraw at i.nifty.jp>
++
++	* package/config/10.4, package/config/10.5:
++	- correct install destination of project templates (10.5).
++	- correct comment (10.4 and 10.5).
++
++	* package/config/10.6:
++	packaging support for 10.6 Snow Leopard.
++
+ === RubyCocoa 1.0.0 ===
+ 
+ 2009-07-24  kimura wataru <kimuraw at i.nifty.jp>
+Index: pre-config.rb
+===================================================================
+--- pre-config.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ pre-config.rb	(.../trunk/src)	(revision 2258)
+@@ -30,49 +30,24 @@
+   [ :install_path, install_path ]
+ ]
+ 
+-if @config['build-universal'] == 'yes' && @config['sdkroot'].size == 0
+-  # SDKROOT is required to build a universal-binary on 10.4 
+-  @config['sdkroot'] = 
+-    case @config['macosx-deployment-target'].to_f 
+-    when 10.4
+-      sdkroot = '/Developer/SDKs/MacOSX10.4u.sdk'
+-    else
+-      '' # not needed for 10.5
+-    end
+-end
+-
+ # build options
+ cflags = '-fno-common -g -fobjc-exceptions -Wall'
+ ldflags = '-undefined suppress -flat_namespace'
+-sdkroot = @config['sdkroot'] 
++sdkroot = @config['sdkroot']
++archs = @config['target-archs']
+ 
+-if @config['build-universal'] == 'yes'
+-  cflags << ' -arch ppc -arch i386'
+-  ldflags << ' -arch ppc -arch i386'
++# add archs if given
++arch_flags = archs.gsub(/\A|\s+/, ' -arch ')
+ 
+-  if @config['macosx-deployment-target'].to_f < 10.5
+-    cflags << ' -isysroot ' << sdkroot
+-    ldflags << ' -Wl,-syslibroot,' << sdkroot
+-
+-    # validation
+-    raise "ERROR: SDK \"#{sdkroot}\" does not exist." unless File.exist?(sdkroot)
+-    libruby_sdk = @config['libruby-path']
+-    raise "ERROR: library \"#{libruby_sdk}\" does not exist." unless File.exist?(libruby_sdk)
+-  elsif @config['macosx-deployment-target'].to_f > 10.5
+-    cflags << ' -arch x86_64'
+-    ldflags << ' -arch x86_64'
+-  else
+-    cflags << ' -arch ppc64 -arch x86_64'
+-    ldflags << ' -arch ppc64 -arch x86_64'
+-  end
++if sdkroot.size > 0
++  cflags << ' -isysroot ' << sdkroot
++  ldflags << ' -Wl,-syslibroot,' << sdkroot
+ end
+ 
+-if @config['macosx-deployment-target'].to_f > 10.5
+-  cflags << ' -DRB_ID=ID'
+-end
++cflags << ' -DRB_ID=ID'
+ 
+-def lib_exist?(path, sdkoot=@config['sdkroot'])
+-  File.exist?(File.join(sdkoot, path))
++def lib_exist?(path, sdkroot=@config['sdkroot'])
++  File.exist?(File.join(sdkroot, path))
+ end
+ 
+ if lib_exist?('/usr/include/libxml2') and lib_exist?('/usr/lib/libxml2.dylib')
+@@ -106,6 +81,8 @@
+ 
+ config_ary << [ :other_cflags, cflags ]
+ config_ary << [ :other_ldflags, ldflags ]
++config_ary << [ :target_archs, archs.size > 0 ? archs : '$NATIVE_ARCH' ]
++config_ary << [ :arch_flags, arch_flags ]
+ 
+ target_files.each do |dst_name|
+   src_name = dst_name + '.in'
+Index: package/post-package.rb
+===================================================================
+--- package/post-package.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ package/post-package.rb	(.../trunk/src)	(revision 2258)
+@@ -7,9 +7,6 @@
+ system "find '#{contents_dir}' -name .svn -exec rm -rf {} \\; >& /dev/null"
+ 
+ package_name = "RubyCocoa-#{@config['rubycocoa-version']}-OSX#{@config['macosx-deployment-target']}"
+-if @config['build-universal'] == 'yes'
+-  package_name << 'universal'
+-end
+ dmg_dir = File.join(work_dir, package_name)
+ Dir.mkdir dmg_dir
+ 
+Index: package/pre-package.rb
+===================================================================
+--- package/pre-package.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ package/pre-package.rb	(.../trunk/src)	(revision 2258)
+@@ -36,7 +36,7 @@
+ Dir.mkdir contents_dir
+ 
+ # Postflight and post-constent stuff
+-if @config['build-universal'] == 'yes' and `sw_vers -productVersion`.to_f < 10.5 or @config['macosx-deployment-target'].to_f < 10.5
++if @config['macosx-deployment-target'].to_f < 10.5
+   postflight = File.join(resources_dir, 'postflight')
+   erb('tmpl/postflight-universal.rb', postflight, binding)
+   File.chmod(0755, postflight)
+Index: package/config/10.4
+===================================================================
+--- package/config/10.4	(.../tags/release-1_0_0/src)	(revision 2258)
++++ package/config/10.4	(.../trunk/src)	(revision 2258)
+@@ -1,6 +1,6 @@
+ # $Id$
+ # generated from config.save 
+-# /usr/bin/ruby install.rb config  # on 10.5.2 
++# /usr/bin/ruby install.rb config --build-universal=yes # on 10.4.11 
+ 
+ #@config['rubycocoa-framework-version'] = 
+ @config['xcode-extras'] = 
+@@ -9,7 +9,8 @@
+ @config['bin-dir'] = '$install-prefix/bin'
+ @config['site-ruby'] = '$install-prefix/lib/ruby/site_ruby/1.8'
+ @config['prefix'] = '/usr'
+- at config['build-universal'] = 'yes'
++#@config['build-universal'] = 'yes'
++ at config['target-archs'] = 'ppc i386'
+ @config['ri-dir'] = '/usr/share/ri/1.8/site'
+ @config['libruby-path'] = '/usr/lib/libruby.1.dylib'
+ @config['build-as-embeddable'] = 'yes'
+Index: package/config/10.5
+===================================================================
+--- package/config/10.5	(.../tags/release-1_0_0/src)	(revision 2258)
++++ package/config/10.5	(.../trunk/src)	(revision 2258)
+@@ -1,13 +1,14 @@
+ # $Id$
+ # generated from config.save 
+-# /usr/bin/ruby install.rb config --build-universal=yes # on 10.4.11 
++# /usr/bin/ruby install.rb config  # on 10.5.2 
+ 
+ #@config['rubycocoa-framework-version'] = 'A'
+- at config['xcode-extras'] = '/Library/Application Support/Developer/3.0/Xcode/'
++ at config['xcode-extras'] = '/Library/Application Support/Developer/Shared/Xcode/'
+ @config['bin-dir'] = '$install-prefix/bin'
+ @config['site-ruby'] = '/Library/Ruby/Site/1.8'
+ @config['prefix'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr'
+- at config['build-universal'] = 'yes'
++#@config['build-universal'] = 'yes'
++ at config['target-archs'] = 'ppc ppc64 i386 x86_64'
+ @config['ri-dir'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/share/ri/1.8/site'
+ @config['libruby-path'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib'
+ @config['build-as-embeddable'] = 'yes'
+Index: package/config/10.6
+===================================================================
+--- package/config/10.6	(.../tags/release-1_0_0/src)	(revision 0)
++++ package/config/10.6	(.../trunk/src)	(revision 2258)
+@@ -0,0 +1,39 @@
++# $Id$
++# generated from config.save 
++# /usr/bin/ruby install.rb config --build-universal=yes # on 10.6
++
++#@config['rubycocoa-framework-version'] = 'A'
++ at config['xcode-extras'] = '/Library/Application Support/Developer/Shared/Xcode/'
++ at config['bin-dir'] = '$install-prefix/bin'
++ at config['site-ruby'] = '/Library/Ruby/Site/1.8'
++ at config['prefix'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr'
++#@config['build-universal'] = 'yes'
++ at config['target-archs'] = 'ppc i386 x86_64'
++ at config['ri-dir'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/share/ri/1.8/site'
++ at config['libruby-path'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib'
++ at config['build-as-embeddable'] = 'yes'
++#@config['rubycocoa-version-short'] = 
++ at config['examples'] = '/Developer/Examples'
++ at config['ruby-path'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby'
++ at config['make-prog'] = 'make'
++ at config['ruby-header-dir'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0'
++ at config['install-prefix'] = '$prefix'
++ at config['rb-dir'] = '$site-ruby'
++ at config['sdkroot'] = ''
++#@config['macosx-deployment-target'] = '10.6'
++#@config['without-ext'] = 'no'
++ at config['ruby-prog'] = '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby'
++#@config['rubycocoa-release-date'] = 
++#@config['rubycocoa-version'] = 
++ at config['gen-bridge-support'] = 'no'
++ at config['documentation'] = '/Developer/Documentation'
++ at config['std-ruby'] = '$install-prefix/lib/ruby/1.8'
++#@config['rubycocoa-svn-revision'] = 
++ at config['install-root'] = ''
++ at config['frameworks'] = '/Library/Frameworks'
++ at config['data-dir'] = '$install-prefix/share'
++ at config['so-dir'] = '/Library/Ruby/Site/1.8/universal-darwin10.0'
++
++# prefer /usr/bin, /usr/lib
++ENV['PATH'] = ['/usr/bin', ENV['PATH']].join(':')
++
+
+Property changes on: package/config/10.6
+___________________________________________________________________
+Added: svn:keywords
+   + Id
+
+Index: framework/src/objc/RBRuntime.m
+===================================================================
+--- framework/src/objc/RBRuntime.m	(.../tags/release-1_0_0/src)	(revision 2258)
++++ framework/src/objc/RBRuntime.m	(.../trunk/src)	(revision 2258)
+@@ -909,6 +909,14 @@
+ 
+ static void RBCocoaInstallRubyThreadSchedulerHooks()
+ {
++  SInt32 version;
++  if (Gestalt(gestaltSystemVersion, &version) == noErr) {
++    if (version >= 0x1060) {
++      /* The threading support is not implemented yet in 10.6. */
++      return;
++    }
++  }
++
+   if (getenv("RUBYCOCOA_THREAD_HOOK_DISABLE") != NULL) {
+     if (rb_cocoa_thread_debug) {
+       NSLog(@"RBCocoaInstallRubyThreadSchedulerHooks: warning: disabled hooks due to RUBYCOCOA_THREAD_HOOK_DISABLE environment variable");
+Index: framework/src/objc/internal_macros.h
+===================================================================
+--- framework/src/objc/internal_macros.h	(.../tags/release-1_0_0/src)	(revision 2258)
++++ framework/src/objc/internal_macros.h	(.../trunk/src)	(revision 2258)
+@@ -27,14 +27,9 @@
+   do {                                           \
+     if (DEBUG_P) {                             \
+       NSAutoreleasePool * pool;                  \
+-      NSString *          nsfmt;                 \
+                                                  \
+       pool = [[NSAutoreleasePool alloc] init];   \
+-      nsfmt = [NSString stringWithFormat:        \
+-        @"%@",                                   \
+-        [NSString stringWithFormat:@"%s : %s",   \
+-          mod, fmt], ##args];                    \
+-      NSLog(nsfmt);                              \
++      NSLog(@mod @" : " @fmt, ##args);           \
+       [pool release];                            \
+     }                                            \
+   }                                              \
+Index: framework/src/objc/BridgeSupport.m
+===================================================================
+--- framework/src/objc/BridgeSupport.m	(.../tags/release-1_0_0/src)	(revision 2258)
++++ framework/src/objc/BridgeSupport.m	(.../trunk/src)	(revision 2258)
+@@ -1309,14 +1309,17 @@
+             st_insert(bsConstants, (st_data_t)enum_name, (st_data_t)fake_bs_const); 
+           }
+           else {
+-            char *  enum_value;        
++            char *  enum_value = NULL;
+             VALUE   value;
+ 
+-            enum_value = get_attribute(reader, "value");
+ #if __LP64__
+-            if (enum_value == NULL)
+-              enum_value = get_attribute(reader, "value64");
++            enum_value = get_attribute(reader, "value64");
++	    if (strncmp("NSNotFound", enum_name, 10) == 0)
++	    NSLog(@"\ncpath: %s\n\tname: %s\n\tvalue: %s", cpath, enum_name, enum_value);
+ #endif
++            if (enum_value == NULL) {
++              enum_value = get_attribute(reader, "value");
++	    }
+ #if BYTE_ORDER == BIG_ENDIAN
+             if (enum_value == NULL)
+               enum_value = get_attribute(reader, "be_value");
+Index: framework/GeneratedConfig.xcconfig.in
+===================================================================
+--- framework/GeneratedConfig.xcconfig.in	(.../tags/release-1_0_0/src)	(revision 2258)
++++ framework/GeneratedConfig.xcconfig.in	(.../trunk/src)	(revision 2258)
+@@ -6,4 +6,5 @@
+ OTHER_CFLAGS = %%%other_cflags%%%
+ FRAMEWORK_VERSION = %%%rubycocoa_framework_version%%%
+ MACOSX_DEPLOYMENT_TARGET = %%%macosx_deployment_target%%%
+-INSTALL_PATH = %%%install_path%%% 
++INSTALL_PATH = %%%install_path%%%
++ARCHS = %%%target_archs%%%
+Index: framework/post-config.rb
+===================================================================
+--- framework/post-config.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ framework/post-config.rb	(.../trunk/src)	(revision 2258)
+@@ -3,7 +3,6 @@
+ new_filename_prefix = 'osx_'
+ ruby_h = File.join(@config['ruby-header-dir'], 'ruby.h')
+ intern_h = File.join(@config['ruby-header-dir'], 'intern.h')
+-build_universal = (@config['build-universal'] == 'yes')
+ [ ruby_h, intern_h ].each do |src_path|
+   dst_fname = new_filename_prefix + File.basename(src_path)
+   dst_fname = "src/objc/" + dst_fname
+@@ -23,7 +22,10 @@
+   # generate bridge support metadata files
+   out_dir = File.join(Dir.pwd, 'bridge-support')
+   sdkroot = @config['sdkroot']
+-  cflags = build_universal ? "-arch ppc -arch i386 -isysroot #{sdkroot}" : ''
++  archs = @config['target-archs']
++  cflags = ''
++  cflags << archs.gsub(/\a|\s+/, ' -arch ') if archs.size > 0
++  cfalgs << " -isysroot #{sdkroot}" if sdkroot.size > 0
+   Dir.chdir('../misc/bridgesupport') do
+     command("BSROOT=\"#{out_dir}\" CFLAGS=\"#{cflags}\" #{@config['ruby-prog']} build.rb")
+   end
+Index: ext/rubycocoa/extconf.rb.in
+===================================================================
+--- ext/rubycocoa/extconf.rb.in	(.../tags/release-1_0_0/src)	(revision 2258)
++++ ext/rubycocoa/extconf.rb.in	(.../trunk/src)	(revision 2258)
+@@ -15,8 +15,8 @@
+ $CFLAGS = '-F../../framework/%%%build_dir%%%'
+ $LDFLAGS  = '-F../../framework/%%%build_dir%%% -framework RubyCocoa'
+ 
+-$CFLAGS << ' %%%other_cflags%%%'
+-$LDFLAGS << ' %%%other_ldflags%%%'
++$CFLAGS << ' %%%other_cflags%%% %%%arch_flags%%%'
++$LDFLAGS << ' %%%other_ldflags%%% %%%arch_flags%%%'
+ 
+ create_makefile('rubycocoa')
+ command "mv -f Makefile Makefile.bak"
+Index: tests/Makefile.in
+===================================================================
+--- tests/Makefile.in	(.../tags/release-1_0_0/src)	(revision 2258)
++++ tests/Makefile.in	(.../trunk/src)	(revision 2258)
+@@ -1,6 +1,6 @@
+ TARGETS = objc_test.bundle objc_proto.bundle
+ OBJS = objc_test.o objc_proto.o
+-CFLAGS = %%%other_cflags%%%
++CFLAGS = %%%other_cflags%%% %%%arch_flags%%%
+ 
+ .SUFFIXES: .bundle
+ .o.bundle:
+Index: tests/tc_bool.rb
+===================================================================
+--- tests/tc_bool.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ tests/tc_bool.rb	(.../trunk/src)	(revision 2258)
+@@ -6,7 +6,7 @@
+ 
+ class MyClass < OSX::NSObject
+  attr_accessor :bool
+- def control_textView_doCommandBySelector(control, textView, sel)
++ def validateMenuItem(menuItem)
+    return @bool
+  end
+ end
+@@ -17,8 +17,7 @@
+    [[false, false], [true, true], [1, true], [0, true],
+     [42, true], [nil, false]].each do |val, expected|
+     rcv.bool = val
+-    obj = rcv.objc_send(
+-      :control, nil, :textView, nil, :doCommandBySelector, nil)
++    obj = rcv.objc_send(:validateMenuItem, nil)
+     assert_equal(expected, obj, "testing #{val} <=> #{expected}")
+    end
+  end
+Index: install.rb
+===================================================================
+--- install.rb	(.../tags/release-1_0_0/src)	(revision 2258)
++++ install.rb	(.../trunk/src)	(revision 2258)
+@@ -984,11 +984,14 @@
+   def parsearg_test
+     @options['use-rosetta'] = false
+     @options['test-args'] = nil
++    @options['arch'] = nil
+     while i = ARGV.shift do
+       if i == '--use-rosetta'
+         @options['use-rosetta'] = true
+       elsif /\A--test-args=(.+)/ =~ i
+         @options['test-args'] = $1
++      elsif /\A--arch=(.+)/ =~ i
++        @options['arch'] = $1
+       else
+         raise InstallError, "test: unknown option #{i}"
+       end
+@@ -1042,6 +1045,8 @@
+         '--use-rosetta', 'use Rosetta for testing', 'off'
+     out.printf "  %-20s %s \n",
+         '--test-args=args', 'pass args to test/unit AutoRunner'
++    out.printf "  %-20s %s \n",
++        '--arch=arch', 'pass architecture for testing'
+ 
+     out.puts
+   end
+@@ -1100,6 +1105,7 @@
+   def test_testcase(ruby_cmd)
+     cmd = %Q!"#{ruby_cmd}" -I../ext/rubycocoa -I../lib testall.rb!
+     cmd = "/usr/libexec/oah/translate " + cmd if @options['use-rosetta']
++    cmd = "arch -#{@options['arch']} " + cmd if @options['arch']
+     cmd += " " + @options['test-args'] if @options['test-args']
+     command cmd
+   end
+Index: metaconfig
+===================================================================
+--- metaconfig	(.../tags/release-1_0_0/src)	(revision 2258)
++++ metaconfig	(.../trunk/src)	(revision 2258)
+@@ -25,6 +25,14 @@
+     # "#{RubyCocoaConfig::VERSION}_RUBY-#{RUBY_VERSION}"
+     "A"
+   end
++
++  def archs
++    # collect ruby's -arch flags from Config::CONFIG
++    flags = [Config::CONFIG['CFLAGS'], Config::CONFIG['LDFLAGS'],
++            Config::CONFIG['ARCH_FLAG']].join(' ')
++    archs = flags.scan(/(?:\s?-arch\s+(\w+))/).flatten.uniq
++    archs.join(' ')
++  end
+ end
+ 
+ ### install destination ### 
+@@ -81,18 +89,15 @@
+   "#{Config::CONFIG['datadir']}/ri/#{Config::CONFIG['ruby_version']}/site",
+   'the directory for ri files'
+ 
+-if RubyCocoaConfig.system_version.to_f >= 10.4
+-  add_bool_config 'build-universal', RubyCocoaConfig.system_version.to_f >= 10.5,
+-    'yes, build universal binary (requires Xcode 2.1 or later and SDK)'
+-end
+-
+ add_config 'macosx-deployment-target', 'version', 
+   sprintf('%02.1f', RubyCocoaConfig.system_version.to_f),
+   'target Mac OS X version'
+ 
+-add_config 'sdkroot', 'sdkroot path', '',
+-  '$SDKROOT of Xcode. automatically sets when --build-universal=yes for 10.4'
++add_config 'sdkroot', 'sdkroot-path', '', '$SDKROOT of Xcode.'
+ 
++add_config 'target-archs', 'arch(s)', RubyCocoaConfig.archs,
++  '$ARCHS of Xcode. target architecture type(s)'
++
+ ### versioning ### 
+ 
+ add_config 'rubycocoa-version', 'name', 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090920/3a123848/attachment.html>


More information about the macports-changes mailing list