mirror of
				https://github.com/Perlmint/glew-cmake.git
				synced 2025-11-03 22:04:16 +00:00 
			
		
		
		
	Touch-ups for GLEW_OSMESA build support
This commit is contained in:
		
							parent
							
								
									11e24d4a9b
								
							
						
					
					
						commit
						fd49b2baff
					
				@ -7,7 +7,9 @@ script:
 | 
			
		||||
- make extensions
 | 
			
		||||
- make dist-src
 | 
			
		||||
- make clean; SYSTEM=linux        make 
 | 
			
		||||
- make clean; SYSTEM=linux-osmesa make
 | 
			
		||||
- pushd build/cmake; git clean -xdf .; cmake -G 'Unix Makefiles' .                ; make; popd
 | 
			
		||||
- pushd build/cmake; git clean -xdf .; cmake -G 'Unix Makefiles' -DGLEW_OSMESA=1 .; make; popd
 | 
			
		||||
addons:
 | 
			
		||||
  artifacts:
 | 
			
		||||
    bucket: glew
 | 
			
		||||
 | 
			
		||||
@ -204,8 +204,7 @@ $(S.DEST)/glew.c: $(EXT)/.dummy
 | 
			
		||||
	$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
 | 
			
		||||
	$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
 | 
			
		||||
	echo -e "\n  return GLEW_OK;\n}\n" >> $@
 | 
			
		||||
	echo -e "\n#if defined(GLEW_OSMESA)" >> $@
 | 
			
		||||
	echo -e "\n#elif defined(_WIN32)" >> $@
 | 
			
		||||
	echo -e "\n#if defined(_WIN32) && ! defined(GLEW_OSMESA)" >> $@
 | 
			
		||||
	echo -e "\n#if !defined(GLEW_MX)" >> $@
 | 
			
		||||
	$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
 | 
			
		||||
	$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
 | 
			
		||||
@ -214,7 +213,7 @@ $(S.DEST)/glew.c: $(EXT)/.dummy
 | 
			
		||||
	cat $(SRC)/glew_init_wgl.c >> $@
 | 
			
		||||
	$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
 | 
			
		||||
	echo -e "\n  return GLEW_OK;\n}" >> $@;
 | 
			
		||||
	echo -e "\n#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
 | 
			
		||||
	echo -e "\n#elif !defined(GLEW_OSMESA) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
 | 
			
		||||
	$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
 | 
			
		||||
	$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
 | 
			
		||||
	echo -e "\n#if !defined(GLEW_MX)" >> $@;
 | 
			
		||||
 | 
			
		||||
@ -140,10 +140,10 @@ void* NSGLGetProcAddress (const GLubyte *name)
 | 
			
		||||
/*
 | 
			
		||||
 * Define glewGetProcAddress.
 | 
			
		||||
 */
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#if defined(GLEW_REGAL)
 | 
			
		||||
#  define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name)
 | 
			
		||||
#elif defined(GLEW_OSMESA)
 | 
			
		||||
#  define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name)
 | 
			
		||||
#elif defined(GLEW_REGAL)
 | 
			
		||||
#  define glewGetProcAddress(name) regalGetProcAddress((const GLchar *) name)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
#  define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
 | 
			
		||||
#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
 | 
			
		||||
 | 
			
		||||
@ -39,11 +39,11 @@ GLenum GLEWAPIENTRY glewInit (void)
 | 
			
		||||
  GLenum r;
 | 
			
		||||
  r = glewContextInit();
 | 
			
		||||
  if ( r != 0 ) return r;
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#if defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__)
 | 
			
		||||
  return r;
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
  return wglewInit();
 | 
			
		||||
#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
 | 
			
		||||
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */
 | 
			
		||||
  return glxewInit();
 | 
			
		||||
#else
 | 
			
		||||
  return r;
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
 | 
			
		||||
#elif !defined(GLEW_OSMESA) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
 | 
			
		||||
 | 
			
		||||
#if defined(GLEW_MX)
 | 
			
		||||
GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name)
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,7 @@
 | 
			
		||||
  return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
#if defined(_WIN32) && !defined(GLEW_OSMESA)
 | 
			
		||||
 | 
			
		||||
#if defined(GLEW_MX)
 | 
			
		||||
GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else /* _UNIX */
 | 
			
		||||
#elif !defined(GLEW_OSMESA) /* _UNIX */
 | 
			
		||||
 | 
			
		||||
static void glxewInfo ()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -24,11 +24,10 @@ static FILE* f;
 | 
			
		||||
#ifdef GLEW_MX
 | 
			
		||||
GLEWContext _glewctx;
 | 
			
		||||
#define glewGetContext() (&_glewctx)
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
WGLEWContext _wglewctx;
 | 
			
		||||
#define wglewGetContext() (&_wglewctx)
 | 
			
		||||
#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
 | 
			
		||||
#elif !defined(GLEW_OSMESA) && !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
 | 
			
		||||
GLXEWContext _glxewctx;
 | 
			
		||||
