IF(WIN32)
LIST(APPEND FREEGLUT_SRCS
+ src/Common/xparsegeometry_repl.c
+ src/Common/xparsegeometry_repl.h
src/mswin/freeglut_cursor_mswin.c
src/mswin/freeglut_display_mswin.c
src/mswin/freeglut_ext_mswin.c
OPTION(BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
FIND_PACKAGE(OpenGL REQUIRED)
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${OPENGL_INCLUDE_DIR})
+INCLUDE_DIRECTORIES(${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)")
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)
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)
+CHECK_FUNCTION_EXISTS(vfprintf HAVE_VFPRINTF)
+CHECK_FUNCTION_EXISTS(_doprnt HAVE_DOPRNT)
# 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.
# As a result, the build directory must to be added to the include path list.
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.in ${CMAKE_BINARY_DIR}/config.h)
-INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src)
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
# by default, at least on UNIX, we want to build both
IF(WIN32)
+ LIST(APPEND LIBS winmm)
IF(BUILD_SHARED_LIBS)
LIST(APPEND FREEGLUT_SRCS src/Common/freeglutdll.def freeglut.rc)
# XXX I assume that if we want both shared and static this one is appropriate
# on Xrandr or Xxf86vm)
SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME glut)
SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME glut)
- TARGET_LINK_LIBRARIES(freeglut ${LIBS})
ENDIF()
+TARGET_LINK_LIBRARIES(freeglut ${LIBS})
+TARGET_LINK_LIBRARIES(freeglut_static ${LIBS})
IF(BUILD_SHARED_LIBS)
INSTALL(TARGETS freeglut DESTINATION lib)
# 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})