On 12/29/06, Joe Swatosh <joe.swatosh@gmail.com> wrote:
> On 12/28/06, Kouhei Sutou <kou@cozmixng.org> wrote:
> > "Joe Swatosh" <joe.swatosh@gmail.com> wrote:
> >
>
> > > + def _find_ruby(self):
> > > + "Find the right Ruby library name to link swig bindings with"
> > > + fp = os.popen('ruby -e ' + escape_shell_arg(
> > > + 'print Config.expand(Config::CONFIG[\'LIBRUBY\'])'), 'r')
> >
> > I think Config.expand isn't needed:
> > fp = os.popen('ruby -e ' + escape_shell_arg(
> > 'print Config::CONFIG["LIBRUBY"]'), 'r')
> >
> > '-r rbconfig' isn't needed on Windows?
> >
>
> You're right the Config.expand isn't needed (I started with
> Config::MAKEFILE_CONFIG which did need it). I haven't needed to
> require rbconfig, but it is probably a good idea.
>
Here's a new patch that incorporates your suggestions about rbconfig
and not needing Config.expand. I think I like the new quoting better,
too.
-Joe
[[[
Generate project files for VC6 that will link the Ruby bindings with
the Ruby library.
* build/generator/gen_win.py
Mimicked the way that Perl was determining what lib to link with when
building the bindings.
]]]
Index: build/generator/gen_win.py
===================================================================
--- build/generator/gen_win.py (revision 22828)
+++ build/generator/gen_win.py (working copy)
@@ -145,6 +145,9 @@
# Find the right Perl library name to link SWIG bindings with
self._find_perl()
+ # Find the right Ruby library name to link SWIG bindings with
+ self._find_ruby()
+
# Find the right Python include and libraries dirs for SWIG bindings
self._find_python()
@@ -782,6 +785,11 @@
and target.lang == 'perl'):
nondeplibs.append(self.perl_lib)
+ if ((isinstance(target, gen_base.TargetSWIG)
+ or isinstance(target, gen_base.TargetSWIGLib))
+ and target.lang == 'ruby'):
+ nondeplibs.append(self.ruby_lib)
+
for dep in self.get_win_depends(target, FILTER_LIBS):
nondeplibs.extend(dep.msvc_libs)
@@ -953,6 +961,24 @@
finally:
fp.close()
+ def _find_ruby(self):
+ "Find the right Ruby library name to link swig bindings with"
+ fp = os.popen('ruby -rrbconfig -e ' + escape_shell_arg(
+ "print Config::CONFIG['LIBRUBY']"), 'r')
+ try:
+ libruby = fp.readline()
+ if libruby:
+ msg = 'Found installed ruby.'
+ self.ruby_lib = libruby
+ else:
+ msg = 'Could not detect Ruby version.'
+ self.ruby_lib = 'msvcrt-ruby18.lib'
+ sys.stderr.write('%s\n Ruby bindings will be linked with %s\n'
+ % (msg, self.ruby_lib))
+ finally:
+ fp.close()
+
+
def _find_python(self):
"Find the appropriate options for creating SWIG-based Python modules"
self.python_includes = []
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Dec 29 20:33:57 2006