#define glxewGetContext() (&_glxewctx)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -129,7 +129,8 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
 | 
			
		||||
      else return GL_TRUE;
 | 
			
		||||
      ++p;
 | 
			
		||||
    }
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
    else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat"))
 | 
			
		||||
    {
 | 
			
		||||
      if (++p >= argc) return GL_TRUE;
 | 
			
		||||
@ -158,7 +159,7 @@ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
OSMesaContext ctx;
 | 
			
		||||
 | 
			
		||||
GLboolean glewCreateContext ()
 | 
			
		||||
GLboolean glewCreateContext (struct createParams *params)
 | 
			
		||||
{
 | 
			
		||||
  ctx = OSMesaCreateContext(OSMESA_RGBA, NULL);
 | 
			
		||||
  if (NULL == ctx) return GL_TRUE;
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,7 @@
 | 
			
		||||
 | 
			
		||||
/* ------------------------------------------------------------------------ */
 | 
			
		||||
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
#if defined(_WIN32) && !defined(GLEW_OSMESA)
 | 
			
		||||
 | 
			
		||||
static void wglewInfo ()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ set(CMAKE_DEBUG_POSTFIX d)
 | 
			
		||||
 | 
			
		||||
option (BUILD_UTILS "utilities" ON)
 | 
			
		||||
option (GLEW_REGAL "Regal mode" FALSE)
 | 
			
		||||
option (GLEW_OSMESA "OSMesa mode" FALSE)
 | 
			
		||||
 | 
			
		||||
set (GLEW_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..)
 | 
			
		||||
 | 
			
		||||
@ -54,6 +55,18 @@ if (GLEW_REGAL)
 | 
			
		||||
  set (GLEW_LIBRARIES ${REGAL_LIB_NAME})
 | 
			
		||||
endif ()
 | 
			
		||||
 | 
			
		||||
#### OSMesa mode ####
 | 
			
		||||
 | 
			
		||||
if (GLEW_OSMESA)
 | 
			
		||||
  if (WIN32)
 | 
			
		||||
    set (OSMESA_LIB_NAME osmesa)
 | 
			
		||||
  else ()
 | 
			
		||||
    set (OSMESA_LIB_NAME OSMesa)
 | 
			
		||||
  endif ()
 | 
			
		||||
  add_definitions (-DGLEW_OSMESA)
 | 
			
		||||
  set (GLEW_LIBRARIES ${OSMESA_LIB_NAME} ${OPENGL_LIBRARIES})
 | 
			
		||||
endif ()
 | 
			
		||||
 | 
			
		||||
#### GLEW ####
 | 
			
		||||
 | 
			
		||||
include_directories (${GLEW_DIR}/include)
 | 
			
		||||
 | 
			
		||||
@ -1,36 +1,4 @@
 | 
			
		||||
NAME = $(GLEW_NAME)
 | 
			
		||||
CC = cc
 | 
			
		||||
LD = cc
 | 
			
		||||
M_ARCH ?= $(shell uname -m)
 | 
			
		||||
ARCH64 = false
 | 
			
		||||
ifeq (x86_64,${M_ARCH})
 | 
			
		||||
  ARCH64 = true
 | 
			
		||||
endif
 | 
			
		||||
ifeq (ppc64,${M_ARCH})
 | 
			
		||||
  ARCH64 = true
 | 
			
		||||
endif
 | 
			
		||||
ifeq (${ARCH64},true)
 | 
			
		||||
  LDFLAGS.EXTRA = -L/usr/lib64
 | 
			
		||||
  LIBDIR = $(GLEW_DEST)/lib64
 | 
			
		||||
else
 | 
			
		||||
  LDFLAGS.EXTRA = -L/usr/lib
 | 
			
		||||
  LIBDIR = $(GLEW_DEST)/lib
 | 
			
		||||
endif
 | 
			
		||||
include config/Makefile.linux
 | 
			
		||||
 | 
			
		||||
LDFLAGS.GL = -lOSMesa
 | 
			
		||||
LDFLAGS.STATIC = -Wl,-Bstatic
 | 
			
		||||
LDFLAGS.DYNAMIC = -Wl,-Bdynamic
 | 
			
		||||
NAME = GLEW
 | 
			
		||||
WARN = -Wall -W
 | 
			
		||||
POPT = -O2
 | 
			
		||||
CFLAGS.EXTRA += -fPIC -DGLEW_OSMESA
 | 
			
		||||
BIN.SUFFIX =
 | 
			
		||||
LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
 | 
			
		||||
LIB.DEVLNK = lib$(NAME).so
 | 
			
		||||
LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
 | 
			
		||||
LIB.STATIC = lib$(NAME).a
 | 
			
		||||
LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
 | 
			
		||||
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
 | 
			
		||||
LIB.DEVLNK.MX = lib$(NAME)mx.so
 | 
			
		||||
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
 | 
			
		||||
LIB.STATIC.MX = lib$(NAME)mx.a
 | 
			
		||||
LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX)
 | 
			
		||||
CFLAGS.EXTRA += -DGLEW_OSMESA
 | 
			
		||||
 | 
			
		||||
@ -264,7 +264,14 @@ void PrintExtensions (const char* s)
 | 
			
		||||
 | 
			
		||||
/* ---------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#if defined(GLEW_OSMESA)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
VisualInfo (GLContext* ctx)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
VisualInfoARB (GLContext* ctx)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user