summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/c.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-06-19 21:56:00 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2019-08-02 22:12:05 +0300
commit9251e3bf2ca607b3d6778c246c708916a29aaa88 (patch)
tree7b6dd0a509d6615e5a06f0529451d507b4685dd0 /mesonbuild/compilers/c.py
parentcba23413c58b2089ad752a358aafa3d06edaea4a (diff)
downloadmeson-wasm.tar.gz
Add basic Webassembly support via Emscripten.wasm
Diffstat (limited to 'mesonbuild/compilers/c.py')
-rw-r--r--mesonbuild/compilers/c.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index eff716106..f50b77cdf 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -119,6 +119,31 @@ class ClangCCompiler(ClangCompiler, CCompiler):
return basic
+class EmscriptenCCompiler(ClangCCompiler):
+ def __init__(self, exelist, version, compiler_type, for_machine: MachineChoice, is_cross, exe_wrapper=None, **kwargs):
+ if not is_cross:
+ raise MesonException('Emscripten compiler can only be used for cross compilation.')
+ ClangCCompiler.__init__(self, exelist, version, compiler_type, for_machine, is_cross, exe_wrapper, **kwargs)
+ self.id = 'emscripten'
+
+ def get_option_link_args(self, options):
+ return []
+
+ def get_linker_always_args(self):
+ return []
+
+ def get_asneeded_args(self):
+ return []
+
+ def get_lundef_args(self):
+ return []
+
+ def build_rpath_args(self, *args, **kwargs):
+ return []
+
+ def get_soname_args(self, *args, **kwargs):
+ raise MesonException('Emscripten does not support shared libraries.')
+
class ArmclangCCompiler(ArmclangCompiler, CCompiler):
def __init__(self, exelist, version, compiler_type, for_machine: MachineChoice, is_cross, exe_wrapper=None, **kwargs):
CCompiler.__init__(self, exelist, version, for_machine, is_cross, exe_wrapper, **kwargs)