{-# LANGUAGE CPP #-} {- | Query basic properties of the current platform. All of these values are compile-time constants. If the special magic in the package configure step was unable to determine the correct value for something, it comes back as 'Nothing'. -} module System.Platform ( -- * Operating system OS_Type (..), os_type, -- * Compiler compiler_name, compiler_version, -- * Local values -- $local ) where #include "Platform.h" #ifndef HS_PNAME #define HS_PNAME Nothing #endif #ifndef HS_CNAME #define HS_CNAME Nothing #endif #ifndef HS_CVERS #define HS_CVERS Nothing #endif -- | A list of all possible operating system types. data OS_Type = -- | Some version of Microsoft Windows. MS_Windows | -- | Any sufficiently \"Unix-like\" system. Unix deriving (Eq, Show) {- | The type of operating system under which we are running. -} os_type :: OS_Type os_type = HS_PNAME {- | The name of the compiler (e.g., @\"GHC\"@), or \"Unknown\" if this could not be detected. -} compiler_name :: String compiler_name = HS_CNAME {- | The numerical version string for the compiler (e.g., @\"6.10.2\"@), or \"\" if this could not be detected. -} compiler_version :: String compiler_version = HS_CVERS {- $local Your local copy of this package was configured with the following settings: > os_type = HS_PNAME > compiler_name = HS_CNAME > compiler_version = HS_CVERS -}