if (UNIX) if (APPLE) set(CMAKE_OS_NAME "OSX" CACHE STRING "Operating system name" FORCE) else (APPLE) ## Check for Debian GNU/Linux ________________ find_file(DEBIAN_FOUND debian_version debconf.conf PATHS /etc ) if (DEBIAN_FOUND) set(CMAKE_OS_NAME "Debian" CACHE STRING "Operating system name" FORCE) endif (DEBIAN_FOUND) ## Check for Fedora _________________________ find_file(FEDORA_FOUND fedora-release PATHS /etc ) if (FEDORA_FOUND) set(CMAKE_OS_NAME "Fedora" CACHE STRING "Operating system name" FORCE) endif (FEDORA_FOUND) ## Check for RedHat _________________________ find_file(REDHAT_FOUND redhat-release inittab.RH PATHS /etc ) if (REDHAT_FOUND) set(CMAKE_OS_NAME "RedHat" CACHE STRING "Operating system name" FORCE) endif (REDHAT_FOUND) ## Extra check for Ubuntu ____________________ if (DEBIAN_FOUND) ## At its core Ubuntu is a Debian system, with ## a slightly altered configuration; hence from ## a first superficial inspection a system will ## be considered as Debian, which signifies an ## extra check is required. find_file(UBUNTU_EXTRA legal issue PATHS /etc ) if (UBUNTU_EXTRA) ## Scan contents of file file(STRINGS ${UBUNTU_EXTRA} UBUNTU_FOUND REGEX Ubuntu ) ## Check result of string search if (UBUNTU_FOUND) set(CMAKE_OS_NAME "Ubuntu" CACHE STRING "Operating system name" FORCE) set(DEBIAN_FOUND FALSE) endif (UBUNTU_FOUND) endif (UBUNTU_EXTRA) endif (DEBIAN_FOUND) endif (APPLE) endif (UNIX)