diff options
author | makise-homura <akemi_homura@kurisa.ch> | 2018-03-28 21:35:45 +0300 |
---|---|---|
committer | makise-homura <akemi_homura@kurisa.ch> | 2018-03-28 21:35:45 +0300 |
commit | 67f067d5b2161bb21a3d3858c295932004ffa90c (patch) | |
tree | 7f1e1addc74ab6eac9d8337f1c991fefe2ebaebf | |
parent | 72f477748fbbfa4e3e423eea8576059d1b1a218d (diff) | |
download | meson-67f067d5b2161bb21a3d3858c295932004ffa90c.zip meson-67f067d5b2161bb21a3d3858c295932004ffa90c.tar.gz meson-67f067d5b2161bb21a3d3858c295932004ffa90c.tar.bz2 |
Added version detection for lcc compiler
-rw-r--r-- | mesonbuild/environment.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index 67a0fe0..25be7cb 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -409,6 +409,15 @@ class Environment: return dot.join((major, minor, patch)) @staticmethod + def get_lcc_version_from_defines(defines): + dot = '.' + generation_and_major = defines.get('__LCC__', '100') + generation = generation_and_major[:1] + major = generation_and_major[1:] + minor = defines.get('__LCC_MINOR__', '0') + return dot.join((generation, major, minor)) + + @staticmethod def get_gnu_compiler_type(defines): # Detect GCC type (Apple, MinGW, Cygwin, Unix) if '__APPLE__' in defines: @@ -514,10 +523,11 @@ class Environment: popen_exceptions[' '.join(compiler)] = 'no pre-processor defines' continue gtype = self.get_gnu_compiler_type(defines) - version = self.get_gnu_version_from_defines(defines) if guess_gcc_or_lcc == 'lcc': + version = self.get_lcc_version_from_defines(defines) cls = ElbrusCCompiler if lang == 'c' else ElbrusCPPCompiler else: + version = self.get_gnu_version_from_defines(defines) cls = GnuCCompiler if lang == 'c' else GnuCPPCompiler return cls(ccache + compiler, version, gtype, is_cross, exe_wrap, defines, full_version=full_version) @@ -585,10 +595,11 @@ class Environment: popen_exceptions[' '.join(compiler)] = 'no pre-processor defines' continue gtype = self.get_gnu_compiler_type(defines) - version = self.get_gnu_version_from_defines(defines) if guess_gcc_or_lcc == 'lcc': + version = self.get_lcc_version_from_defines(defines) cls = ElbrusFortranCompiler else: + version = self.get_gnu_version_from_defines(defines) cls = GnuFortranCompiler return cls(compiler, version, gtype, is_cross, exe_wrap, defines, full_version=full_version) |