Three supported win32 compilation environments: MSVC, Cygwin and MingW32

#pragma is specific to MS compiler


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@433 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
nigels 2003-12-30 02:55:39 +00:00
parent 176108b5eb
commit 4a51a82b08

View File

@ -35,40 +35,65 @@
/* /*
* Under windows, we have to differentiate between static and dynamic libraries * Under windows, we have to differentiate between static and dynamic libraries
*/ */
#if defined(WIN32) #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)
/* #pragma may not be supported by some compilers.
* Discussion by FreeGLUT developers suggests that
* Visual C++ specific code involving pragmas may
* need to move to a separate header. 24th Dec 2003
*/
# define WIN32_LEAN_AND_MEAN
# define NO_MIN_MAX
# include <windows.h> # include <windows.h>
# include <windowsx.h> # undef min
# include <mmsystem.h> # undef max
# define WINDOWS
#ifdef FREEGLUT_STATIC /* Windows static library */
# ifdef FREEGLUT_STATIC
# define FGAPI # define FGAPI
# define FGAPIENTRY # define FGAPIENTRY
# pragma comment (lib, "freeglut_static.lib") /* link with Win32 static freeglut lib */ /* Link with Win32 static freeglut lib */
# if defined(_MSC_VER)
# pragma comment (lib, "freeglut_static.lib")
# endif
#else /* Windows shared library (DLL) */
# else
# if defined(FREEGLUT_EXPORTS) # if defined(FREEGLUT_EXPORTS)
# define FGAPI __declspec(dllexport) # define FGAPI __declspec(dllexport)
/* # define FGAPI */
# else # else
# define FGAPI __declspec(dllimport) # define FGAPI __declspec(dllimport)
# pragma comment (lib, "freeglut.lib") /* link with Win32 freeglut lib */
/* link with Win32 shared freeglut lib */
# if defined(_MSC_VER)
# pragma comment (lib, "freeglut.lib")
# endif # endif
# define FGAPIENTRY __stdcall
#endif # endif
#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ # define FGAPIENTRY __stdcall
#pragma comment (lib, "user32.lib") /* link with Windows user lib */
#pragma comment (lib, "gdi32.lib") /* link with Windows GDI lib */
#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */
# endif
/* Drag in other Windows libraries as required by FreeGLUT */
# if defined(_MSC_VER)
# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */
# pragma comment (lib, "user32.lib") /* link Windows user lib */
# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */
# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */
# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */
# endif
#else #else
/* Non-Windows definition of FGAPI and FGAPIENTRY */
# define FGAPI # define FGAPI
# define FGAPIENTRY # define FGAPIENTRY
#endif #endif
/* /*
@ -153,7 +178,7 @@
* *
* Steve Baker suggested to make it binary compatible with GLUT: * Steve Baker suggested to make it binary compatible with GLUT:
*/ */
#if defined(WIN32) #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)
# define GLUT_STROKE_ROMAN ((void *)0x0000) # define GLUT_STROKE_ROMAN ((void *)0x0000)
# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) # define GLUT_STROKE_MONO_ROMAN ((void *)0x0001)
# define GLUT_BITMAP_9_BY_15 ((void *)0x0002) # define GLUT_BITMAP_9_BY_15 ((void *)0x0002)