# Android port requires adding a version of these compatible with
# OpenGL ES (TODO):
IF(NOT ANDROID)
- LIST(APPEND FREEGLUT_SRCS
- src/fg_font.c
- src/fg_geometry.c
- src/fg_menu.c
- src/fg_teapot.c
-)
+ LIST(APPEND FREEGLUT_SRCS
+ src/fg_font.c
+ src/fg_geometry.c
+ src/fg_menu.c
+ src/fg_teapot.c
+ )
ENDIF()
-IF(WIN32) # TODO: is this true for 64 bit as well? Chaneg to WINDOWS?
+IF(WIN32)
LIST(APPEND FREEGLUT_SRCS
src/mswin/fg_cursor_mswin.c
src/mswin/fg_display_mswin.c
src/mswin/fg_state_mswin.c
src/mswin/fg_structure_mswin.c
src/mswin/fg_window_mswin.c
-)
+ freeglut.rc
+ )
+ IF (NOT CMAKE_CL_64)
+ # .def file only for 32bit Windows builds
+ LIST(APPEND FREEGLUT_SRCS
+ src/freeglutdll.def
+ )
+ ENDIF()
+
ELSEIF(ANDROID)
LIST(APPEND FREEGLUT_SRCS
src/egl/fg_internal_egl.h
src/android/fg_window_android.c
src/android/opengles_stubs.c
src/android/fg_internal_android.h
-)
+ )
ELSE()
LIST(APPEND FREEGLUT_SRCS
src/x11/fg_cursor_x11.c
src/x11/fg_structure_x11.c
src/x11/fg_window_x11.c
src/x11/fg_xinput_x11.c
-)
-
-
+ )
ENDIF()
# Neatly organize all of the output files in the build directory
IF(WIN32)
LIST(APPEND LIBS winmm)
IF(BUILD_SHARED_LIBS)
- LIST(APPEND FREEGLUT_SRCS src/Common/freeglutdll.def freeglut.rc)
- # XXX I assume that if we want both shared and static this one is appropriate
- ADD_DEFINITIONS(-DFREEGLUT_EXPORTS)
- ELSE()
- ADD_DEFINITIONS(-DFREEGLUT_STATIC)
+ SET_TARGET_PROPERTIES(freeglut PROPERTIES COMPILE_FLAGS -DFREEGLUT_EXPORTS)
+ ENDIF()
+ IF(BUILD_STATIC_LIBS)
+ SET_TARGET_PROPERTIES(freeglut_static PROPERTIES COMPILE_FLAGS -DFREEGLUT_STATIC)
+ # 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
+ IF (CMAKE_CL_64)
+ SET_TARGET_PROPERTIES(freeglut_static PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
+ ENDIF()
ENDIF()
ELSE()
# on UNIX we need to make sure:
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)
ENDIF()
ENDIF()
ENDMACRO()