Move language standard in separate method within vsbackend
This commit is contained in:
parent
387e846568
commit
b72624171b
|
@ -1119,15 +1119,7 @@ class Vs2010Backend(backends.Backend):
|
|||
else:
|
||||
ET.SubElement(clconf, 'FavorSizeOrSpeed').text = 'Speed'
|
||||
# Note: SuppressStartupBanner is /NOLOGO and is 'true' by default
|
||||
if self.name in ('vs2017', 'vs2019'):
|
||||
if 'cpp' in file_args:
|
||||
optargs = [x for x in file_args['cpp'] if x.startswith('/std:c++')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard').text = optargs[0].replace("/std:c++","stdcpp")
|
||||
if 'c' in file_args:
|
||||
optargs = [x for x in file_args['c'] if x.startswith('/std:c')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard_C').text = optargs[0].replace("/std:c","stdc")
|
||||
self.generate_lang_standard_info(file_args, clconf)
|
||||
pch_sources = {}
|
||||
if self.environment.coredata.options.get(OptionKey('b_pch')):
|
||||
for lang in ['c', 'cpp']:
|
||||
|
@ -1515,3 +1507,6 @@ if %%errorlevel%% neq 0 goto :VCEnd'''
|
|||
def add_regen_dependency(self, root):
|
||||
regen_vcxproj = os.path.join(self.environment.get_build_dir(), 'REGEN.vcxproj')
|
||||
self.add_project_reference(root, regen_vcxproj, self.environment.coredata.regen_guid)
|
||||
|
||||
def generate_lang_standard_info(self, file_args, clconf):
|
||||
pass
|
|
@ -50,3 +50,13 @@ class Vs2017Backend(Vs2010Backend):
|
|||
def generate_debug_information(self, link):
|
||||
# valid values for vs2017 is 'false', 'true', 'DebugFastLink', 'DebugFull'
|
||||
ET.SubElement(link, 'GenerateDebugInformation').text = 'DebugFull'
|
||||
|
||||
def generate_lang_standard_info(self, file_args, clconf):
|
||||
if 'cpp' in file_args:
|
||||
optargs = [x for x in file_args['cpp'] if x.startswith('/std:c++')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard').text = optargs[0].replace("/std:c++", "stdcpp")
|
||||
if 'c' in file_args:
|
||||
optargs = [x for x in file_args['c'] if x.startswith('/std:c')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard_C').text = optargs[0].replace("/std:c", "stdc")
|
|
@ -45,3 +45,13 @@ class Vs2019Backend(Vs2010Backend):
|
|||
def generate_debug_information(self, link):
|
||||
# valid values for vs2019 is 'false', 'true', 'DebugFastLink', 'DebugFull'
|
||||
ET.SubElement(link, 'GenerateDebugInformation').text = 'DebugFull'
|
||||
|
||||
def generate_lang_standard_info(self, file_args, clconf):
|
||||
if 'cpp' in file_args:
|
||||
optargs = [x for x in file_args['cpp'] if x.startswith('/std:c++')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard').text = optargs[0].replace("/std:c++", "stdcpp")
|
||||
if 'c' in file_args:
|
||||
optargs = [x for x in file_args['c'] if x.startswith('/std:c')]
|
||||
if optargs:
|
||||
ET.SubElement(clconf, 'LanguageStandard_C').text = optargs[0].replace("/std:c", "stdc")
|
||||
|
|
Loading…
Reference in New Issue