← Back to team overview

kicad-developers team mailing list archive

Re: Python scripting cmake build macros.


> wxPython:
> If there is a dependency anywhere in the 345 megabytes of wxPython source code on pywin32,
> then they should have called it mfcPython, not wxPython.
> I'm hoping proper software layering would have caused wxPython to simply be parked on top
> of wxWidgets and Python.  But there is 345 megabytes all potentially conspiring to ruin my
> hopes and make your warning flag devastatingly true.
> Some of this source tree is doxygen docs and C++ support for non-Windows platforms, so the
> actual number of megabytes that is pertinent to windows, although still quite sizable, is
> smaller than 345 megabytes. 
> Good thing that.  Well, better anyway.  :)

There is hope this library can be built on linux using mingw, for windows.  Again, our
goal is binaries.  That means only one person need succeed.

from BuildSVN.txt:

VII) Unix->Windows cross-compiling using configure

First you'll need a cross-compiler; linux glibc binaries of MinGW and
Cygwin (both based on egcs) can be found at
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Alternative binaries,
based on the latest MinGW release can be found at
Otherwise you can compile one yourself.

[ A Note about Cygwin and MinGW: the main difference is that Cygwin
binaries are always linked against cygwin.dll. This dll encapsulates most
standard Unix C extensions, which is very handy if you're porting unix
software to windows. However, wxMSW doesn't need this, so MinGW is
preferable if you write portable C(++). ]

You might want to build both Unix and Windows binaries in the same source
tree; to do this make subdirs for each e.g. unix and win32. If you've
already build wxWidgets in the main dir, do a 'make distclean' there,
otherwise configure will get confused. (In any case, read the section 'Unix
using configure' and make sure you're able to build a native wxWidgets
library; cross-compiling errors can be pretty obscure and you'll want to be
sure that your configure setup is basically sound.)

To cross compile the windows library, do
-> cd win32
(or whatever you called it)
Now run configure. There are two ways to do this
-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw
where --build= should read whatever platform you're building on. Configure
will notice that build and host platforms differ, and automatically prepend
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
The other way to run configure is by specifying the names of the binaries
-> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \
   DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \
   ../configure --host=i586-mingw32 --with-mingw

(all assuming you're using MinGW)
By default this will compile a DLL, if you want a static library,
specify --disable-shared.

-> make
and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-)