X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=CMakeLists.txt;h=58b1b46c7c1615706bd94c7803d9ab52d61f0bce;hb=c5fa24956f3db8df3f658b5dc64353dede2e10ea;hp=8da214dd18e523c7744594e076f7ea89f4c357e4;hpb=570dabfa0925fbaa32a4494239bfbb16eb64f87f;p=freeglut diff --git a/CMakeLists.txt b/CMakeLists.txt index 8da214d..58b1b46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,20 +53,30 @@ ENDIF() # OpenGL ES support OPTION(FREEGLUT_GLES "Use OpenGL ES (requires EGL)" OFF) +# option to build either as "glut" (ON) or "freeglut" (OFF) +IF(WIN32) + OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" OFF) +ELSE() + OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" ON) +ENDIF() + IF(NOT WIN32) # Wayland support OPTION(FREEGLUT_WAYLAND "Use Wayland (no X11)" OFF) - # option to build either as "glut" (ON) or "freeglut" (OFF) - OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" ON) ENDIF() SET(FREEGLUT_HEADERS include/GL/freeglut.h + include/GL/freeglut_ucall.h include/GL/freeglut_ext.h include/GL/freeglut_std.h - include/GL/glut.h ) +IF(FREEGLUT_REPLACE_GLUT) + LIST(APPEND FREEGLUT_SRCS + include/GL/glut.h + ) +ENDIF() SET(FREEGLUT_SRCS ${FREEGLUT_HEADERS} src/fg_callbacks.c @@ -81,6 +91,7 @@ SET(FREEGLUT_SRCS src/fg_init.c src/fg_init.h src/fg_internal.h + src/fg_callback_macros.h src/fg_input_devices.c src/fg_joystick.c src/fg_main.c @@ -389,13 +400,22 @@ IF(FREEGLUT_BUILD_STATIC_LIBS) ENDIF() +SET(LIBNAME freeglut) IF(WIN32) + IF(FREEGLUT_REPLACE_GLUT) + SET(LIBNAME glut) + ENDIF() + LIST(APPEND LIBS winmm) IF(FREEGLUT_BUILD_SHARED_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut PRIVATE FREEGLUT_EXPORTS) + SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME ${LIBNAME}) ENDIF() IF(FREEGLUT_BUILD_STATIC_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut_static PUBLIC FREEGLUT_STATIC) + IF(FREEGLUT_REPLACE_GLUT) + SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME}) + ENDIF() # need to set machine:x64 for linker, at least for VC10, and # doesn't hurt for older compilers: # http://public.kitware.com/Bug/view.php?id=11240#c22768 @@ -414,20 +434,18 @@ ELSE() # or special-cased FreeGLUT long ago (e.g. .so.4 on OpenBSD), so # the lack of support for current:revision:age in CMake should # not be a problem. - # - the output library should be named glut so it'll be linkable with -lglut - # (unless FREEGLUT_REPLACE_GLUT is false). + # - the output library should be named glut so it'll be linkable with -lglut + # (unless FREEGLUT_REPLACE_GLUT is false). # - the shared library should link to the dependency libraries so that the user # won't have to link them explicitly (they shouldn't have to know that we depend # on Xrandr or Xxf86vm) IF(FREEGLUT_GLES) - SET(LIBNAME freeglut-gles) + SET(LIBNAME freeglut-gles) ELSE() - IF(FREEGLUT_REPLACE_GLUT) - SET(LIBNAME glut) - ELSE() - SET(LIBNAME freeglut) - ENDIF() - ENDIF() + IF(FREEGLUT_REPLACE_GLUT) + SET(LIBNAME glut) + ENDIF() + ENDIF() IF(FREEGLUT_BUILD_SHARED_LIBS) SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION ${SO_MAJOR}.${SO_MINOR}.${SO_REV} SOVERSION ${SO_MAJOR} OUTPUT_NAME ${LIBNAME}) @@ -466,7 +484,7 @@ IF(FREEGLUT_BUILD_SHARED_LIBS) IF(INSTALL_PDB) INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/freeglut${CMAKE_DEBUG_POSTFIX}.pdb DESTINATION bin - CONFIGURATIONS Debug + CONFIGURATIONS Debug COMPONENT Devel) ENDIF() ENDIF() @@ -477,12 +495,6 @@ IF(FREEGLUT_BUILD_STATIC_LIBS) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} INCLUDES DESTINATION include ) - IF(INSTALL_PDB) - INSTALL(FILES ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/Debug/freeglut_static${CMAKE_DEBUG_POSTFIX}.pdb - DESTINATION lib - CONFIGURATIONS Debug - COMPONENT Devel) - ENDIF() ENDIF() INSTALL(FILES ${FREEGLUT_HEADERS} DESTINATION include/GL COMPONENT Devel) @@ -539,6 +551,7 @@ IF(UNIX) ENDIF() ADD_DEMO(subwin progs/demos/subwin/subwin.c) ADD_DEMO(timer progs/demos/timer/timer.c) +ADD_DEMO(timer_callback progs/demos/timer_callback/timer.c) @@ -569,12 +582,13 @@ ELSE() ENDIF() # Client applications need to define FreeGLUT GLES version to # bootstrap headers inclusion in freeglut_std.h: -SET(PC_LIBNAME "glut") -SET(PC_FILENAME "freeglut.pc") +SET(PC_LIBNAME ${LIBNAME}) +SET(PC_FILENAME "${LIBNAME}.pc") IF(FREEGLUT_GLES) SET(PC_CFLAGS "-DFREEGLUT_GLES") - SET(PC_LIBNAME "freeglut-gles") - SET(PC_FILENAME "freeglut-gles.pc") +ENDIF() +IF(FREEGLUT_BUILD_STATIC_LIBS) + LIST(APPEND PC_CFLAGS -DFREEGLUT_STATIC) ENDIF() CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/freeglut.pc.in ${CMAKE_BINARY_DIR}/freeglut.pc @ONLY) INSTALL(FILES ${CMAKE_BINARY_DIR}/freeglut.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ RENAME ${PC_FILENAME} COMPONENT Devel)