def __call__(self, build_dir='build', generator='Ninja', build_cmd='ninja'): logging.info("CMake / {} build in directory {}".format( generator, os.path.abspath(build_dir))) cmd_lst = self.cmake_command() os.makedirs(build_dir, exist_ok=True) with remember_cwd(): os.chdir(build_dir) cmd_lst.extend(['-G{}'.format(generator), '..']) logging.info('Executing: {}'.format('\t\n'.join(cmd_lst))) check_call(cmd_lst) logging.info('Now building') check_call(shlex.split(build_cmd))