+
+# for multiarch LIBDIR support (requires cmake>=2.8.8)
+INCLUDE(GNUInstallDirs)
+
+# NOTE: On Windows and Cygwin, the dll's are placed in the
+# CMAKE_RUNTIME_OUTPUT_DIRECTORY, while their corresponding import
+# libraries end up in CMAKE_ARCHIVE_OUTPUT_DIRECTORY. On other
+# platforms, such as Linux, the shared libraries are put in
+# CMAKE_ARCHIVE_OUTPUT_DIRECTORY instead.
+# 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
+# TODO: Update these for each release!
+set(VERSION_MAJOR 3)
+set(VERSION_MINOR 0)
+set(VERSION_PATCH 0)
+
+# Update fg_version.h to match the versions number here in cmake
+CONFIGURE_FILE(src/fg_version.h.in src/fg_version.h)
+
+# shared lib version numbers (change before release)
+set(SO_MAJOR 3) # increment on backwards incompatible API/ABI changes
+set(SO_MINOR 10) # increment on backwards compatible or internal changes
+set(SO_REV 0) # if nothing else changed increment this
+
+# FREEGLUT_BUILD_SHARED_LIBS is already a standard CMake variable, but we need to
+# re-declare it here so it will show up in the GUI.
+# by default, we want to build both
+OPTION(FREEGLUT_BUILD_SHARED_LIBS "Build FreeGLUT shared library." ON)
+OPTION(FREEGLUT_BUILD_STATIC_LIBS "Build FreeGLUT static library." ON)
+
+# option for whether warnings and errors should be printed
+OPTION(FREEGLUT_PRINT_ERRORS "Lib prints errors to stderr" ON)
+#MARK_AS_ADVANCED(FREEGLUT_PRINT_ERRORS)
+OPTION(FREEGLUT_PRINT_WARNINGS "Lib prints warnings to stderr" ON)
+#MARK_AS_ADVANCED(FREEGLUT_PRINT_WARNINGS)
+
+# 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_GLES "Use OpenGL ES (requires EGL)" OFF)
+
+IF(NOT WIN32)
+ # Wayland support
+ OPTION(FREEGLUT_WAYLAND "Use Wayland (no X11)" OFF)
+ # option to build either as "glut" (ON) or "freeglut" (OFF)
+ OPTION(FREEGLUT_REPLACE_GLUT "Be a replacement for GLUT" ON)
+ENDIF()
+