Skip to content

Commit cf3170c

Browse files
author
Milan Hanus
committed
Search for GLUT and related libraries on MacOS only when H2D_WITH_GLUT is true (like in all other systems).
1 parent 8d0ae8c commit cf3170c

File tree

2 files changed

+68
-62
lines changed

2 files changed

+68
-62
lines changed

OSX.cmake

+64-60
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,79 @@ IF (${BLAS_LIBRARY} MATCHES ".*libblas.dylib")
1616
ELSE ()
1717
MESSAGE(FATAL_ERROR "BLAS_LIBRARY was not found!")
1818
ENDIF()
19+
20+
IF (H2D_WITH_GLUT)
1921

20-
## OSMesa
21-
FIND_LIBRARY(MESA_LIBRARY NAMES OSMesa PATHS /usr/X11/lib)
22-
IF (${MESA_LIBRARY} MATCHES ".*libOSMesa.dylib")
23-
EXECUTE_PROCESS(COMMAND file ${MESA_LIBRARY} OUTPUT_VARIABLE RESULT)
24-
25-
IF (${RESULT} MATCHES ".*i386.*")
26-
MESSAGE(STATUS "Using ${MESA_LIBRARY} with architecture i386")
22+
## OSMesa
23+
FIND_LIBRARY(MESA_LIBRARY NAMES OSMesa PATHS /usr/X11/lib)
24+
IF (${MESA_LIBRARY} MATCHES ".*libOSMesa.dylib")
25+
EXECUTE_PROCESS(COMMAND file ${MESA_LIBRARY} OUTPUT_VARIABLE RESULT)
26+
27+
IF (${RESULT} MATCHES ".*i386.*")
28+
MESSAGE(STATUS "Using ${MESA_LIBRARY} with architecture i386")
29+
ELSE ()
30+
MESSAGE(FATAL_ERROR "MESA_LIBRARY ${MESA_LIBRARY} is NOT i386!")
31+
ENDIF ()
2732
ELSE ()
28-
MESSAGE(FATAL_ERROR "MESA_LIBRARY ${MESA_LIBRARY} is NOT i386!")
29-
ENDIF ()
30-
ELSE ()
31-
MESSAGE(FATAL_ERROR "MESA_LIBRARY was not found!")
32-
ENDIF()
33+
MESSAGE(FATAL_ERROR "MESA_LIBRARY was not found!")
34+
ENDIF()
3335

34-
## GLU
35-
FIND_LIBRARY(GLU_LIBRARY NAMES GLU PATHS /usr/X11/lib)
36-
IF (${GLU_LIBRARY} MATCHES ".*libGLU.dylib")
37-
EXECUTE_PROCESS(COMMAND file ${GLU_LIBRARY} OUTPUT_VARIABLE RESULT)
38-
39-
IF (${RESULT} MATCHES ".*i386.*")
40-
MESSAGE(STATUS "Using ${GLU_LIBRARY} with architecture i386")
36+
## GLU
37+
FIND_LIBRARY(GLU_LIBRARY NAMES GLU PATHS /usr/X11/lib)
38+
IF (${GLU_LIBRARY} MATCHES ".*libGLU.dylib")
39+
EXECUTE_PROCESS(COMMAND file ${GLU_LIBRARY} OUTPUT_VARIABLE RESULT)
40+
41+
IF (${RESULT} MATCHES ".*i386.*")
42+
MESSAGE(STATUS "Using ${GLU_LIBRARY} with architecture i386")
43+
ELSE ()
44+
MESSAGE(FATAL_ERROR "GLU_LIBRARY ${MESA_LIBRARY} is NOT i386!")
45+
ENDIF ()
4146
ELSE ()
42-
MESSAGE(FATAL_ERROR "GLU_LIBRARY ${MESA_LIBRARY} is NOT i386!")
43-
ENDIF ()
44-
ELSE ()
45-
MESSAGE(FATAL_ERROR "GLU_LIBRARY was not found!")
46-
ENDIF()
47+
MESSAGE(FATAL_ERROR "GLU_LIBRARY was not found!")
48+
ENDIF()
4749

48-
SET (ADDITIONAL_LIBS ${MESA_LIBRARY} ${GLU_LIBRARY})
50+
SET (ADDITIONAL_LIBS ${MESA_LIBRARY} ${GLU_LIBRARY})
4951

50-
## FIND_LIBRARY does not work here
51-
FIND_FILE(GLUT_FILE "libglut.dylib" /usr/lib)
52+
## FIND_LIBRARY does not work here
53+
FIND_FILE(GLUT_FILE "libglut.dylib" /usr/lib)
5254

53-
IF (${GLUT_FILE} MATCHES ".*libglut.dylib")
54-
SET (GLUT_LIBRARY ${GLUT_FILE} CACHE STRING "libglut shows strange behaviour" FORCE)
55-
EXECUTE_PROCESS(COMMAND file ${GLUT_LIBRARY} OUTPUT_VARIABLE RESULT)
55+
IF (${GLUT_FILE} MATCHES ".*libglut.dylib")
56+
SET (GLUT_LIBRARY ${GLUT_FILE} CACHE STRING "libglut shows strange behaviour" FORCE)
57+
EXECUTE_PROCESS(COMMAND file ${GLUT_LIBRARY} OUTPUT_VARIABLE RESULT)
5658

