|
|
@@ -1,164 +0,0 @@
|
|
|
-
|
|
|
-# define a set of string with may-be useful readable name
|
|
|
-# this file is meant to be included in a CMakeLists.txt
|
|
|
-# not as a standalone CMake script
|
|
|
-set(SPECIFIC_COMPILER_NAME "")
|
|
|
-set(SPECIFIC_SYSTEM_VERSION_NAME "")
|
|
|
-set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "")
|
|
|
-
|
|
|
-# In the WIN32 case try to guess a "readable system name"
|
|
|
-if(WIN32)
|
|
|
- set(SPECIFIC_SYSTEM_PREFERED_PACKAGE "NSIS")
|
|
|
- # information taken from
|
|
|
- # http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973/
|
|
|
- # Win9x series
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "4.0")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "Win95")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "4.0")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "4.10")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "Win98")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "4.10")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "4.90")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "WinME")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "4.90")
|
|
|
-
|
|
|
- # WinNTyyy series
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "3.0")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "WinNT351")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "3.0")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "4.1")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "WinNT4")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "4.1")
|
|
|
-
|
|
|
- # Win2000/XP series
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "5.0")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "Win2000")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "5.0")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "5.1")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "WinXP")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "5.1")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "5.2")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "Win2003")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "5.2")
|
|
|
-
|
|
|
- # WinVista/7 series
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "6.0")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "WinVISTA")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "6.0")
|
|
|
- if(CMAKE_SYSTEM_VERSION MATCHES "6.1")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "Win7")
|
|
|
- endif(CMAKE_SYSTEM_VERSION MATCHES "6.1")
|
|
|
-
|
|
|
- # Compilers
|
|
|
- # taken from http://predef.sourceforge.net/precomp.html#sec34
|
|
|
- if(MSVC)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-Unknown-${MSVC_VERSION}")
|
|
|
- if(MSVC_VERSION EQUAL 1200)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-6.0")
|
|
|
- endif(MSVC_VERSION EQUAL 1200)
|
|
|
- if(MSVC_VERSION EQUAL 1300)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-7.0")
|
|
|
- endif(MSVC_VERSION EQUAL 1300)
|
|
|
- if(MSVC_VERSION EQUAL 1310)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-7.1-2003") #Visual Studio 2003
|
|
|
- endif(MSVC_VERSION EQUAL 1310)
|
|
|
- if(MSVC_VERSION EQUAL 1400)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-8.0-2005") #Visual Studio 2005
|
|
|
- endif(MSVC_VERSION EQUAL 1400)
|
|
|
- if(MSVC_VERSION EQUAL 1500)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-9.0-2008") #Visual Studio 2008
|
|
|
- endif(MSVC_VERSION EQUAL 1500)
|
|
|
- if(MSVC_VERSION EQUAL 1600)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MSVC-10.0-2010") #Visual Studio 2010
|
|
|
- endif(MSVC_VERSION EQUAL 1600)
|
|
|
- endif(MSVC)
|
|
|
- if(MINGW)
|
|
|
- set(SPECIFIC_COMPILER_NAME "MinGW")
|
|
|
- endif(MINGW)
|
|
|
- if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "${SPECIFIC_SYSTEM_VERSION_NAME}-x86_64")
|
|
|
- endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
|
|
-endif(WIN32)
|
|
|
-
|
|
|
-# In the Linux case try to guess the distro name/type
|
|
|
-# using either lsb_release program or fallback
|
|
|
-# to the content of the /etc/issue file
|
|
|
-if(UNIX)
|
|
|
- if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "${CMAKE_SYSTEM_NAME}")
|
|
|
- set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "TGZ")
|
|
|
- find_program(LSB_RELEASE_EXECUTABLE lsb_release)
|
|
|
- if(LSB_RELEASE_EXECUTABLE)
|
|
|
- execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -i
|
|
|
- OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
|
|
|
- ERROR_QUIET
|
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
- string(REGEX MATCH "Distributor ID:(.*)" DISTRO_ID ${_TMP_LSB_RELEASE_OUTPUT})
|
|
|
- string(STRIP "${CMAKE_MATCH_1}" DISTRO_ID)
|
|
|
- # replace potential space with underscore
|
|
|
- string(REPLACE " " "_" DISTRO_ID "${DISTRO_ID}")
|
|
|
- execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -r
|
|
|
- OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
|
|
|
- ERROR_QUIET
|
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
- string(REGEX MATCH "Release:(.*)" DISTRO_RELEASE ${_TMP_LSB_RELEASE_OUTPUT})
|
|
|
- string(STRIP "${CMAKE_MATCH_1}" DISTRO_RELEASE)
|
|
|
- execute_process(COMMAND ${LSB_RELEASE_EXECUTABLE} -c
|
|
|
- OUTPUT_VARIABLE _TMP_LSB_RELEASE_OUTPUT
|
|
|
- ERROR_QUIET
|
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
- string(REGEX MATCH "Codename:(.*)" DISTRO_CODENAME ${_TMP_LSB_RELEASE_OUTPUT})
|
|
|
- string(STRIP "${CMAKE_MATCH_1}" DISTRO_CODENAME)
|
|
|
- elseif (EXISTS "/etc/issue")
|
|
|
- set(LINUX_NAME "")
|
|
|
- file(READ "/etc/issue" LINUX_ISSUE)
|
|
|
- # Fedora case
|
|
|
- if(LINUX_ISSUE MATCHES "Fedora")
|
|
|
- string(REGEX MATCH "release ([0-9]+)" FEDORA "${LINUX_ISSUE}")
|
|
|
- set(DISTRO_ID "Fedora")
|
|
|
- set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
|
|
|
- # FIXME can we find that in /etc/issue
|
|
|
- set(DISTRO_CODENAME "")
|
|
|
- endif(LINUX_ISSUE MATCHES "Fedora")
|
|
|
- # Ubuntu case
|
|
|
- if(LINUX_ISSUE MATCHES "Ubuntu")
|
|
|
- string(REGEX MATCH "buntu ([0-9]+\\.[0-9]+)" UBUNTU "${LINUX_ISSUE}")
|
|
|
- set(DISTRO_ID "Ubuntu")
|
|
|
- set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
|
|
|
- # FIXME can we find that in /etc/issue
|
|
|
- set(DISTRO_CODENAME "")
|
|
|
- endif(LINUX_ISSUE MATCHES "Ubuntu")
|
|
|
- # Debian case
|
|
|
- if(LINUX_ISSUE MATCHES "Debian")
|
|
|
- string(REGEX MATCH "Debian .*ux ([0-9]+\\.[0-9]+)"
|
|
|
- DEBIAN "${LINUX_ISSUE}")
|
|
|
- set(DISTRO_ID "Debian")
|
|
|
- set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
|
|
|
- set(DISTRO_CODENAME "")
|
|
|
- endif(LINUX_ISSUE MATCHES "Debian")
|
|
|
- # Open SuSE case
|
|
|
- if(LINUX_ISSUE MATCHES "SUSE")
|
|
|
- string(REGEX MATCH "SUSE ([0-9]+\\.[0-9]+)" SUSE "${LINUX_ISSUE}")
|
|
|
- set(DISTRO_ID "SUSE")
|
|
|
- set(DISTRO_RELEASE "${CMAKE_MATCH_1}")
|
|
|
- set(DISTRO_CODENAME "")
|
|
|
- endif(LINUX_ISSUE MATCHES "SUSE")
|
|
|
- # Mandriva case
|
|
|
- # TODO
|
|
|
- endif(LSB_RELEASE_EXECUTABLE)
|
|
|
- # Now mangle some names
|
|
|
- set(LINUX_NAME "${DISTRO_ID}_${DISTRO_RELEASE}")
|
|
|
- if(DISTRO_ID MATCHES "Fedora|Mandriva|SUSE|OpenSUSE")
|
|
|
- set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "RPM")
|
|
|
- endif(DISTRO_ID MATCHES "Fedora|Mandriva|SUSE|OpenSUSE")
|
|
|
- if(DISTRO_ID MATCHES "Debian|Ubuntu")
|
|
|
- set(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR "DEB")
|
|
|
- endif(DISTRO_ID MATCHES "Debian|Ubuntu")
|
|
|
- if(LINUX_NAME)
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME "${CMAKE_SYSTEM_NAME}-${LINUX_NAME}")
|
|
|
- endif(LINUX_NAME)
|
|
|
- endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
- set(SPECIFIC_SYSTEM_VERSION_NAME
|
|
|
- "${SPECIFIC_SYSTEM_VERSION_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
|
|
- set(SPECIFIC_COMPILER_NAME "")
|
|
|
-endif(UNIX)
|