def native_build(self, filenames, cl_args=None, link_args=None,<EOL>x64=False, out_dir='<STR_LIT>'):
if not cl_args:<EOL><INDENT>cl_args = []<EOL><DEDENT>if not link_args:<EOL><INDENT>link_args = []<EOL><DEDENT>cl_args.append('<STR_LIT>' if x64 else '<STR_LIT>')<EOL>link_args.extend(<EOL>['<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>'])<EOL>msvc, lib = self.vc.get_bin_and_lib(x64, native=True)<EOL>lib = self.make_lib(lib)<EOL>if out_dir:<EOL><INDENT>cl_args.append('<STR_LIT>' + out_dir + '<STR_LIT:\\>')<EOL><DEDENT>inc = self.make_inc(<EOL>self.sdk.inc + self.sdk.get_inc(native=True)<EOL>)<EOL>cl_args.extend(filenames + inc)<EOL>try:<EOL><INDENT>msvc.run_cl('<STR_LIT>', *cl_args)<EOL><DEDENT>except CalledProcessError as error:<EOL><INDENT>logging.error(_('<STR_LIT>'), filenames)<EOL>logging.error(_('<STR_LIT>'), error.output)<EOL>return False<EOL><DEDENT>link_args.extend(lib + self.make_objs(filenames, out_dir))<EOL>try:<EOL><INDENT>msvc.run_link(*link_args)<EOL><DEDENT>except CalledProcessError as error:<EOL><INDENT>logging.error(_('<STR_LIT>'), filenames)<EOL>logging.error(_('<STR_LIT>'), error.output)<EOL>return False<EOL><DEDENT>return True<EOL>
Compile source files and link object files
to native binaries.