metaconfig   [plain text]


# -*-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
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'

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'

### 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'