Michael Droettboom wrote:
Hmmm... Well, I think we've reached the limit of my MSVC knowledge
(which doesn't go very far.) I presume that for your local copy, you
can just hard code it to :
#ifdef 1 || WIN32 || _MSC_VER
Actually, I just tried that, and it didn't work. Again, I don't really
know anything about preprocessing in C, but it seems you can't put more
than one MACRO in an #ifdef statement. Instead, it looks like you need
to do:
#if defined(WIN32) || defined(_MSC_VER)
This *does* work for me. So it seems WIN32 isn't defined on my MSVC7.1,
but _MSC_VER is (I've discovered that _WIN32 is defined as well).
Anyways, I'm not sure if this is the ideal way to have it, but I've
attached a patch against the latest rev.
Cheers,
Martin
and at least get it working for yourself. But I think someone with more
MSVC experience on this list may have to look into this and have more to
offer.
Cheers,
Mike
Martin Spacek wrote:
Sorry for the delay. I gave that a try, but it didn't help. Seems that
_MSC_VER is undefined as well...
Martin
Michael Droettboom wrote:
Martin Spacek wrote:
It's been a few months since I've updated and compiled from svn. I got
this error today from rev 3926 (in winxp using msvc71):
python setup.py build_ext --inplace --force
============================================================================
BUILDING MATPLOTLIB
matplotlib: 0.90.1
python: 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC
v.1310 32 bit (Intel)]
platform: win32
Windows version: (5, 1, 2600, 2, 'Service Pack 2')
REQUIRED DEPENDENCIES
numpy: 1.0.4.dev4155
freetype2: found, but unknown version (no pkg-config)
OPTIONAL DEPENDENCIES
Gtk+: no
* Building for Gtk+ requires pygtk; you
must be
able
* to "import gtk" in your build/install
environment
Tkinter: Tkinter: 50704, Tk: 8.4, Tcl: 8.4
wxPython: 2.8.4.0
* WxAgg extension not required for wxPython
= 2.8
Qt: no
Qt4: no
Cairo: no
libpng: found, but unknown version (no pkg-config)
[Edit setup.cfg to suppress the above messages]
============================================================================
running build_ext
No module named msvccompiler in numpy.distutils; trying from distutils
building 'matplotlib.ft2font' extension
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /Tpsrc/ft2font.cpp /Fobuild
\temp.win32-2.5\Release\src/ft2font.obj
Found executable C:\bin\Microsoft Visual Studio .NET
2003\Vc7\bin\cl.exe
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /Tpsrc/mplutils.cpp /Fobuil
d\temp.win32-2.5\Release\src/mplutils.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /TpCXX\cxxsupport.cxx /Fobu
ild\temp.win32-2.5\Release\CXX\cxxsupport.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /TpCXX\cxx_extensions.cxx /
Fobuild\temp.win32-2.5\Release\CXX\cxx_extensions.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /TpCXX\IndirectPythonInterf
ace.cxx /Fobuild\temp.win32-2.5\Release\CXX\IndirectPythonInterface.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
Iwin32_static\include\freetype2 -I.\freetype2 -IC:\bin\Python25\include
-IC:\bin\Python25\PC /TcCXX\cxxextensions.c /Fob
uild\temp.win32-2.5\Release\CXX\cxxextensions.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\link.exe /DLL /nologo
/INCREMENTAL:NO /LIBPATH:win32_static\lib /LIBPAT
H:C:\bin\Python25\libs /LIBPATH:C:\bin\Python25\PCBuild freetype.lib
z.lib /EXPORT:initft2font build\temp.win32-2.5\Rele
ase\src/ft2font.obj build\temp.win32-2.5\Release\src/mplutils.obj
build\temp.win32-2.5\Release\CXX\cxxsupport.obj build\
temp.win32-2.5\Release\CXX\cxx_extensions.obj
build\temp.win32-2.5\Release\CXX\IndirectPythonInterface.obj
build\temp.wi
n32-2.5\Release\CXX\cxxextensions.obj /OUT:lib\matplotlib\ft2font.pyd
/IMPLIB:build\temp.win32-2.5\Release\src\ft2font.l
ib
Found executable C:\bin\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe
building 'matplotlib.ttconv' extension
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
IC:\bin\Python25\include -IC:\bin\Python25\PC /Tpsrc/_ttconv.cpp
/Fobuild\temp.win32-2.5\Release\src/_ttconv.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
IC:\bin\Python25\include -IC:\bin\Python25\PC /Tpttconv/pprdrv_tt.cpp
/Fobuild\temp.win32-2.5\Release\ttconv/pprdrv_tt.o
bj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
IC:\bin\Python25\include -IC:\bin\Python25\PC /Tpttconv/pprdrv_tt2.cpp
/Fobuild\temp.win32-2.5\Release\ttconv/pprdrv_tt2
.obj
C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox
/MD /W3 /GX /DNDEBUG -Iwin32_static\include -I. -
IC:\bin\Python25\include -IC:\bin\Python25\PC /Tpttconv/ttutil.cpp
/Fobuild\temp.win32-2.5\Release\ttconv/ttutil.obj
ttutil.cpp
ttconv\ttutil.cpp(38) : error C3861: 'vsnprintf': identifier not found,
even with argument-dependent lookup
ttconv\ttutil.cpp(45) : error C3861: 'vsnprintf': identifier not found,
even with argument-dependent lookup
error: Command "C:\bin\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe
/c /nologo /Ox /MD /W3 /GX /DNDEBUG -Iwin32_stat
ic\include -I. -IC:\bin\Python25\include -IC:\bin\Python25\PC
/Tpttconv/ttutil.cpp /Fobuild\temp.win32-2.5\Release\ttcon
v/ttutil.obj" failed with exit status 2
The latest change for ttutil.cpp was:
Revision: 3696
Author: cmoad
Date: 5:53:21 AM, Friday, August 10, 2007
Message:
added win32 checks for vsnprintf which is _vsnprintf on windows
----
Modified : /trunk/matplotlib/ttconv/ttutil.cpp
So it looks like both the lines that check #ifdef WIN32 are evaluating
as false, even though I'm in win32. I don't know much about C++. As a
hack, replacing vsnprintf with _vsnprintf in the else clauses gives
me a
successful build.
Hmm... I wonder if the WIN32 symbol is a Mingw32 thing and not a MS
Visual Studio thing. One thing I have seen elsewhere is the use of
_MSC_VER to do this. Would you mind trying:
#ifdef WIN32 || _MSC_VER
instead of
#ifdef WIN32
(I don't have a MS Visual Studio to test with myself). Maybe one of
the Windows guys on this list has another idea as well.
Index: ttconv/ttutil.cpp
===================================================================
--- ttconv/ttutil.cpp (revision 3952)
+++ ttconv/ttutil.cpp (working copy)
@@ -32,14 +32,14 @@
va_start(arg_list, format);
char buffer[PRINTF_BUFFER_SIZE];
-#ifdef WIN32
+#if defined(WIN32) || defined(_MSC_VER)
int size = _vsnprintf(buffer, PRINTF_BUFFER_SIZE, format, arg_list);
#else
int size = vsnprintf(buffer, PRINTF_BUFFER_SIZE, format, arg_list);
#endif
if (size >= PRINTF_BUFFER_SIZE) {
char* buffer2 = (char*)malloc(size);
-#ifdef WIN32
+#if defined(WIN32) || defined(_MSC_VER)
_vsnprintf(buffer2, size, format, arg_list);
#else
vsnprintf(buffer2, size, format, arg_list);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel