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