[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Linking the Ruby bindings on windows

From: Daniel Rall <dlr_at_collab.net>
Date: 2006-12-29 21:16:07 CET

While I have not tested this patch on Windows, it looks good to me (it
even gets the indentation level right where the Perl-related code
doesn't). I do find the output to stderr a little weird, but looking
at the code, that's just how gen_win.py does it. I'd also prefer a
different variable name to "fp" in _find_ruby() ("proc" or something
would be better).

Kou, if you can confirm that the the SWIG Perl and Python bindings
still build on Windows, feel free to list me as an approver and
commit.

- Dan

On Fri, 29 Dec 2006, Joe Swatosh wrote:
...
> [[[
>
> 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 = []

  • application/pgp-signature attachment: stored
Received on Fri Dec 29 21:17:30 2006

This is an archived mail posted to the Subversion Dev mailing list.