clang [compiler_options] <filename> gcc [compiler_options] <filename> cc [compiler_options] <filename> Analysis examples: infer -- make all infer -- clang -c srcfile.m infer -- gcc -c srcfile.c''' def gen_instance(*args): return MakeCapture(*args) create_argparser = \ util.clang_frontend_argparser(MODULE_DESCRIPTION, MODULE_NAME) class MakeCapture: def __init__(self, args, cmd): self.args = args self.cmd = [os.path.basename(cmd[0])] + cmd[1:] def get_envvars(self): env_vars = dict(os.environ) wrappers_path = os.path.join( os.path.dirname( os.path.realpath(__file__)), os.path.pardir, 'wrappers') env_vars['INFER_OLD_PATH'] = env_vars['PATH'] env_vars['PATH'] = '{wrappers}{sep}{path}'.format( wrappers=wrappers_path,
Analysis examples: infer -- make all infer -- clang -c srcfile.m infer -- gcc -c srcfile.c''' ALIASED_COMMANDS = ['clang', 'clang++', 'cc', 'gcc', 'g++'] BUILD_COMMANDS = ['cmake', 'configure', 'make', 'waf'] SUPPORTED_COMMANDS = ALIASED_COMMANDS + BUILD_COMMANDS def gen_instance(*args): return MakeCapture(*args) create_argparser = \ util.clang_frontend_argparser(MODULE_DESCRIPTION, MODULE_NAME) class MakeCapture: def __init__(self, args, cmd): self.args = args self.cmd = cmd command_name = os.path.basename(cmd[0]) if command_name in ALIASED_COMMANDS: # remove absolute paths for these commands as we want to # substitue our own wrappers instead using a PATH trick cmd[0] = command_name def get_envvars(self): env_vars = utils.read_env() wrappers_path = config.WRAPPERS_DIRECTORY