summaryrefslogtreecommitdiff
path: root/third_party/waf/wafadmin/Tools/ruby.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/waf/wafadmin/Tools/ruby.py')
-rw-r--r--third_party/waf/wafadmin/Tools/ruby.py119
1 files changed, 0 insertions, 119 deletions
diff --git a/third_party/waf/wafadmin/Tools/ruby.py b/third_party/waf/wafadmin/Tools/ruby.py
deleted file mode 100644
index afa8a596b0d..00000000000
--- a/third_party/waf/wafadmin/Tools/ruby.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-# daniel.svensson at purplescout.se 2008
-
-import os
-import Task, Options, Utils
-from TaskGen import before, feature, after
-from Configure import conf
-
-@feature('rubyext')
-@before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars', 'apply_bundle')
-@after('default_cc', 'vars_target_cshlib')
-def init_rubyext(self):
- self.default_install_path = '${ARCHDIR_RUBY}'
- self.uselib = self.to_list(getattr(self, 'uselib', ''))
- if not 'RUBY' in self.uselib:
- self.uselib.append('RUBY')
- if not 'RUBYEXT' in self.uselib:
- self.uselib.append('RUBYEXT')
-
-@feature('rubyext')
-@before('apply_link')
-def apply_ruby_so_name(self):
- self.env['shlib_PATTERN'] = self.env['rubyext_PATTERN']
-
-@conf
-def check_ruby_version(conf, minver=()):
- """
- Checks if ruby is installed.
- If installed the variable RUBY will be set in environment.
- Ruby binary can be overridden by --with-ruby-binary config variable
- """
-
- if Options.options.rubybinary:
- conf.env.RUBY = Options.options.rubybinary
- else:
- conf.find_program("ruby", var="RUBY", mandatory=True)
-
- ruby = conf.env.RUBY
-
- try:
- version = Utils.cmd_output([ruby, '-e', 'puts defined?(VERSION) ? VERSION : RUBY_VERSION']).strip()
- except:
- conf.fatal('could not determine ruby version')
- conf.env.RUBY_VERSION = version
-
- try:
- ver = tuple(map(int, version.split(".")))
- except:
- conf.fatal('unsupported ruby version %r' % version)
-
- cver = ''
- if minver:
- if ver < minver:
- conf.fatal('ruby is too old')
- cver = ".".join([str(x) for x in minver])
-
- conf.check_message('ruby', cver, True, version)
-
-@conf
-def check_ruby_ext_devel(conf):
- if not conf.env.RUBY:
- conf.fatal('ruby detection is required first')
-
- if not conf.env.CC_NAME and not conf.env.CXX_NAME:
- conf.fatal('load a c/c++ compiler first')
-
- version = tuple(map(int, conf.env.RUBY_VERSION.split(".")))
-
- def read_out(cmd):
- return Utils.to_list(Utils.cmd_output([conf.env.RUBY, '-rrbconfig', '-e', cmd]))
-
- def read_config(key):
- return read_out('puts Config::CONFIG[%r]' % key)
-
- ruby = conf.env['RUBY']
- archdir = read_config('archdir')
- cpppath = archdir
- if version >= (1, 9, 0):
- ruby_hdrdir = read_config('rubyhdrdir')
- cpppath += ruby_hdrdir
- cpppath += [os.path.join(ruby_hdrdir[0], read_config('arch')[0])]
-
- conf.check(header_name='ruby.h', includes=cpppath, mandatory=True, errmsg='could not find ruby header file')
-
- conf.env.LIBPATH_RUBYEXT = read_config('libdir')
- conf.env.LIBPATH_RUBYEXT += archdir
- conf.env.CPPPATH_RUBYEXT = cpppath
- conf.env.CCFLAGS_RUBYEXT = read_config("CCDLFLAGS")
- conf.env.rubyext_PATTERN = '%s.' + read_config('DLEXT')[0]
-
- # ok this is really stupid, but the command and flags are combined.
- # so we try to find the first argument...
- flags = read_config('LDSHARED')
- while flags and flags[0][0] != '-':
- flags = flags[1:]
-
- # we also want to strip out the deprecated ppc flags
- if len(flags) > 1 and flags[1] == "ppc":
- flags = flags[2:]
-
- conf.env.LINKFLAGS_RUBYEXT = flags
- conf.env.LINKFLAGS_RUBYEXT += read_config("LIBS")
- conf.env.LINKFLAGS_RUBYEXT += read_config("LIBRUBYARG_SHARED")
-
- if Options.options.rubyarchdir:
- conf.env.ARCHDIR_RUBY = Options.options.rubyarchdir
- else:
- conf.env.ARCHDIR_RUBY = read_config('sitearchdir')[0]
-
- if Options.options.rubylibdir:
- conf.env.LIBDIR_RUBY = Options.options.rubylibdir
- else:
- conf.env.LIBDIR_RUBY = read_config('sitelibdir')[0]
-
-def set_options(opt):
- opt.add_option('--with-ruby-archdir', type='string', dest='rubyarchdir', help='Specify directory where to install arch specific files')
- opt.add_option('--with-ruby-libdir', type='string', dest='rubylibdir', help='Specify alternate ruby library path')
- opt.add_option('--with-ruby-binary', type='string', dest='rubybinary', help='Specify alternate ruby binary')