[GRASS-dev] fixes for Windows
Michael Barton
Michael.Barton at asu.edu
Wed Dec 16 01:30:03 EST 2009
Thanks Glynn.
I hope that someone is able to help you with this. Sounds like it is getting close.
Michael
On Dec 15, 2009, at 8:01 PM, Glynn Clements wrote:
>
> Michael Barton wrote:
>
>> With help from Glynn Clements, I was able to fix the bug that
>> prevented NVIZ for TclTk from running from the wxPython menu. I also
>> added the TclTk digitizer to the menu. So now Windows users will have
>> easy access to 3D rendering and digitizing (without requiring that
>> msys be loaded) until the wxPython equivalents can be implemented in
>> Windows.
>
> FWIW, with a bit of hacking, I managed to get vdigit and nviz to
> compile with MinGW, but both fail at the linking step with a
> "ld.exe has encountered a problem ..." dialog. That's as far as I have
> got so far.
>
> Issues:
>
> 1. The lack of python-config and wx-config scripts. I just created
> scripts which give the right answers for my system.
>
> 2. The setup.py build system passes the Platform.make settings to gcc
> without going through the shell, which means that the MSys-style
> pathnames don't get translated to valid Windows pathnames.
>
> I got around this by inserting the following into setup.py:
>
> mounts = [('/c/', 'c:/'),
> ('/usr/', 'c:/msys/1.0/'),
> ('/', 'c:/msys/1.0/')]
>
> def from_msys(d):
> for src, dst in mounts:
> if d.startswith(src):
> d = dst + d[len(src):]
> break
> d = d.replace('/', '\\')
> return d
>
> inc_dirs = map(from_msys, inc_dirs)
> lib_dirs = map(from_msys, lib_dirs)
>
> Cygwin has the "cygpath" utility for this, but I couldn't find
> anything similar for MSys.
>
> 3. Python.h defines HAVE_PUTENV and HAVE_FTIME, which causes the
> preprocessor to emit "... redefined" warnings. These are only
> warnings, but AC_CHECK_HEADERS fails if anything is written to stderr.
>
> 4. setup.py doesn't consider enough variables, e.g. CPPFLAGS and
> INCLUDE_DIRS aren't used. But then the whole thing with trying to
> parse the *.make files is broken (e.g. "make ... VAR=val" doesn't
> work).
>
> 5. The definition of PACKAGE needs the backslashes, i.e.:
>
> macros = [('PACKAGE', '\\"grasslibs\\"')]
>
> (but this might break other platforms).
>
> BTW, vdigit uses _(...) but doesn't include glocale.h, so this will
> use wxWidgets' _(...) macro from <wx/intl.h>, not GRASS'.
>
> 6. A couple of minor bugs:
>
> vdigit/digit.cpp expects _CPPRTTI to be defined if _WIN32 is defined,
> but this should only be done for MSVC.
>
> vdigit/driver.cpp uses getpid() but doesn't include <unistd.h>.
>
> --
> Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list