add option WITH_BUILTIN_GLEW, so linux packagers can disable to use their own glew library.

This commit is contained in:
Campbell Barton 2011-04-05 23:31:01 +00:00
parent d5d9c56cb5
commit ca254dd37b
26 changed files with 115 additions and 21 deletions

@ -44,6 +44,9 @@ endif()
cmake_minimum_required(VERSION 2.8)
# this starts out unset
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules/")
# quiet output for Makefiles, 'make -s' helps too
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
@ -86,6 +89,7 @@ endif()
if(UNIX AND NOT APPLE)
option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support)" ON)
option(WITH_BUILTIN_GLEW "Use GLEW OpenGL wrapper library bundled with blender" ON)
endif()
# Modifiers
@ -1020,6 +1024,23 @@ if(WITH_OPENMP)
mark_as_advanced(OpenMP_CXX_FLAGS)
endif()
#-----------------------------------------------------------------------------
# Configure GLEW
if(WITH_BUILTIN_GLEW)
# set(GLEW_LIBRARY "") # unused
set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include")
else()
find_package(GLEW)
if(NOT GLEW_FOUND)
message(FATAL_ERROR "GLEW is required to build blender, install it or use WITH_BUILTIN_GLEW")
endif()
mark_as_advanced(GLEW_LIBRARY)
mark_as_advanced(GLEW_INCLUDE_PATH)
endif()
#-----------------------------------------------------------------------------
# Configure Python.

