X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=CMakeLists.txt;h=37d61aa2527ef98b44c7c81d60189b57bd28c02c;hb=632fb45403e238a8d1da93af00a489ad0df4e6f0;hp=fc22ed64058cbd3f27aa94e0b4ff01b0efe1cda6;hpb=e17e8fd83ecaafef740fcfdc9347f7ac488cd304;p=freeglut diff --git a/CMakeLists.txt b/CMakeLists.txt index fc22ed6..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 @@ -357,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) @@ -380,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() @@ -396,7 +430,9 @@ 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) IF(UNIX) ADD_DEMO(spaceball progs/demos/spaceball/spaceball.c