Merge pull request #256 from openscad/glewfix

fix bugs and rewrite GLEW finding code to be more clear.
felipesanches-svg
Marius Kintel 2013-01-28 09:02:46 -08:00
commit 81264c1d26
2 changed files with 58 additions and 55 deletions

View File

@ -294,8 +294,7 @@ if (NOT $ENV{GLEWDIR} STREQUAL "")
elseif (NOT $ENV{OPENSCAD_LIBRARIES} STREQUAL "")
set(GLEW_DIR "$ENV{OPENSCAD_LIBRARIES}")
endif()
if (NOT GLEW_INCLUDE_DIR)
message(STATUS "OPENCSG_DIR: " ${OPENCSG_DIR})
if (GLEW_DIR)
find_path(GLEW_INCLUDE_DIR
GL/glew.h
HINTS ${GLEW_DIR}/include
@ -304,16 +303,18 @@ if (NOT GLEW_INCLUDE_DIR)
NAMES GLEW glew
HINTS ${GLEW_DIR}/lib ${GLEW_DIR}/lib64
NO_DEFAULT_PATH)
if (NOT GLEW_LIBRARY)
find_package(GLEW REQUIRED)
if (NOT GLEW_LIBRARY)
message(FATAL_ERROR "GLEW not found")
endif()
if (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
set(GLEW_FOUND 1)
endif()
message(STATUS "GLEW include: " ${GLEW_INCLUDE_DIR})
message(STATUS "GLEW library: " ${GLEW_LIBRARY})
endif()
if (NOT GLEW_FOUND)
find_package(GLEW REQUIRED)
endif()
message(STATUS "GLEW include: " ${GLEW_INCLUDE_DIR})
message(STATUS "GLEW library: " ${GLEW_LIBRARY})
inclusion(GLEW_DIR GLEW_INCLUDE_DIR)
# Flex/Bison

View File

@ -10,56 +10,58 @@
# a few lines of this file are based on the LGPL code found at
# http://openlibraries.org/browser/trunk/FindGLEW.cmake?rev=1383
include(FindPkgConfig)
if (WIN32 AND MSVC)
if (WIN32_STATIC_BUILD) # passed from caller
set(GLEW_LIB_SEARCH_NAME glew32s.lib) # static, non-debug (Release)
else ()
set(GLEW_LIB_SEARCH_NAME glew32.lib) # other. untested with OpenSCAD
endif()
else () # GCC
set(GLEW_LIB_SEARCH_NAME "libglew32s.a")
endif ()
if (PKG_CONFIG_FOUND)
message("Doing pkg config glew check...")
pkg_check_modules(GLEW glew>=1.6)
if (WIN32)
find_path(GLEW_INCLUDE_DIR GL/glew.h
$ENV{PROGRAMFILES}/GLEW/include
${PROJECT_SOURCE_DIR}/src/nvgl/glew/include
DOC "The directory where GL/glew.h resides")
find_library(GLEW_LIBRARY
NAMES ${GLEW_LIB_SEARCH_NAME}
PATHS
$ENV{PROGRAMFILES}/GLEW/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
DOC "The GLEW library")
else()
find_path(GLEW_INCLUDE_DIR GL/glew.h
PATHS /usr/include /usr/local/include /usr/pkg/include
NO_DEFAULT_PATH
DOC "The directory where GL/glew.h resides")
find_library(GLEW_LIBRARY
NAMES GLEW glew
PATHS /usr/lib /usr/local/lib /usr/pkg/lib /lib /lib64 /usr/lib64
NO_DEFAULT_PATH
DOC "The GLEW library")
endif()
if (GLEW_LIBRARIES)
set(GLEW_INCLUDE_DIR "${GLEW_INCLUDE_DIRS}")
set(GLEW_LIBRARY ${GLEW_LDFLAGS})
if (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
set(GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
else()
if (WIN32 AND MSVC)
if (WIN32_STATIC_BUILD) # passed from caller
set(GLEW_LIB_SEARCH_NAME glew32s.lib) # static, non-debug (Release)
else ()
set(GLEW_LIB_SEARCH_NAME glew32.lib) # other. untested with OpenSCAD
set(GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
endif()
if (NOT GLEW_FOUND)
include(FindPkgConfig.cmake)
if (PKG_CONFIG_FOUND)
message(STATUS "Doing pkg config glew check...")
pkg_search_module(GLEW glew)
if (GLEW_FOUND)
set(GLEW_INCLUDE_DIR "${GLEW_INCLUDEDIR}")
set(GLEW_LIBRARY "-L${GLEW_LIBRARY_DIRS} -l${GLEW_LIBRARIES}")
endif()
else () # GCC
set(GLEW_LIB_SEARCH_NAME "libglew32s.a")
endif ()
if (WIN32)
find_path(GLEW_INCLUDE_DIR GL/glew.h
$ENV{PROGRAMFILES}/GLEW/include
${PROJECT_SOURCE_DIR}/src/nvgl/glew/include
DOC "The directory where GL/glew.h resides")
find_library(GLEW_LIBRARY
NAMES ${GLEW_LIB_SEARCH_NAME}
PATHS
$ENV{PROGRAMFILES}/GLEW/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
DOC "The GLEW library")
else (WIN32)
find_path(GLEW_INCLUDE_DIR GL/glew.h
PATHS /usr/include /usr/local/include /usr/pkg/include
NO_DEFAULT_PATH
DOC "The directory where GL/glew.h resides")
find_library(GLEW_LIBRARY
NAMES GLEW glew
PATHS /usr/lib /usr/local/lib /usr/pkg/lib
NO_DEFAULT_PATH
DOC "The GLEW library")
endif (WIN32)
if (GLEW_INCLUDE_DIR)
set(GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
message(STATUS "GLEW include found in " ${GLEW_INCLUDE_DIR} )
message(STATUS "GLEW library found in " ${GLEW_LIBRARY} )
else()
set(GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise")
endif()
endif()
if (NOT GLEW_FOUND)
message(FATAL_ERROR "GLEW not found")
endif()