[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