diff --git a/mesonbuild/compilers/mixins/emscripten.py b/mesonbuild/compilers/mixins/emscripten.py index 742d52887daf..4797cbcc10f1 100644 --- a/mesonbuild/compilers/mixins/emscripten.py +++ b/mesonbuild/compilers/mixins/emscripten.py @@ -31,3 +31,16 @@ def get_allow_undefined_link_args(self) -> typing.List[str]: def get_linker_output_args(self, output: str) -> typing.List[str]: return ['-o', output] + + def _get_compile_output(self, dirname, mode): + # In pre-processor mode, the output is sent to stdout and discarded + if mode == 'preprocess': + return None + # Unlike sane toolchains, emcc infers the kind of output from its name. + # This is the only reason why this method is overriden; compiler tests + # do not work well with the default exe/obj suffices. + if mode == 'link': + suffix = 'js' + else: + suffix = 'wasm' + return os.path.join(dirname, 'output.' + suffix)