[PyKDE] [PATCH] Building sip with MSVC.NET 2003
Giovanni Bajo
rasky at develer.com
Wed Jan 24 23:37:21 GMT 2007
On 24/01/2007 22.59, Miguel Lobo wrote:
> diff -ur sip-4.5.2/configure.py sip-4.5.2-new/configure.py
> --- sip-4.5.2/configure.py Sat Dec 9 22:49:20 2006
> +++ sip-4.5.2-new /configure.py Mon Jan 22 18:16:52 2007
> @@ -372,6 +373,10 @@
> if opt_platform is None:
> opt_platform = default_platform
>
> + if opt_platform.find("msvc") >= 0:
> + global plat_py_conf_inc_dir
> + plat_py_conf_inc_dir = sys.prefix + "\\PC"
> +
> # Get the platform specific macros for building.
> macros = siputils.parse_build_macros(os.path.join("specs",
> opt_platform), build_macro_names, args)
>
> Apparently the default include directory for the pyconfig.h file was
> being set to "Python-2.5\Include", when AFAICT if you compile with
> MSVC.NET <http://MSVC.NET> pyconfig.h is in "Python-2.5\PC " instead.
> This was causing compile errors because pyconfig.h could not be found.
I have a Python 2.5 installed from the official python.org binary. I don't
even have a "PC" directory here, and pyconfig.h is under "Include".
It looks like you're trying to use Python off its source tree. I'm not sure
that's supported. I think you're supposed to install it.
> The second change is this:
>
> diff -ur sip-4.5.2/siputils.py sip-4.5.2-new/siputils.py
> --- sip-4.5.2/siputils.py Sat Dec 9 22:49:20 2006
> +++ sip-4.5.2-new/siputils.py Mon Jan 22 18:05:15 2007
> @@ -1400,7 +1400,7 @@
> if self.static:
> if self.generator in ("MSVC", "MSVC.NET <http://MSVC.NET>",
> "BMAKE"):
> mfile.write("LIB = %s\n" % self.required_string("LIB"))
> - if self.generator == "MINGW":
> + elif self.generator == "MINGW":
> mfile.write("AR = %s\n" % self.required_string("LIB"))
> self._ranlib = None
> else:
>
> This seems like an obvious bug to me. If you are using MSVC.NET
> <http://MSVC.NET>, you don't necessarily have "ar", but if you look at
> the code immediately after this change, it was trying to get the value
> of the AR variable from the spec. Due to this I was getting an error
> while running SIP's configure.py saying that AR was not defined.
Yes, this is indeed a bug, and can be reproduced by simply running
"configure.py -k".
--
Giovanni Bajo
More information about the PyQt
mailing list