diff options
| author | Marius Kintel <marius@kintel.net> | 2013-01-28 17:02:46 (GMT) | 
|---|---|---|
| committer | Marius Kintel <marius@kintel.net> | 2013-01-28 17:02:46 (GMT) | 
| commit | 81264c1d268251f2b5294372782af31f39599d52 (patch) | |
| tree | 11cdd1652475e48dbbd464f64b10da7a14d823d1 | |
| parent | 5cf183a784001203ccb4b29347f8a733f972ba1a (diff) | |
| parent | d09e0e7f420da11c2cbc91a5afeeec98896f66bd (diff) | |
Merge pull request #256 from openscad/glewfix
fix bugs and rewrite GLEW finding code to be more clear.
| -rw-r--r-- | tests/CMakeLists.txt | 19 | ||||
| -rw-r--r-- | tests/FindGLEW.cmake | 94 | 
2 files changed, 58 insertions, 55 deletions
| diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8822c92..d2daf43 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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 diff --git a/tests/FindGLEW.cmake b/tests/FindGLEW.cmake index 1d94ca2..8fa2ac2 100644 --- a/tests/FindGLEW.cmake +++ b/tests/FindGLEW.cmake @@ -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 -    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) +  set(GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") +endif() -  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") +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()    endif()  endif() + +if (NOT GLEW_FOUND) +  message(FATAL_ERROR "GLEW not found") +endif() | 