@ -0,0 +1,59 @@
#
# Try to find GLEW library and include path.
# Once done this will define
#
# GLEW_FOUND
# GLEW_INCLUDE_PATH
# GLEW_LIBRARY
#
IF (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
$ENV{PROGRAMFILES}/GLEW/include
${PROJECT_SOURCE_DIR}/src/nvgl/glew/include
DOC "The directory where GL/glew.h resides")
IF (NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
FIND_LIBRARY( GLEW_LIBRARY
NAMES glew64 glew64s
PATHS
$ENV{PROGRAMFILES}/GLEW/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
DOC "The GLEW library (64-bit)"
)
ELSE(NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
FIND_LIBRARY( GLEW_LIBRARY
NAMES glew GLEW glew32 glew32s
PATHS
$ENV{PROGRAMFILES}/GLEW/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
DOC "The GLEW library"
)
ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
ELSE (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "The directory where GL/glew.h resides")
FIND_LIBRARY( GLEW_LIBRARY
NAMES GLEW glew
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/lib
DOC "The GLEW library")
ENDIF (WIN32)
IF (GLEW_INCLUDE_PATH)
SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
ELSE (GLEW_INCLUDE_PATH)
SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
ENDIF (GLEW_INCLUDE_PATH)
MARK_AS_ADVANCED( GLEW_FOUND )

@ -138,6 +138,10 @@ macro(setup_liblinks
endif()
endif()
if(NOT WITH_BUILTIN_GLEW)
target_link_libraries(${target} ${GLEW_LIBRARY})
endif()
target_link_libraries(${target} ${OPENGL_glu_LIBRARY} ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
target_link_libraries(${target} ${FREETYPE_LIBRARY})

@ -35,7 +35,9 @@ if(WITH_BINRELOC)
add_subdirectory(binreloc)
endif()
add_subdirectory(glew)
if(WITH_BUILTIN_GLEW)
add_subdirectory(glew)
endif()
if(WITH_IMAGE_OPENJPEG AND (NOT UNIX OR APPLE))
add_subdirectory(libopenjpeg)

@ -27,9 +27,9 @@
set(INC
.
../string
../../extern/glew/include
../../source/blender/imbuf
../../source/blender/makesdna
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -29,7 +29,7 @@ set(INC
../editors/include
../blenkernel
../../../intern/guardedalloc
../../../extern/glew/include
${GLEW_INCLUDE_PATH}
${FREETYPE_INCLUDE_DIRS}
)

@ -38,7 +38,6 @@ set(INC
../nodes
../editors/include
../render/extern/include
../../../extern/glew/include
../../../intern/audaspace/intern
../../../intern/bsp/extern ../blenfont
../../../intern/decimation/extern
@ -50,6 +49,7 @@ set(INC
../../../intern/smoke/extern
../../../intern/mikktspace
../../../source/blender/windowmanager # XXX - BAD LEVEL CALL WM_api.h
${GLEW_INCLUDE_PATH}
${ZLIB_INCLUDE_DIRS}
)

@ -35,7 +35,7 @@
#ifndef BIF_GL_H
#define BIF_GL_H
#include "../../../../extern/glew/include/GL/glew.h"
#include "GL/glew.h"
/*
* these should be phased out. cpack should be replaced in

@ -32,7 +32,7 @@ set(INC
../../render/extern/include
../../windowmanager
../../../../intern/guardedalloc
../../../../extern/glew/include
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -32,9 +32,9 @@ set(INC
../imbuf
../makesdna
../makesrna
../../../extern/glew/include
../../../intern/guardedalloc
../../../intern/smoke/extern
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -9,6 +9,7 @@ objs += o
incs = '#/intern/guardedalloc #/intern/memutil #/intern/audaspace/intern ../blenkernel ../blenlib ../makesdna intern .'
incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont ../blenloader'
incs += ' ../render/extern/include'
incs += ' #/extern/glew/include'
defs = []

@ -144,10 +144,10 @@ blender_include_dirs(
../../windowmanager
../../editors/include
../../render/extern/include
../../../../extern/glew/include
../../../../intern/audaspace/intern
../../../../intern/guardedalloc
../../../../intern/memutil
${GLEW_INCLUDE_PATH}
)
add_executable(makesrna ${SRC} ${SRC_RNA_INC} ${SRC_DNA_INC})

@ -34,6 +34,7 @@ incs += ' ../../imbuf ../../makesdna ../../makesrna ../../ikplugin'
incs += ' ../../windowmanager ../../editors/include ../../blenfont'
incs += ' ../../render/extern/include'
incs += ' #/intern/audaspace/intern '
incs += ' #/extern/glew/include '
if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')

@ -34,7 +34,7 @@ set(INC
../makesrna
../render/extern/include
../../../intern/guardedalloc
../../../extern/glew/include
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -25,7 +25,7 @@ set(INC
../../blenkernel
../../blenloader
../../../../intern/guardedalloc
../../../../extern/glew/include
${GLEW_INCLUDE_PATH}
${PYTHON_INCLUDE_DIRS}
)

@ -43,8 +43,8 @@ set(INC
../../../intern/elbeem/extern
../../../intern/ghost
../../../intern/opennl/extern
../../../extern/glew/include
${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -112,13 +112,16 @@ if(UNIX)
bf_intern_audaspace
blenkernel_blc
extern_binreloc
extern_glew
extern_minilzo
bf_intern_ghost # duplicate for linking
bf_blenkernel # duplicate for linking
bf_intern_mikktspace
)
if(WITH_BUILTIN_GLEW)
list(APPEND BLENDER_SORTED_LIBS extern_glew)
endif()
if(WITH_LZMA)
list(APPEND BLENDER_SORTED_LIBS extern_lzma)
endif()

@ -777,7 +777,6 @@ endif()
extern_bullet
ge_logic_loopbacknetwork
bf_intern_moto
extern_glew
extern_openjpeg
extern_redcode
ge_videotex
@ -788,6 +787,10 @@ endif()
bf_intern_mikktspace
)
if(WITH_BUILTIN_GLEW)
list(APPEND BLENDER_SORTED_LIBS extern_glew)
endif()
if(WITH_BINRELOC)
list(APPEND BLENDER_SORTED_LIBS extern_binreloc)
endif()

@ -29,7 +29,7 @@ set(INC
../../../source/blender/blenloader
../../../source/blender/gpu
../../../extern/bullet2/src
../../../extern/glew/include
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -51,7 +51,7 @@ set(INC
../../../../source/gameengine/GamePlayer/ghost
../../../../source/blender/blenloader
../../../../source/blender/gpu
../../../../extern/glew/include
${GLEW_INCLUDE_PATH}
${PYTHON_INCLUDE_DIRS}
${PNG_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}

@ -53,7 +53,7 @@ set(INC
../../../../source/gameengine/GamePlayer/common
../../../../source/blender/blenloader
../../../../source/blender/gpu
../../../../extern/glew/include
${GLEW_INCLUDE_PATH}
${PYTHON_INCLUDE_DIRS}
)

@ -52,7 +52,7 @@ set(INC
../../../intern/audaspace/intern
../../../source/blender/blenloader
../../../source/blender/gpu
../../../extern/glew/include
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -31,7 +31,6 @@ set(INC
.
../common
../../../../extern/bullet2/src
../../../../extern/glew/include
../../../../intern/moto/include
../../../../intern/guardedalloc
../../../kernel/gen_system
@ -44,6 +43,7 @@ set(INC
../../../../source/blender/makesdna
../../../../source/blender/blenlib
../../../../source/blender/blenkernel
${GLEW_INCLUDE_PATH}
${PYTHON_INCLUDE_DIRS}
)

@ -32,9 +32,9 @@ set(INC
../../../source/gameengine/Ketsji
../../../intern/string
../../../intern/moto/include
../../../extern/glew/include
../../../intern/guardedalloc
../Expressions
${GLEW_INCLUDE_PATH}
${PYTHON_INCLUDE_DIRS}
)

@ -31,12 +31,12 @@ set(INC
../../../../source/gameengine/Rasterizer
../../../../source/gameengine/Ketsji
../../../../source/gameengine/SceneGraph
../../../../extern/glew/include
../../../../source/blender/gpu
../../../../source/blender/makesdna
../../../../source/blender/blenkernel
../../../../source/blender/blenlib
../../../../source/blender/blenloader
${GLEW_INCLUDE_PATH}
)
set(SRC

@ -45,7 +45,7 @@ set(INC
../../../intern/string
../../../intern/moto/include
../../../intern/guardedalloc
../../../extern/glew/include
${GLEW_INCLUDE_PATH}
)
set(SRC