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

Reply via email to