Fix .so dependencies: reference -lGL and -lm; only reference -lGLU for demos (Resizer)
[freeglut] / CMakeLists.txt
index 2c80756..bf77354 100644 (file)
@@ -85,8 +85,9 @@ OPTION(BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON)
 OPTION(BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
 
 FIND_PACKAGE(OpenGL REQUIRED)
-
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${OPENGL_INCLUDE_DIR})
+LIST(APPEND LIBS ${OPENGL_gl_LIBRARY})
+LIST(APPEND LIBS m)
 
 IF(WIN32)
        MESSAGE(WARNING "Insecure CRT warnings hidden (might want to fix these)")
@@ -102,11 +103,16 @@ if(UNIX)
        ENDIF()
        IF(X11_xf86vmode_FOUND)
                SET(HAVE_X11_EXTENSIONS_XF86VMODE_H TRUE)
-               LIST(APPEND LIBS ${X11_xf86vmode_LIB})
+               # Work-around http://www.cmake.org/Bug/bug_view_page.php?bug_id=6976
+               IF(NOT "${X11_Xxf86vm_LIB}")
+                       SET(X11_Xxf86vm_LIB "Xxf86vm")
+               ENDIF()
+               LIST(APPEND LIBS ${X11_Xxf86vm_LIB})
        ENDIF()
 ENDIF()
 
 INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
 CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
 CHECK_INCLUDE_FILES(unistd.h   HAVE_UNISTD_H)
 CHECK_INCLUDE_FILES(sys/time.h         HAVE_SYS_TIME_H)
@@ -116,6 +122,7 @@ CHECK_INCLUDE_FILES(sys/ioctl.h HAVE_SYS_IOCTL_H)
 CHECK_INCLUDE_FILES(fcntl.h    HAVE_FCNTL_H)
 CHECK_INCLUDE_FILES(errno.h    HAVE_ERRNO_H)
 CHECK_INCLUDE_FILES(usbhid.h   HAVE_USBHID_H)
+CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
 
 # The generated config.h is placed in the project's build directory, just to
 # ensure that all CMake-generated files are kept away from the main source tree.
@@ -166,7 +173,9 @@ INSTALL(FILES ${FREEGLUT_HEADERS} DESTINATION include/GL)
 # Optionally build demos, on by default.
 option( FREEGLUT_BUILD_DEMOS "Build FreeGLUT demos." ON )
 
-SET(DEMO_LIBS ${OPENGL_LIBRARY} ${LIBS})
+SET(DEMO_LIBS ${OPENGL_glu_LIBRARY} ${LIBS})
+LIST(APPEND DEMO_LIBS m)
+
 MACRO(ADD_DEMO name)
        if( FREEGLUT_BUILD_DEMOS )
                ADD_EXECUTABLE(${name} ${ARGN})