diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index 424b61251618..cfdeaaaedd7d 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -342,6 +342,8 @@ def get_options(self) -> 'MutableKeyedOptionDictType': stds += ['c90', 'c1x', 'gnu90', 'gnu1x', 'iso9899:2011'] if version_compare(self.version, '>=1.26.00'): stds += ['c17', 'c18', 'iso9899:2017', 'iso9899:2018', 'gnu17', 'gnu18'] + if version_compare(self.version, '>=1.28.00'): + stds += ['c2x', 'gnu2x', 'c23', 'gnu23'] key = self.form_compileropt_key('std') std_opt = opts[key] assert isinstance(std_opt, options.UserStdOption), 'for mypy' diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py index 332282f6a457..0cce0c866780 100644 --- a/mesonbuild/compilers/cpp.py +++ b/mesonbuild/compilers/cpp.py @@ -628,6 +628,8 @@ def get_options(self) -> 'MutableKeyedOptionDictType': cpp_stds += ['c++2a'] if version_compare(self.version, '>=1.26.00'): cpp_stds += ['c++20'] + if version_compare(self.version, '>=1.28.00'): + cpp_stds += ['c++23'] key = self.form_compileropt_key('std') std_opt = opts[key] @@ -656,7 +658,7 @@ def get_option_compile_args(self, target: 'BuildTarget', env: 'Environment', sub non_msvc_eh_options(eh, args) debugstl = self.get_compileropt_value('debugstl', env, target, subproject) - assert isinstance(debugstl, str) + assert isinstance(debugstl, bool) if debugstl: args.append('-D_GLIBCXX_DEBUG=1') return args diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index 6f4f3d2c15a0..6f2164cc4ca3 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -344,6 +344,11 @@ def get_options(self) -> 'MutableKeyedOptionDictType': def get_module_outdir_args(self, path: str) -> T.List[str]: return ['-J' + path] + def language_stdlib_only_link_flags(self) -> T.List[str]: + # No need to add search paths here, because LCC ships everything + # (C, C++, Fortran) and always knows where to look for its stuff + return ['-lgfortran', '-lm'] + class G95FortranCompiler(FortranCompiler): diff --git a/mesonbuild/compilers/mixins/elbrus.py b/mesonbuild/compilers/mixins/elbrus.py index 7037db23260e..d285000a21de 100644 --- a/mesonbuild/compilers/mixins/elbrus.py +++ b/mesonbuild/compilers/mixins/elbrus.py @@ -97,3 +97,7 @@ def get_option_std_args(self, target: BuildTarget, env: Environment, subproject: def openmp_flags(self, env: Environment) -> T.List[str]: return ['-fopenmp'] + + @classmethod + def use_linker_args(cls, linker: str, version: str) -> T.List[str]: + return []