X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=CMakeLists.txt;h=95835692da8419c5b647eec532337dbf5fbaf13f;hb=12dda1f9b43a88edf9146be4b2b72a4d36111e21;hp=85795a090b3826495558c279017f5293c10ab95e;hpb=d6b0dce3cef0b00fbc2f7f1a4324e4f8755f5a3d;p=freeglut diff --git a/CMakeLists.txt b/CMakeLists.txt index 85795a0..9583569 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,38 +1,79 @@ PROJECT(freeglut) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +SET(FREEGLUT_HEADERS + include/GL/freeglut.h + include/GL/freeglut_ext.h + include/GL/freeglut_std.h + include/GL/glut.h +) SET(FREEGLUT_SRCS - src/freeglut_callbacks.c - src/freeglut_cursor.c - src/freeglut_display.c - src/freeglut_ext.c - src/freeglut_font.c - src/freeglut_font_data.c - src/freeglut_gamemode.c - src/freeglut_geometry.c - src/freeglut_glutfont_definitions.c - src/freeglut_init.c - src/freeglut_input_devices.c - src/freeglut_joystick.c - src/freeglut_main.c - src/freeglut_menu.c - src/freeglut_misc.c - src/freeglut_overlay.c - src/freeglut_spaceball.c - src/freeglut_state.c - src/freeglut_stroke_mono_roman.c - src/freeglut_stroke_roman.c - src/freeglut_structure.c - src/freeglut_teapot.c - src/freeglut_videoresize.c - src/freeglut_window.c - src/freeglut_xinput.c + ${FREEGLUT_HEADERS} + src/Common/freeglut_callbacks.c + src/Common/freeglut_cursor.c + src/Common/freeglut_display.c + src/Common/freeglut_ext.c + src/Common/freeglut_font.c + src/Common/freeglut_font_data.c + src/Common/freeglut_gamemode.c + src/Common/freeglut_geometry.c + src/Common/freeglut_glutfont_definitions.c + src/Common/freeglut_init.c + src/Common/freeglut_internal.h + src/Common/freeglut_input_devices.c + src/Common/freeglut_joystick.c + src/Common/freeglut_main.c + src/Common/freeglut_menu.c + src/Common/freeglut_misc.c + src/Common/freeglut_overlay.c + src/Common/freeglut_spaceball.c + src/Common/freeglut_state.c + src/Common/freeglut_stroke_mono_roman.c + src/Common/freeglut_stroke_roman.c + src/Common/freeglut_structure.c + src/Common/freeglut_teapot.c + src/Common/freeglut_videoresize.c + src/Common/freeglut_window.c ) IF(WIN32) - LIST(APPEND FREEGLUT_SRCS src/freeglut_windows.c) + LIST(APPEND FREEGLUT_SRCS + src/mswin/freeglut_cursor_mswin.c + src/mswin/freeglut_display_mswin.c + src/mswin/freeglut_ext_mswin.c + src/mswin/freeglut_gamemode_mswin.c + src/mswin/freeglut_init_mswin.c + src/mswin/freeglut_internal_mswin.h + src/mswin/freeglut_input_devices_mswin.c + src/mswin/freeglut_joystick_mswin.c + src/mswin/freeglut_main_mswin.c + src/mswin/freeglut_menu_mswin.c + src/mswin/freeglut_spaceball_mswin.c + src/mswin/freeglut_state_mswin.c + src/mswin/freeglut_structure_mswin.c + src/mswin/freeglut_window_mswin.c +) ELSE() - LIST(APPEND FREEGLUT_SRCS src/freeglut_x11.c) + LIST(APPEND FREEGLUT_SRCS + src/x11/freeglut_cursor_x11.c + src/x11/freeglut_display_x11.c + src/x11/freeglut_ext_x11.c + src/x11/freeglut_gamemode_x11.c + src/x11/freeglut_glutfont_definitions_x11.c + src/x11/freeglut_init_x11.c + src/x11/freeglut_internal_x11.h + src/x11/freeglut_input_devices_x11.c + src/x11/freeglut_joystick_x11.c + src/x11/freeglut_main_x11.c + src/x11/freeglut_menu_x11.c + src/x11/freeglut_spaceball_x11.c + src/x11/freeglut_state_x11.c + src/x11/freeglut_structure_x11.c + src/x11/freeglut_window_x11.c + src/x11/freeglut_xinput_x11.c +) + + ENDIF() # Neatly organize all of the output files in the build directory @@ -40,7 +81,7 @@ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) # BUILD_SHARED_LIBS is already a standard CMake variable, but we need to -# re-delcare it here so it will show up in the GUI. +# re-declare it here so it will show up in the GUI. OPTION(BUILD_SHARED_LIBS "Build FreeGLUT as a shared library." ON) FIND_PACKAGE(OpenGL REQUIRED) @@ -75,7 +116,7 @@ ADD_DEFINITIONS(-DHAVE_CONFIG_H) IF(BUILD_SHARED_LIBS) IF(WIN32) - LIST(APPEND FREEGLUT_SRCS src/freeglutdll.def freeglut.rc) + LIST(APPEND FREEGLUT_SRCS src/Common/freeglutdll.def freeglut.rc) ENDIF() ADD_DEFINITIONS(-DFREEGLUT_EXPORTS) ELSE() @@ -90,24 +131,30 @@ IF(NOT BUILD_SHARED_LIBS) ENDIF() INSTALL(TARGETS freeglut DESTINATION lib) -INSTALL(DIRECTORY "${CMAKE_SOURCE_DIR}/include/GL" DESTINATION include - FILES_MATCHING PATTERN "*.h") +INSTALL(FILES ${FREEGLUT_HEADERS} DESTINATION include/GL) + +# Optionally build demos, on by default. +option( FREEGLUT_BUILD_DEMOS "Build FreeGLUT demos." ON ) MACRO(ADD_DEMO name) - ADD_EXECUTABLE(${name} ${ARGN}) - TARGET_LINK_LIBRARIES(${name} freeglut) - INSTALL(TARGETS ${name} DESTINATION bin) + if( FREEGLUT_BUILD_DEMOS ) + ADD_EXECUTABLE(${name} ${ARGN}) + TARGET_LINK_LIBRARIES(${name} freeglut) + INSTALL(TARGETS ${name} DESTINATION bin) + endif() ENDMACRO() ADD_DEMO(CallbackMaker progs/demos/CallbackMaker/CallbackMaker.c) -ADD_DEMO(Fractals progs/demos/Fractals/Fractals.c) -ADD_DEMO(Fractals_random progs/demos/Fractals_random/Fractals_random.c) -ADD_DEMO(Lorenz progs/demos/Lorenz/Lorenz.c) -ADD_DEMO(One progs/demos/One/One.c) -ADD_DEMO(Resizer progs/demos/Resizer/Resizer.c) +ADD_DEMO(Fractals progs/demos/Fractals/fractals.c) +ADD_DEMO(Fractals_random progs/demos/Fractals_random/fractals_random.c) +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(shapes progs/demos/shapes/shapes.c) ADD_DEMO(smooth_opengl3 progs/demos/smooth_opengl3/smooth_opengl3.c) -ADD_DEMO(spaceball progs/demos/spaceball/spaceball.c) +ADD_DEMO(spaceball progs/demos/spaceball/spaceball.c + progs/demos/spaceball/vmath.c + progs/demos/spaceball/vmath.h) ADD_DEMO(subwin progs/demos/subwin/subwin.c)