- # on UNIX we need to make sure:
- # - all shared libraries must have a soname/version, see :
- # http://sourceware.org/autobook/autobook/autobook_91.html#SEC91
- # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
- # Current: -version-info 12:0:9 -> 3.9.0
- # - the output library should be named glut so it'll be linkable with -lglut
- # - the shared library should link to the dependency libraries so that the user
- # won't have to link them explicitly (they shouldn't have to know that we depend
- # on Xrandr or Xxf86vm)
- SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION 3.9.0 SOVERSION 3 OUTPUT_NAME glut)
- SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME glut)
- IF(ANDROID)
- # Not in CMake toolchain file, because the toolchain
- # file is called several times and generally doesn't
- # seem to be meant for it:
- # '-mandroid' is not mandatory but doesn't hurt
- # '-O0 -gstabs+' helps the currently buggy GDB port
- # '-DANDROID' is the Android build system convention
- # Too late to manipulate ENV: SET(ENV{CFLAGS} "$ENV{CFLAGS} -mandroid")
- # Not using _INIT variables, they seem to be used internally only
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mandroid")
- SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -gstabs+")
- ADD_DEFINITIONS(-DANDROID)
- ENDIF()
+ # on UNIX we need to make sure:
+ # - all shared libraries must have a soname/version, see :
+ # http://sourceware.org/autobook/autobook/autobook_91.html#SEC91
+ # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+ # Current: -version-info 12:0:9 -> 3.9.0
+ # Note: most platforms now prefer the latter major.minor.revision form
+ # (e.g. FreeBSD, cf. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8765),
+ # or special-cased FreeGLUT long ago (e.g. .so.4 on OpenBSD), so
+ # the lack of support for current:revision:age in CMake should
+ # not be a problem.
+ # - the output library should be named glut so it'll be linkable with -lglut
+ # (unless FREEGLUT_REPLACE_GLUT is false).
+ # - the shared library should link to the dependency libraries so that the user
+ # won't have to link them explicitly (they shouldn't have to know that we depend
+ # on Xrandr or Xxf86vm)
+ IF(FREEGLUT_GLES)
+ SET(LIBNAME freeglut-gles)
+ ELSE()
+ IF(FREEGLUT_REPLACE_GLUT)
+ SET(LIBNAME glut)
+ ENDIF()
+ ENDIF()
+
+ IF(FREEGLUT_BUILD_SHARED_LIBS)
+ SET_TARGET_PROPERTIES(freeglut PROPERTIES VERSION ${SO_MAJOR}.${SO_MINOR}.${SO_REV} SOVERSION ${SO_MAJOR} OUTPUT_NAME ${LIBNAME})
+ ENDIF()
+ IF(FREEGLUT_BUILD_STATIC_LIBS)
+ SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME})
+ ENDIF()
+ IF(ANDROID)
+ # Not in CMake toolchain file, because the toolchain
+ # file is called several times and generally doesn't
+ # seem to be meant for modifying CFLAGS:
+ # '-mandroid' is not mandatory but doesn't hurt
+ # '-O0 -gstabs+' helps the currently buggy GDB port
+ # Too late to manipulate ENV: SET(ENV{CFLAGS} "$ENV{CFLAGS} -mandroid")
+ # Not using _INIT variables, they seem to be used internally only
+ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mandroid")
+ ENDIF()
+ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -gstabs+")
+ ENDIF()