# 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()