14#include <sys/sysctl.h>
16#include <sys/utsname.h>
23 ::memset(&un, 0,
sizeof(utsname));
25 return llvm::VersionTuple();
27 unsigned major, minor;
28 if (2 == sscanf(un.release,
"%u.%u", &major, &minor))
29 return llvm::VersionTuple(major, minor);
30 return llvm::VersionTuple();
34 int mib[2] = {CTL_KERN, KERN_OSREV};
37 size_t osrev_len =
sizeof(osrev);
39 if (::sysctl(mib, 2, &osrev, &osrev_len, NULL, 0) == 0)
40 return llvm::formatv(
"{0,8:8}", osrev).str();
47 return g_program_filespec;
static std::optional< std::string > GetOSBuildString()
static llvm::VersionTuple GetOSVersion()
static FileSpec GetProgramFileSpec()
A class that represents a running process on the host machine.