57-
IF (${RESULT} MATCHES ".*i386.*")
58-
MESSAGE(STATUS "Using ${GLUT_LIBRARY} with architecture i386")
59-
60-
## The output is seen as one string
61-
EXECUTE_PROCESS(COMMAND "nm" ${GLUT_LIBRARY} OUTPUT_VARIABLE RESULT)
62-
STRING(REGEX MATCH ".*T([ ])+_glutSetOption.*" SYMBOL ${RESULT})
63-
IF (${SYMBOL} STREQUAL ${RESULT})
64-
MESSAGE(STATUS "SYMBOL _glutSetOption found and defined")
65-
ELSE()
66-
MESSAGE(FATAL_ERROR "SYMBOL _glutSetOption not found or not defined")
67-
ENDIF()
59+
IF (${RESULT} MATCHES ".*i386.*")
60+
MESSAGE(STATUS "Using ${GLUT_LIBRARY} with architecture i386")
61+
62+
## The output is seen as one string
63+
EXECUTE_PROCESS(COMMAND "nm" ${GLUT_LIBRARY} OUTPUT_VARIABLE RESULT)
64+
STRING(REGEX MATCH ".*T([ ])+_glutSetOption.*" SYMBOL ${RESULT})
65+
IF (${SYMBOL} STREQUAL ${RESULT})
66+
MESSAGE(STATUS "SYMBOL _glutSetOption found and defined")
67+
ELSE()
68+
MESSAGE(FATAL_ERROR "SYMBOL _glutSetOption not found or not defined")
69+
ENDIF()
70+
ELSE ()
71+
MESSAGE(FATAL_ERROR "GLUT_LIBRARY ${BLAS_LIBRARY} is NOT i386!")
72+
ENDIF ()
6873
ELSE ()
69-
MESSAGE(FATAL_ERROR "GLUT_LIBRARY ${BLAS_LIBRARY} is NOT i386!")
70-
ENDIF ()
71-
ELSE ()
72-
MESSAGE(FATAL_ERROR "GLUT_LIBRARY was not found! ${GLUT_LIBRARY}")
73-
ENDIF()
74+
MESSAGE(FATAL_ERROR "GLUT_LIBRARY was not found! ${GLUT_LIBRARY}")
75+
ENDIF()
7476

75-
## GLEW
76-
## FIND_LIBRARY does not work here
77-
FIND_FILE(GLEW_FILE "libGLEW.dylib" /opt/local/lib)
77+
## GLEW
78+
## FIND_LIBRARY does not work here
79+
FIND_FILE(GLEW_FILE "libGLEW.dylib" /opt/local/lib)
7880

79-
IF (${GLEW_FILE} MATCHES ".*libGLEW.dylib")
80-
SET (GLEW_LIBRARY ${GLEW_FILE} CACHE STRING "libGLEW shows strange behaviour" FORCE)
81-
EXECUTE_PROCESS(COMMAND file ${GLEW_LIBRARY} OUTPUT_VARIABLE RESULT)
82-
83-
IF (${RESULT} MATCHES ".*i386.*")
84-
MESSAGE(STATUS "Using ${GLEW_LIBRARY} with architecture i386")
81+
IF (${GLEW_FILE} MATCHES ".*libGLEW.dylib")
82+
SET (GLEW_LIBRARY ${GLEW_FILE} CACHE STRING "libGLEW shows strange behaviour" FORCE)
83+
EXECUTE_PROCESS(COMMAND file ${GLEW_LIBRARY} OUTPUT_VARIABLE RESULT)
84+
85+
IF (${RESULT} MATCHES ".*i386.*")
86+
MESSAGE(STATUS "Using ${GLEW_LIBRARY} with architecture i386")
87+
ELSE ()
88+
MESSAGE(FATAL_ERROR "GLEW_LIBRARY ${GLEW_LIBRARY} is NOT i386!")
89+
ENDIF ()
8590
ELSE ()
86-
MESSAGE(FATAL_ERROR "GLEW_LIBRARY ${GLEW_LIBRARY} is NOT i386!")
87-
ENDIF ()
88-
ELSE ()
89-
MESSAGE(FATAL_ERROR "GLEW_LIBRARY was not found!")
90-
ENDIF()
91+
MESSAGE(FATAL_ERROR "GLEW_LIBRARY was not found!")
92+
ENDIF()
93+
94+
ENDIF(H2D_WITH_GLUT)

hermes2d/CMakeLists.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,10 @@ endif(MSVC)
109109
#
110110

111111
if(H2D_WITH_GLUT)
112-
find_package(GLUT REQUIRED)
113-
find_package(GLEW REQUIRED)
112+
if(NOT APPLE) # See hermes/OSX.cmake for APPLE-specific search procedures.
113+
find_package(GLUT REQUIRED)
114+
find_package(GLEW REQUIRED)
115+
endif(NOT APPLE)
114116
else(H2D_WITH_GLUT)
115117
add_definitions(-DNOGLUT)
116118
endif(H2D_WITH_GLUT)

0 commit comments

Comments
 (0)