Re: Installing synopsis on Windows

Stefan Seefeld <[email protected]> Sat, 12 May 2007 20:30:35 -0400
Newsgroups gmane.comp.documentation.synopsis
Message-ID <[email protected]>
David Genest wrote:
> 
> On 5/12/07, *Stefan Seefeld* <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     David Genest wrote:
> 
>     The current build system is a hybrid that mixes the python distutils
>     with some autoconf / make build system. I'm not sure exactly what your
>     MSVC harness would do, whether it would only replace the (embedded)
>     autoconf / make part or the entire build system.
> 
> 
> As starters, it builds the Synopsis library and applets from the sources
> located at /src. But it can (and will) build the cpp cxx and idl parsers
> - well everything compilable in C++.
> Does the python distutils distribute only the built libraries and
> install them? If it the case,  the  MSVC  harness  would only build the
> libraries, like I mentioned.

distutils is a harness, for which I wrote custom commands. These commands
build and install everything, libSynopsis (containing the C++ API), as well
as the various python extension modules (essentially all the parser backends).

>     It would be best (for multiple reasons) if we could first establish
>     the mingw-based build as a reference (that one triggers if you run
>     "/path/to/native/python setup.py build" on windows), and then make
>     the MSVC solution / project reproduce the result.
> 
> 
> Ok, I'll try that and investigate .
> 
>     Let's assume for a moment that we build 'inplace' (an option to
>     the distutils build harness). This results in:
> 
>     * libSynopsis.[so, dll] to end up in lib/
>     * C++ applets to end up in bin/
>     * Cpp, C, and Cxx parser to end up in Synopsis/Parsers/[Cpp, C, Cxx]
> 
>     Does this answer your question ?
> 
> 
> Yes.  And how does python get to those parsers ? (which I beleive are
> python extension modules right?)

Right. Well, when I build 'inplace' (i.e. during development), I simply
set the PYTHONPATH environment variable appropriately, e.g. "PYTHONPATH=`pwd`"
in the root directory. That allows the python interpreter to find them.

>     PS: How much does your solution / project harness depend on the MSVC
>     version
>         to use ? Is there a way to have a single harness that works with
>     multiple
>         versions ?
> 
> 
> Unfortunately, every solution and project is bound to a specific MSVC
> version. This is why, as convenient as they are, the projects and
> solutions are not very maintenance friendly. In the future, we could use
> CMake ( http://www.cmake.org/HTML/About.html), which can generate MSVC
> projects from description files, and build with make on unix-style
> platforms. But that is another story, far from the current approach,
> which I don't understand enough anyway.

Funny that you mention CMake. There is a long (and a bit heated) debate
on the boost devel mailing list about the possibility to use that for future
versions of boost...

Regards,
		Stefan

-- 

      ...ich hab' noch einen Koffer in Berlin...