Squashed 'third_party/eigen/' content from commit 61d72f6

Change-Id: Iccc90fa0b55ab44037f018046d2fcffd90d9d025
git-subtree-dir: third_party/eigen
git-subtree-split: 61d72f6383cfa842868c53e30e087b0258177257
diff --git a/cmake/EigenDetermineOSVersion.cmake b/cmake/EigenDetermineOSVersion.cmake
new file mode 100644
index 0000000..3c48d4c
--- /dev/null
+++ b/cmake/EigenDetermineOSVersion.cmake
@@ -0,0 +1,46 @@
+# The utility function DetermineOSVersion aims at providing an
+# improved version of the CMake variable ${CMAKE_SYSTEM} on Windows
+# machines.
+#
+# Usage:
+#  include(EigenDetermineOSVersion)
+#  DetermineOSVersion(OS_VERSION)
+#  message("OS: ${OS_VERSION}")
+
+# - A little helper variable which should not be directly called
+function(DetermineShortWindowsName WIN_VERSION win_num_version)
+   if    (${win_num_version} VERSION_EQUAL "6.1")
+       set(_version "win7")
+   elseif(${win_num_version} VERSION_EQUAL "6.0")
+       set(_version "winVista")
+   elseif(${win_num_version} VERSION_EQUAL "5.2")
+       set(_version "winXpProf")
+   elseif(${win_num_version} VERSION_EQUAL "5.1")
+       set(_version "winXp")
+   elseif(${win_num_version} VERSION_EQUAL "5.0")
+       set(_version "win2000Prof")
+   else()
+       set(_version "unknownWin")
+   endif()
+   set(${WIN_VERSION} ${_version} PARENT_SCOPE)
+endfunction()
+
+function(DetermineOSVersion OS_VERSION)
+  if (WIN32)
+    file (TO_NATIVE_PATH "$ENV{COMSPEC}" SHELL)
+    exec_program( ${SHELL} ARGS "/c" "ver" OUTPUT_VARIABLE ver_output)
+				
+      string(REGEX MATCHALL "[0-9]+"
+           ver_list "${ver_output}")
+      list(GET ver_list 0 _major)		   
+      list(GET ver_list 1 _minor)
+				
+    set(win_num_version ${_major}.${_minor})
+    DetermineShortWindowsName(win_version "${win_num_version}")
+    if(win_version)
+      set(${OS_VERSION} ${win_version} PARENT_SCOPE)
+    endif()
+  else()
+    set(${OS_VERSION} ${CMAKE_SYSTEM} PARENT_SCOPE)
+  endif()
+endfunction()