def parse_memory_usage(self): """ Parse memory usage information. """ st = sh.grep(sh.sysctl('-a'), 'mem') vm = sh.vm_stat() pattern = re.compile(':[\s]+') st_lines = st.split('\n') st_rows = dict() for line in st_lines: t = line.strip() if t: row = pattern.split(t) st_rows[row[0]] = int(row[1]) vm_lines = vm.split('\n') vm_rows = dict() for i, line in enumerate(vm_lines): # ignore header if i == 0: continue t = line.strip() if t: row = pattern.split(t) # page size of 4096 bytes vm_rows[row[0]] = int(row[1].strip('\.')) * 4096 self.total = st_rows['hw.memsize'] self.wired = vm_rows['Pages wired down'] self.active = vm_rows['Pages free'] self.inactive = vm_rows['Pages inactive'] self.free = vm_rows['Pages free']
def __init__(self): super(Context, self).__init__() self.include_dirs = [] ok = True sdks = sh.xcodebuild("-showsdks").splitlines() # get the latest iphoneos iphoneos = [x for x in sdks if "iphoneos" in x] if not iphoneos: print("No iphone SDK installed") ok = False else: iphoneos = iphoneos[0].split()[-1].replace("iphoneos", "") self.sdkver = iphoneos # get the latest iphonesimulator version iphonesim = [x for x in sdks if "iphonesimulator" in x] if not iphonesim: ok = False print("Error: No iphonesimulator SDK installed") else: iphonesim = iphonesim[0].split()[-1].replace("iphonesimulator", "") self.sdksimver = iphonesim # get the path for Developer self.devroot = "{}/Platforms/iPhoneOS.platform/Developer".format( sh.xcode_select("-print-path").strip()) # path to the iOS SDK self.iossdkroot = "{}/SDKs/iPhoneOS{}.sdk".format( self.devroot, self.sdkver) # root of the toolchain self.root_dir = realpath(dirname(__file__)) self.build_dir = "{}/build".format(self.root_dir) self.cache_dir = "{}/.cache".format(self.root_dir) self.dist_dir = "{}/dist".format(self.root_dir) self.install_dir = "{}/dist/root".format(self.root_dir) self.include_dir = "{}/dist/include".format(self.root_dir) self.archs = (ArchSimulator(self), Arch64Simulator(self), ArchIOS(self), Arch64IOS(self)) # path to some tools self.ccache = sh.which("ccache") if not self.ccache: #print("ccache is missing, the build will not be optimized in the future.") pass for cython_fn in ("cython-2.7", "cython"): cython = sh.which(cython_fn) if cython: self.cython = cython break if not self.cython: ok = False print("Missing requirement: cython is not installed") # check the basic tools for tool in ("pkg-config", "autoconf", "automake", "libtool"): if not sh.which(tool): print("Missing requirement: {} is not installed".format(tool)) if not ok: sys.exit(1) self.use_pigz = sh.which('pigz') self.use_pbzip2 = sh.which('pbzip2') try: num_cores = int(sh.sysctl('-n', 'hw.ncpu')) except Exception: num_cores = None self.num_cores = num_cores if num_cores else 4 # default to 4 if we can't detect ensure_dir(self.root_dir) ensure_dir(self.build_dir) ensure_dir(self.cache_dir) ensure_dir(self.dist_dir) ensure_dir(self.install_dir) ensure_dir(self.include_dir) ensure_dir(join(self.include_dir, "common")) # remove the most obvious flags that can break the compilation self.env.pop("MACOSX_DEPLOYMENT_TARGET", None) self.env.pop("PYTHONDONTWRITEBYTECODE", None) self.env.pop("ARCHFLAGS", None) self.env.pop("CFLAGS", None) self.env.pop("LDFLAGS", None) # set the state self.state = JsonStore(join(self.dist_dir, "state.db"))
def __init__(self): super(Context, self).__init__() self.include_dirs = [] ok = True sdks = sh.xcodebuild("-showsdks").splitlines() # get the latest iphoneos iphoneos = [x for x in sdks if "iphoneos" in x] if not iphoneos: print("No iphone SDK installed") ok = False else: iphoneos = iphoneos[0].split()[-1].replace("iphoneos", "") self.sdkver = iphoneos # get the latest iphonesimulator version iphonesim = [x for x in sdks if "iphonesimulator" in x] if not iphonesim: ok = False print("Error: No iphonesimulator SDK installed") else: iphonesim = iphonesim[0].split()[-1].replace("iphonesimulator", "") self.sdksimver = iphonesim # get the path for Developer self.devroot = "{}/Platforms/iPhoneOS.platform/Developer".format( sh.xcode_select("-print-path").strip()) # path to the iOS SDK self.iossdkroot = "{}/SDKs/iPhoneOS{}.sdk".format( self.devroot, self.sdkver) # root of the toolchain self.root_dir = realpath(dirname(__file__)) self.build_dir = "{}/build".format(self.root_dir) self.cache_dir = "{}/.cache".format(self.root_dir) self.dist_dir = "{}/dist".format(self.root_dir) self.install_dir = "{}/dist/root".format(self.root_dir) self.include_dir = "{}/dist/include".format(self.root_dir) self.archs = ( ArchSimulator(self), Arch64Simulator(self), ArchIOS(self), Arch64IOS(self)) # path to some tools self.ccache = sh.which("ccache") if not self.ccache: #print("ccache is missing, the build will not be optimized in the future.") pass for cython_fn in ("cython-2.7", "cython"): cython = sh.which(cython_fn) if cython: self.cython = cython break if not self.cython: ok = False print("Missing requirement: cython is not installed") # check the basic tools for tool in ("pkg-config", "autoconf", "automake", "libtool"): if not sh.which(tool): print("Missing requirement: {} is not installed".format( tool)) if not ok: sys.exit(1) self.use_pigz = sh.which('pigz') self.use_pbzip2 = sh.which('pbzip2') try: num_cores = int(sh.sysctl('-n', 'hw.ncpu')) except Exception: num_cores = None self.num_cores = num_cores if num_cores else 4 # default to 4 if we can't detect ensure_dir(self.root_dir) ensure_dir(self.build_dir) ensure_dir(self.cache_dir) ensure_dir(self.dist_dir) ensure_dir(self.install_dir) ensure_dir(self.include_dir) ensure_dir(join(self.include_dir, "common")) # remove the most obvious flags that can break the compilation self.env.pop("MACOSX_DEPLOYMENT_TARGET", None) self.env.pop("PYTHONDONTWRITEBYTECODE", None) self.env.pop("ARCHFLAGS", None) self.env.pop("CFLAGS", None) self.env.pop("LDFLAGS", None) # set the state self.state = JsonStore(join(self.dist_dir, "state.db"))