diff options
-rw-r--r-- | mesonbuild/compilers/__init__.py | 2 | ||||
-rw-r--r-- | mesonbuild/compilers/c.py | 3 | ||||
-rw-r--r-- | mesonbuild/compilers/compilers.py | 130 | ||||
-rw-r--r-- | mesonbuild/compilers/cpp.py | 3 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/ccrx.py | 148 |
5 files changed, 152 insertions, 134 deletions
diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py index ea65c21..0f0db44 100644 --- a/mesonbuild/compilers/__init__.py +++ b/mesonbuild/compilers/__init__.py @@ -88,7 +88,6 @@ __all__ = [ 'PGIFortranCompiler', 'RustCompiler', 'CcrxCCompiler', - 'CcrxCompiler', 'CcrxCPPCompiler', 'SunFortranCompiler', 'SwiftCompiler', @@ -124,7 +123,6 @@ from .compilers import ( CompilerArgs, GnuCompiler, IntelGnuLikeCompiler, - CcrxCompiler, VisualStudioLikeCompiler, IntelVisualStudioLikeCompiler, ) diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index 6fe72fb..bfd4629 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -19,7 +19,7 @@ from .. import coredata from ..mesonlib import MachineChoice, MesonException, mlog, version_compare from .c_function_attributes import C_FUNC_ATTRIBUTES from .mixins.clike import CLikeCompiler - +from .mixins.ccrx import CcrxCompiler from .compilers import ( gnu_winlibs, msvc_winlibs, @@ -33,7 +33,6 @@ from .compilers import ( IntelGnuLikeCompiler, IntelVisualStudioLikeCompiler, PGICompiler, - CcrxCompiler, VisualStudioLikeCompiler, ) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 8800923..edff756 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1,4 +1,4 @@ -# Copyright 2012-2017 The Meson development team +# Copyright 2012-2019 The Meson development team # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -169,14 +169,6 @@ arm_buildtype_args = {'plain': [], 'custom': [], } -ccrx_buildtype_args = {'plain': [], - 'debug': [], - 'debugoptimized': [], - 'release': [], - 'minsize': [], - 'custom': [], - } - msvc_buildtype_args = {'plain': [], 'debug': ["/ZI", "/Ob0", "/Od", "/RTC1"], 'debugoptimized': ["/Zi", "/Ob1"], @@ -216,13 +208,6 @@ arm_buildtype_linker_args = {'plain': [], 'custom': [], } -ccrx_buildtype_linker_args = {'plain': [], - 'debug': [], - 'debugoptimized': [], - 'release': [], - 'minsize': [], - 'custom': [], - } pgi_buildtype_linker_args = {'plain': [], 'debug': [], 'debugoptimized': [], @@ -347,14 +332,6 @@ gnu_optimization_args = {'0': [], 's': ['-Os'], } -ccrx_optimization_args = {'0': ['-optimize=0'], - 'g': ['-optimize=0'], - '1': ['-optimize=1'], - '2': ['-optimize=2'], - '3': ['-optimize=max'], - 's': ['-optimize=2', '-size'] - } - msvc_optimization_args = {'0': [], 'g': ['/O0'], '1': ['/O1'], @@ -380,9 +357,6 @@ clike_debug_args = {False: [], msvc_debug_args = {False: [], True: []} # Fixme! -ccrx_debug_args = {False: [], - True: ['-debug']} - base_options = {'b_pch': coredata.UserBooleanOption('Use precompiled headers', True), 'b_lto': coredata.UserBooleanOption('Use link time optimization', False), 'b_sanitize': coredata.UserComboOption('Code sanitizer to use', @@ -2536,105 +2510,3 @@ class ArmCompiler: parameter_list[idx] = i[:2] + os.path.normpath(os.path.join(build_dir, i[2:])) return parameter_list - -class CcrxCompiler: - def __init__(self, compiler_type): - if not self.is_cross: - raise EnvironmentException('ccrx supports only cross-compilation.') - # Check whether 'rlink.exe' is available in path - self.linker_exe = 'rlink.exe' - args = '--version' - try: - p, stdo, stderr = Popen_safe(self.linker_exe, args) - except OSError as e: - err_msg = 'Unknown linker\nRunning "{0}" gave \n"{1}"'.format(' '.join([self.linker_exe] + [args]), e) - raise EnvironmentException(err_msg) - self.id = 'ccrx' - self.compiler_type = compiler_type - # Assembly - self.can_compile_suffixes.update('s') - default_warn_args = [] - self.warn_args = {'0': [], - '1': default_warn_args, - '2': default_warn_args + [], - '3': default_warn_args + []} - - def can_linker_accept_rsp(self): - return False - - def get_pic_args(self): - # PIC support is not enabled by default for CCRX, - # if users want to use it, they need to add the required arguments explicitly - return [] - - def get_buildtype_args(self, buildtype): - return ccrx_buildtype_args[buildtype] - - def get_buildtype_linker_args(self, buildtype): - return ccrx_buildtype_linker_args[buildtype] - - # Override CCompiler.get_std_shared_lib_link_args - def get_std_shared_lib_link_args(self): - return [] - - def get_pch_suffix(self): - return 'pch' - - def get_pch_use_args(self, pch_dir, header): - return [] - - # Override CCompiler.get_dependency_gen_args - def get_dependency_gen_args(self, outtarget, outfile): - return [] - - # Override CCompiler.build_rpath_args - def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath): - return [] - - def thread_flags(self, env): - return [] - - def thread_link_flags(self, env): - return [] - - def get_linker_exelist(self): - return [self.linker_exe] - - def get_linker_lib_prefix(self): - return '-lib=' - - def get_coverage_args(self): - return [] - - def get_coverage_link_args(self): - return [] - - def get_optimization_args(self, optimization_level): - return ccrx_optimization_args[optimization_level] - - def get_debug_args(self, is_debug): - return ccrx_debug_args[is_debug] - - @classmethod - def unix_args_to_native(cls, args): - result = [] - for i in args: - if i.startswith('-D'): - i = '-define=' + i[2:] - if i.startswith('-I'): - i = '-include=' + i[2:] - if i.startswith('-Wl,-rpath='): - continue - elif i == '--print-search-dirs': - continue - elif i.startswith('-L'): - continue - result.append(i) - return result - - def compute_parameters_with_absolute_paths(self, parameter_list, build_dir): - for idx, i in enumerate(parameter_list): - if i[:9] == '-include=': - parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:])) - - return parameter_list diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py index ed4fc54..3a40ff8 100644 --- a/mesonbuild/compilers/cpp.py +++ b/mesonbuild/compilers/cpp.py @@ -32,12 +32,13 @@ from .compilers import ( PGICompiler, ArmCompiler, ArmclangCompiler, - CcrxCompiler, Compiler, VisualStudioLikeCompiler, ) from .c_function_attributes import CXX_FUNC_ATTRIBUTES, C_FUNC_ATTRIBUTES from .mixins.clike import CLikeCompiler +from .mixins.ccrx import CcrxCompiler + def non_msvc_eh_options(eh, args): if eh == 'none': diff --git a/mesonbuild/compilers/mixins/ccrx.py b/mesonbuild/compilers/mixins/ccrx.py new file mode 100644 index 0000000..3de0256 --- /dev/null +++ b/mesonbuild/compilers/mixins/ccrx.py @@ -0,0 +1,148 @@ +# Copyright 2012-2019 The Meson development team + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Representations specific to the Renesas CC-RX compiler family.""" + +import os +import typing + +from ...mesonlib import Popen_safe + +ccrx_buildtype_args = {'plain': [], + 'debug': [], + 'debugoptimized': [], + 'release': [], + 'minsize': [], + 'custom': [], + } + +ccrx_buildtype_linker_args = {'plain': [], + 'debug': [], + 'debugoptimized': [], + 'release': [], + 'minsize': [], + 'custom': [], + } +ccrx_optimization_args = {'0': ['-optimize=0'], + 'g': ['-optimize=0'], + '1': ['-optimize=1'], + '2': ['-optimize=2'], + '3': ['-optimize=max'], + 's': ['-optimize=2', '-size'] + } +ccrx_debug_args = {False: [], + True: ['-debug']} + + +class CcrxCompiler: + def __init__(self, compiler_type): + if not self.is_cross: + raise EnvironmentException('ccrx supports only cross-compilation.') + # Check whether 'rlink.exe' is available in path + self.linker_exe = 'rlink.exe' + args = '--version' + try: + p, stdo, stderr = Popen_safe(self.linker_exe, args) + except OSError as e: + err_msg = 'Unknown linker\nRunning "{0}" gave \n"{1}"'.format(' '.join([self.linker_exe] + [args]), e) + raise EnvironmentException(err_msg) + self.id = 'ccrx' + self.compiler_type = compiler_type + # Assembly + self.can_compile_suffixes.update('s') + default_warn_args = [] + self.warn_args = {'0': [], + '1': default_warn_args, + '2': default_warn_args + [], + '3': default_warn_args + []} + + def can_linker_accept_rsp(self): + return False + + def get_pic_args(self): + # PIC support is not enabled by default for CCRX, + # if users want to use it, they need to add the required arguments explicitly + return [] + + def get_buildtype_args(self, buildtype): + return ccrx_buildtype_args[buildtype] + + def get_buildtype_linker_args(self, buildtype): + return ccrx_buildtype_linker_args[buildtype] + + # Override CCompiler.get_std_shared_lib_link_args + def get_std_shared_lib_link_args(self): + return [] + + def get_pch_suffix(self): + return 'pch' + + def get_pch_use_args(self, pch_dir, header): + return [] + + # Override CCompiler.get_dependency_gen_args + def get_dependency_gen_args(self, outtarget, outfile): + return [] + + # Override CCompiler.build_rpath_args + def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath): + return [] + + def thread_flags(self, env): + return [] + + def thread_link_flags(self, env): + return [] + + def get_linker_exelist(self): + return [self.linker_exe] + + def get_linker_lib_prefix(self): + return '-lib=' + + def get_coverage_args(self): + return [] + + def get_coverage_link_args(self): + return [] + + def get_optimization_args(self, optimization_level): + return ccrx_optimization_args[optimization_level] + + def get_debug_args(self, is_debug): + return ccrx_debug_args[is_debug] + + @classmethod + def unix_args_to_native(cls, args): + result = [] + for i in args: + if i.startswith('-D'): + i = '-define=' + i[2:] + if i.startswith('-I'): + i = '-include=' + i[2:] + if i.startswith('-Wl,-rpath='): + continue + elif i == '--print-search-dirs': + continue + elif i.startswith('-L'): + continue + result.append(i) + return result + + def compute_parameters_with_absolute_paths(self, parameter_list, build_dir): + for idx, i in enumerate(parameter_list): + if i[:9] == '-include=': + parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:])) + + return parameter_list
\ No newline at end of file |