From a2ee76228e29f4cf5f52197dd2a726620445c81b Mon Sep 17 00:00:00 2001 From: "Bedarkar, Malhar" Date: Mon, 5 Mar 2018 18:26:39 -0600 Subject: First cut of ARMCC support for MESON. Change-Id: I15d8258e84d392baaccb8f670e33eefcfe8cd49a --- mesonbuild/compilers/compilers.py | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 034fef4..cdc6f87 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -112,6 +112,12 @@ gnulike_buildtype_args = {'plain': [], 'debugoptimized': ['-O2', '-g'], 'release': ['-O3'], 'minsize': ['-Os', '-g']} +arm_buildtype_args = {'plain': [], + 'debug': ['-O0', '-g'], + 'debugoptimized': ['-O2', '-g'], + 'release': ['-O2'], + 'minsize': ['-Os', '-g'], + } msvc_buildtype_args = {'plain': [], 'debug': ["/MDd", "/ZI", "/Ob0", "/Od", "/RTC1"], @@ -133,6 +139,12 @@ gnulike_buildtype_linker_args = {'plain': [], 'release': ['-Wl,-O1'], 'minsize': [], } +arm_buildtype_linker_args = {'plain': [], + 'debug': [], + 'debugoptimized': [], + 'release': [], + 'minsize': [], + } msvc_buildtype_linker_args = {'plain': [], 'debug': [], @@ -657,6 +669,12 @@ class Compiler: def get_always_args(self): return [] + def can_linker_accept_rsp(self): + """ + Determines whether the linker can accept arguments using the @rsp syntax. + """ + return mesonlib.is_windows() + def get_linker_always_args(self): return [] @@ -1075,6 +1093,39 @@ class GnuCompiler: def get_default_include_dirs(self): return gnulike_default_include_dirs(self.exelist, self.language) +class ARMCompiler: + # Functionality that is common to all ARM family compilers. + def __init__(self, defines): + self.id = 'arm' + self.defines = defines or {} + self.base_options = ['b_pch', 'b_lto', 'b_pgo', 'b_sanitize', 'b_coverage', + 'b_colorout', 'b_ndebug', 'b_staticpic'] + # Assembly + self.can_compile_suffixes.add('s') + + def can_linker_accept_rsp(self): + return False + + def get_pic_args(self): + # FIXME: Add /ropi, /rwpi, /fpic etc. qualifiers to --apcs + return [] + + def get_buildtype_args(self, buildtype): + return arm_buildtype_args[buildtype] + + def get_buildtype_linker_args(self, buildtype): + return arm_buildtype_linker_args[buildtype] + + def get_pch_suffix(self): + # NOTE from armcc user guide: + # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 + # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported + # PCH files." + return 'pch' + + def split_shlib_to_parts(self, fname): + return os.path.split(fname)[0], fname + class ClangCompiler: def __init__(self, clang_type): -- cgit v1.1 From a470835778b4a9813e8a6046e04a958755797347 Mon Sep 17 00:00:00 2001 From: Somasekhar Penugonda Date: Tue, 6 Mar 2018 14:19:16 +0530 Subject: Meson Github pull request - 3186 requested changes - Fixing flake8 error in compilers.py - [E124] closing bracket does not match visual indentation - Updating ARMCCompiler constructor in c.py to raise error as per comments --- mesonbuild/compilers/compilers.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index cdc6f87..47e3daa 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -112,12 +112,13 @@ gnulike_buildtype_args = {'plain': [], 'debugoptimized': ['-O2', '-g'], 'release': ['-O3'], 'minsize': ['-Os', '-g']} + arm_buildtype_args = {'plain': [], 'debug': ['-O0', '-g'], 'debugoptimized': ['-O2', '-g'], 'release': ['-O2'], 'minsize': ['-Os', '-g'], - } + } msvc_buildtype_args = {'plain': [], 'debug': ["/MDd", "/ZI", "/Ob0", "/Od", "/RTC1"], @@ -139,12 +140,13 @@ gnulike_buildtype_linker_args = {'plain': [], 'release': ['-Wl,-O1'], 'minsize': [], } + arm_buildtype_linker_args = {'plain': [], 'debug': [], 'debugoptimized': [], 'release': [], 'minsize': [], - } + } msvc_buildtype_linker_args = {'plain': [], 'debug': [], -- cgit v1.1 From 831d1e4c2e7b0ce8dfd0b2471bf2dab499181d66 Mon Sep 17 00:00:00 2001 From: "Bedarkar, Malhar" Date: Wed, 14 Mar 2018 22:42:06 -0500 Subject: - Updating cpp_std options similar to other compiler classes - Updating environment.py for selecting '--vsn' option for armcc only. - Updating build type arguments from GitHub pull request - 3157 Change-Id: Id3151e7715ec1016afdbd65391bb0d414ec7de13 --- mesonbuild/compilers/compilers.py | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 47e3daa..556d881 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -114,10 +114,10 @@ gnulike_buildtype_args = {'plain': [], 'minsize': ['-Os', '-g']} arm_buildtype_args = {'plain': [], - 'debug': ['-O0', '-g'], - 'debugoptimized': ['-O2', '-g'], - 'release': ['-O2'], - 'minsize': ['-Os', '-g'], + 'debug': ['-O0', '--debug'], + 'debugoptimized': ['-O1', '--debug'], + 'release': ['-O3', '-Otime'], + 'minsize': ['-O3', '-Ospace'], } msvc_buildtype_args = {'plain': [], @@ -1118,6 +1118,26 @@ class ARMCompiler: def get_buildtype_linker_args(self, buildtype): return arm_buildtype_linker_args[buildtype] + # Override CCompiler.get_always_args + def get_always_args(self): + return [] + + # Override CCompiler.get_dependency_gen_args + def get_dependency_gen_args(self, outtarget, outfile): + return [] + + # Override CCompiler.get_std_shared_lib_link_args + def get_std_shared_lib_link_args(self): + return [] + + def get_pch_use_args(self, pch_dir, header): + # FIXME: Add required arguments + # NOTE from armcc user guide: + # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 + # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported + # PCH files." + return [] + def get_pch_suffix(self): # NOTE from armcc user guide: # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 @@ -1128,6 +1148,12 @@ class ARMCompiler: def split_shlib_to_parts(self, fname): return os.path.split(fname)[0], fname + def thread_flags(self, env): + return [] + + def thread_link_flags(self, env): + return [] + class ClangCompiler: def __init__(self, clang_type): -- cgit v1.1 From e62b8109ebfef437a380f2d8cedd1565095a5574 Mon Sep 17 00:00:00 2001 From: Somasekhar Penugonda Date: Thu, 15 Mar 2018 18:33:11 +0530 Subject: Updates to CPP support and update review changes --- mesonbuild/compilers/compilers.py | 129 +++++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 59 deletions(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 556d881..966e205 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1095,65 +1095,6 @@ class GnuCompiler: def get_default_include_dirs(self): return gnulike_default_include_dirs(self.exelist, self.language) -class ARMCompiler: - # Functionality that is common to all ARM family compilers. - def __init__(self, defines): - self.id = 'arm' - self.defines = defines or {} - self.base_options = ['b_pch', 'b_lto', 'b_pgo', 'b_sanitize', 'b_coverage', - 'b_colorout', 'b_ndebug', 'b_staticpic'] - # Assembly - self.can_compile_suffixes.add('s') - - def can_linker_accept_rsp(self): - return False - - def get_pic_args(self): - # FIXME: Add /ropi, /rwpi, /fpic etc. qualifiers to --apcs - return [] - - def get_buildtype_args(self, buildtype): - return arm_buildtype_args[buildtype] - - def get_buildtype_linker_args(self, buildtype): - return arm_buildtype_linker_args[buildtype] - - # Override CCompiler.get_always_args - def get_always_args(self): - return [] - - # Override CCompiler.get_dependency_gen_args - def get_dependency_gen_args(self, outtarget, outfile): - return [] - - # Override CCompiler.get_std_shared_lib_link_args - def get_std_shared_lib_link_args(self): - return [] - - def get_pch_use_args(self, pch_dir, header): - # FIXME: Add required arguments - # NOTE from armcc user guide: - # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 - # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported - # PCH files." - return [] - - def get_pch_suffix(self): - # NOTE from armcc user guide: - # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 - # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported - # PCH files." - return 'pch' - - def split_shlib_to_parts(self, fname): - return os.path.split(fname)[0], fname - - def thread_flags(self, env): - return [] - - def thread_link_flags(self, env): - return [] - class ClangCompiler: def __init__(self, clang_type): @@ -1294,3 +1235,73 @@ class IntelCompiler: def get_default_include_dirs(self): return gnulike_default_include_dirs(self.exelist, self.language) + + +class ArmCompiler: + # Functionality that is common to all ARM family compilers. + def __init__(self): + if not self.is_cross: + raise EnvironmentException('armcc supports only cross-compilation.') + self.id = 'arm' + default_warn_args = [] + self.warn_args = {'1': default_warn_args, + '2': default_warn_args + [], + '3': default_warn_args + []} + # Assembly + self.can_compile_suffixes.add('s') + + def can_linker_accept_rsp(self): + return False + + def get_pic_args(self): + # FIXME: Add /ropi, /rwpi, /fpic etc. qualifiers to --apcs + return [] + + def get_buildtype_args(self, buildtype): + return arm_buildtype_args[buildtype] + + def get_buildtype_linker_args(self, buildtype): + return arm_buildtype_linker_args[buildtype] + + # Override CCompiler.get_always_args + def get_always_args(self): + return [] + + # Override CCompiler.get_dependency_gen_args + def get_dependency_gen_args(self, outtarget, outfile): + return [] + + # Override CCompiler.get_std_shared_lib_link_args + def get_std_shared_lib_link_args(self): + return [] + + def get_pch_use_args(self, pch_dir, header): + # FIXME: Add required arguments + # NOTE from armcc user guide: + # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 + # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported + # PCH files." + return [] + + def get_pch_suffix(self): + # NOTE from armcc user guide: + # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05 + # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported + # PCH files." + return 'pch' + + def thread_flags(self, env): + return [] + + def thread_link_flags(self, env): + return [] + + def get_linker_exelist(self): + args = ['armlink'] + return args + + def get_coverage_args(self): + return [] + + def get_coverage_link_args(self): + return [] -- cgit v1.1