def _build_test_case(self): """Build an executable from the test source with the given --builder script and flags (--cflags, --ldflags) in the working directory. Or, if the --binary option has been given, copy the executable provided into the working directory and rename it to match the --builder output or skip if --vs-solution was passed on the command line. """ if self.context.options.vs_solution: return options = self.context.options if options.binary: # Copy user's binary into the tmp working directory shutil.copy(options.binary, options.executable) builderIR = BuilderIR(name='binary', cflags=[options.binary], ldflags='') else: options = self.context.options compiler_options = [options.cflags for _ in options.source_files] linker_options = options.ldflags _, _, builderIR = run_external_build_script( self.context, script_path=self.build_script, source_files=options.source_files, compiler_options=compiler_options, linker_options=linker_options, executable_file=options.executable) return builderIR
def _clang_opt_bisect_build(self, opt_bisect_limits): options = self.context.options compiler_options = [ '{} -mllvm -opt-bisect-limit={}'.format(options.cflags, opt_bisect_limit) for opt_bisect_limit in opt_bisect_limits ] linker_options = options.ldflags try: return run_external_build_script( self.context, source_files=options.source_files, compiler_options=compiler_options, linker_options=linker_options, script_path=self.build_script, executable_file=options.executable) except BuildScriptException as e: raise Error(e)