# -*-ruby-*-
module RubyCocoaConfig
eval File.open('VERSION'){|f|f.read}
module_function
def libruby_path
path = File.join(Config::CONFIG['libdir'], Config::CONFIG['LIBRUBY'])
unless File.exist?( path ) then
path = File.join(Config::CONFIG['archdir'], Config::CONFIG['LIBRUBY_A'])
end
# On Panther, /usr/lib/ruby reports wrong CONFIG
unless File.exist?( path ) then
path = File.join(Config::CONFIG['libdir'], 'libruby.dylib')
end
return path
end
def system_version
`/usr/bin/defaults read /System/Library/CoreServices/SystemVersion ProductUserVisibleVersion`
end
def framework_version
# "#{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 ###
add_path_config 'install-root', '',
'path to the root directory for Frameworks and "ProjectBuilder Extras"'
add_path_config 'frameworks', '/Library/Frameworks',
'path to the directory for installing RubyCocoa.framework'
if File.exist?('/Developer/Applications/Project Builder.app') then
add_path_config 'projectbuilder-extras', '/Developer/ProjectBuilder Extras',
'path to the directory for "Project Bulder Extras"'
end
if File.exist?('/Developer/Applications/Xcode.app') then
if RubyCocoaConfig.system_version.to_f >= 10.5
xcode_templates_dir = '/Library/Application Support/Developer/Shared/Xcode/'
else
xcode_templates_dir =
['/Library/Application Support/Apple/Developer Tools',
'/Library/Application Support/Developer/2.5/Xcode/'].join(',')
end
add_path_config 'xcode-extras',
xcode_templates_dir,
'path to the directory for "Xcode Extras"'
end
add_path_config 'examples', '/Developer/Examples',
'path to the directory for Examples'
add_path_config 'documentation', '/Developer/Documentation',
'path to the directory for Documentation'
add_bool_config 'gen-bridge-support', RubyCocoaConfig.system_version.to_f < 10.5,
'yes, generate bridge metadata files'
add_bool_config 'build-as-embeddable', true,
'yes, build the framework as embeddable (with INSTALL_PATH pointing to the current application\'s Frameworks directory)'
### build configuration ###
# Xcode 2.2 moved ruby.h, but ruby command reports old path.
unless File.exist? File.join(Config::CONFIG['archdir'], 'ruby.h')
Config::CONFIG['archdir'] = Config::CONFIG['archdir'].sub(/powerpc/, 'universal')
end
add_path_config 'ruby-header-dir', Config::CONFIG['archdir'],
'path to the ruby header directory'
add_path_config 'libruby-path', RubyCocoaConfig.libruby_path,
'path to the libruby file'
add_path_config 'ri-dir',
"#{Config::CONFIG['datadir']}/ri/#{Config::CONFIG['ruby_version']}/site",
'the directory for ri files'
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.'
add_config 'target-archs', 'arch(s)', RubyCocoaConfig.archs,
'$ARCHS of Xcode. target architecture type(s)'
### versioning ###
add_config 'rubycocoa-version', 'name',
RubyCocoaConfig::VERSION + RubyCocoaConfig::STAGE,
'RubyCocoa version'
add_config 'rubycocoa-version-short', 'name',
RubyCocoaConfig::VERSION,
'RubyCocoa version short'
add_config 'rubycocoa-release-date', 'name',
RubyCocoaConfig::RELEASE_DATE, 'RubyCocoa release date'
add_config 'rubycocoa-svn-revision', 'name',
RubyCocoaConfig::SVN_REVISION, 'RubyCocoa subversion revision number'
add_config 'rubycocoa-framework-version', 'name',
RubyCocoaConfig.framework_version, 'RubyCocoa Framework version name'