X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=CMakeLists.txt;h=c42d14d39e130b70cb581f61fb3fe430be627d73;hb=e1d7e97b8837fd6ae3333b5d2b9a5fade4c84d08;hp=12cc9ff488ab55e410256f4b4c766ad2a95b95a9;hpb=e0993afac48b6041646a7d8c8e3124275e2853f7;p=freeglut diff --git a/CMakeLists.txt b/CMakeLists.txt index 12cc9ff..c42d14d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,46 +1,86 @@ 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_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) -#ELSE() -# LIST(APPEND FREEGLUT_SRCS src/freeglut_x11.c) -#ENDIF() +IF(WIN32) + 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/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 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 +115,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,13 +130,17 @@ 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)