MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / build

Method build

test/common.py:943–974  ·  view source on GitHub ↗
(self, filename, libraries=None, includes=None, force_c=False, cflags=None, output_basename=None, output_suffix=None)

Source from the content-addressed store, hash-verified

941
942 # Build JavaScript code from source code
943 def build(self, filename, libraries=None, includes=None, force_c=False, cflags=None, output_basename=None, output_suffix=None):
944 filename = maybe_test_file(filename)
945 compiler = [compiler_for(filename, force_c)]
946
947 if force_c:
948 assert utils.suffix(filename) != '.c', 'force_c is not needed for source files ending in .c'
949 compiler.append('-xc')
950
951 all_cflags = self.get_cflags(main_file=True)
952 if cflags:
953 all_cflags += cflags
954 if not output_suffix:
955 output_suffix = get_output_suffix(all_cflags)
956
957 if output_basename:
958 output = output_basename + output_suffix
959 else:
960 output = utils.unsuffixed_basename(filename) + output_suffix
961 cmd = compiler + [str(filename), '-o', output] + all_cflags
962 if libraries:
963 cmd += libraries
964 if includes:
965 cmd += ['-I' + str(include) for include in includes]
966
967 self.run_process(cmd, stderr=self.stderr_redirect if not DEBUG else None)
968 self.assertExists(output)
969
970 if output_suffix in {'.js', '.mjs'}:
971 # Make sure we produced correct line endings
972 self.assertEqual(line_endings.check_line_endings(output), 0)
973
974 return output
975
976 def get_func(self, src, name):
977 start = src.index('function ' + name + '(')

Callers 1

_build_and_runMethod · 0.95

Calls 7

get_cflagsMethod · 0.95
run_processMethod · 0.95
assertExistsMethod · 0.95
maybe_test_fileFunction · 0.85
compiler_forFunction · 0.85
get_output_suffixFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected