X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=CMakeLists.txt;h=37d61aa2527ef98b44c7c81d60189b57bd28c02c;hb=0806929651a691f0aeb9886f8ea1b1901ec3093e;hp=f2e2c1e31959b3f78b9a78a5456bd8be10564061;hpb=bd6ea30351da7505f3ffd923402774c51c1fdb3f;p=freeglut diff --git a/CMakeLists.txt b/CMakeLists.txt index f2e2c1e..37d61aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) PROJECT(freeglut) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) # NOTE: On Windows and Cygwin, the dll's are placed in the # CMAKE_RUNTIME_OUTPUT_DIRECTORY, while their corresponding import @@ -9,6 +9,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) # Static libraries end up in CMAKE_ARCHIVE_OUTPUT_DIRECTORY on all # platforms. SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) +SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) # setup version numbers @@ -24,11 +25,20 @@ set(VERSION_PATCH 0) OPTION(BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON) OPTION(BUILD_STATIC_LIBS "Build FreeGLUT static library." ON) +# option to also copy .pdb files to install directory when executing +# INSTALL target +IF(MSVC) + OPTION(INSTALL_PDB "Also install .pdb files" ON) +ELSE() + SET(INSTALL_PDB OFF) +ENDIF() + # OpenGL ES support OPTION(FREEGLUT_GLES1 "Use OpenGL ES 1.x (requires EGL)" OFF) OPTION(FREEGLUT_GLES2 "Use OpenGL ES 2.x (requires EGL) (overrides BUILD_GLES1)" OFF) + SET(FREEGLUT_HEADERS include/GL/freeglut.h include/GL/freeglut_ext.h @@ -197,6 +207,10 @@ ENDIF() IF(WIN32) # hide insecure CRT warnings, common practice ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) + IF(MSVC) + SET( CMAKE_DEBUG_POSTFIX "d" ) + ENDIF(MSVC) + ENDIF() IF(CMAKE_COMPILER_IS_GNUCC) @@ -224,6 +238,7 @@ IF(UNIX AND NOT ANDROID) LIST(APPEND LIBS ${X11_Xxf86vm_LIB}) ENDIF() IF(X11_Xinput_FOUND) + # Needed for multi-touch: CHECK_INCLUDE_FILES("${X11_Xinput_INCLUDE_PATH}/X11/extensions/XInput2.h" HAVE_X11_EXTENSIONS_XINPUT2_H) LIST(APPEND LIBS ${X11_Xinput_LIB}) ENDIF() @@ -352,10 +367,28 @@ IF(BUILD_STATIC_LIBS) ENDIF() IF(BUILD_SHARED_LIBS) - INSTALL(TARGETS freeglut DESTINATION lib) + INSTALL(TARGETS freeglut + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + IF(INSTALL_PDB) + INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Debug/freeglut${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION bin + CONFIGURATIONS Debug) + ENDIF() ENDIF() IF(BUILD_STATIC_LIBS) - INSTALL(TARGETS freeglut_static DESTINATION lib) + INSTALL(TARGETS freeglut_static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + IF(INSTALL_PDB) + INSTALL(FILES ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/Debug/freeglut_static${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION lib + CONFIGURATIONS Debug) + ENDIF() ENDIF() INSTALL(FILES ${FREEGLUT_HEADERS} DESTINATION include/GL) @@ -375,11 +408,17 @@ MACRO(ADD_DEMO name) IF(BUILD_SHARED_LIBS) ADD_EXECUTABLE(${name} ${ARGN}) TARGET_LINK_LIBRARIES(${name} ${DEMO_LIBS} freeglut) + IF(WIN32 AND MSVC) + SET_TARGET_PROPERTIES(${name} PROPERTIES DEBUG_POSTFIX d) + ENDIF() ENDIF() IF(BUILD_STATIC_LIBS) ADD_EXECUTABLE(${name}_static ${ARGN}) TARGET_LINK_LIBRARIES(${name}_static ${DEMO_LIBS} freeglut_static) SET_TARGET_PROPERTIES(${name}_static PROPERTIES COMPILE_FLAGS -DFREEGLUT_STATIC) + IF(WIN32 AND MSVC) + SET_TARGET_PROPERTIES(${name}_static PROPERTIES DEBUG_POSTFIX d) + ENDIF() ENDIF() ENDIF() ENDMACRO() @@ -391,11 +430,15 @@ ADD_DEMO(Lorenz progs/demos/Lorenz/lorenz.c) ADD_DEMO(One progs/demos/One/one.c) ADD_DEMO(Resizer progs/demos/Resizer/Resizer.cpp) ADD_DEMO(multi-touch progs/demos/multi-touch/multi-touch.c) -ADD_DEMO(shapes progs/demos/shapes/shapes.c) +ADD_DEMO(shapes progs/demos/shapes/shapes.c + progs/demos/shapes/glmatrix.h + progs/demos/shapes/glmatrix.c) ADD_DEMO(smooth_opengl3 progs/demos/smooth_opengl3/smooth_opengl3.c) -ADD_DEMO(spaceball progs/demos/spaceball/spaceball.c - progs/demos/spaceball/vmath.c - progs/demos/spaceball/vmath.h) +IF(UNIX) + ADD_DEMO(spaceball progs/demos/spaceball/spaceball.c + progs/demos/spaceball/vmath.c + progs/demos/spaceball/vmath.h) +ENDIF() ADD_DEMO(subwin progs/demos/subwin/subwin.c) ADD_DEMO(timer progs/demos/timer/timer.c)