mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-21 19:45:53 +00:00
Process switches with regex in VSProject generator:
* Handles "DisableSpecificWarnings" switches
This commit is contained in:
@@ -52,6 +52,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;DEBUG;WIN32_CONSOLE;_CRTDBG_MAP_ALLOC;_CRT_SECURE_NO_WARNINGS;_DEBUG;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;DEBUG;WIN32_CONSOLE;_CRTDBG_MAP_ALLOC;_CRT_SECURE_NO_WARNINGS;_DEBUG;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4018;4244;4267;4800</DisableSpecificWarnings>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||||
<BufferSecurityCheck>True</BufferSecurityCheck>
|
<BufferSecurityCheck>True</BufferSecurityCheck>
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||||
<OpenMPSupport>False</OpenMPSupport>
|
<OpenMPSupport>False</OpenMPSupport>
|
||||||
<AdditionalOptions>/FS /bigobj /wd"4018" /wd"4244" /wd"4267" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/FS /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>Shlwapi.lib;advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
@@ -89,6 +90,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;NDEBUG;WIN32_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;NDEBUG;WIN32_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<DisableSpecificWarnings>4018;4244;4267;4800</DisableSpecificWarnings>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
@@ -106,7 +108,7 @@
|
|||||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||||
<OpenMPSupport>False</OpenMPSupport>
|
<OpenMPSupport>False</OpenMPSupport>
|
||||||
<AdditionalOptions>/FS /bigobj /wd"4018" /wd"4244" /wd"4267" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/FS /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>Shlwapi.lib;advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Shlwapi.lib;advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
|||||||
@@ -359,9 +359,10 @@ def config_env(toolchain, variant, env):
|
|||||||
#'/Fd${TARGET}.pdb', # Path: Program Database (.pdb)
|
#'/Fd${TARGET}.pdb', # Path: Program Database (.pdb)
|
||||||
'/W3', # Warning level 3
|
'/W3', # Warning level 3
|
||||||
'/WX-', # Disable warnings as errors
|
'/WX-', # Disable warnings as errors
|
||||||
'/wd"4018"', # Disable warning C4018
|
'/wd"4018"',
|
||||||
'/wd"4244"', # Disable warning C4244
|
'/wd"4244"',
|
||||||
'/wd"4267"', # Disable warning 4267
|
'/wd"4267"',
|
||||||
|
'/wd"4800"', # Disable C4800 (int to bool performance)
|
||||||
])
|
])
|
||||||
env.Append(CPPDEFINES={
|
env.Append(CPPDEFINES={
|
||||||
'_WIN32_WINNT' : '0x6000',
|
'_WIN32_WINNT' : '0x6000',
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ def itemList(items, sep):
|
|||||||
class SwitchConverter(object):
|
class SwitchConverter(object):
|
||||||
'''Converts command line switches to MSBuild XML, using tables'''
|
'''Converts command line switches to MSBuild XML, using tables'''
|
||||||
|
|
||||||
def __init__(self, table, booltable):
|
def __init__(self, table, booltable, retable=None):
|
||||||
self.table = {}
|
self.table = {}
|
||||||
for key in table:
|
for key in table:
|
||||||
self.table[key] = table[key]
|
self.table[key] = table[key]
|
||||||
@@ -120,11 +120,26 @@ class SwitchConverter(object):
|
|||||||
value = booltable[key]
|
value = booltable[key]
|
||||||
self.table[key] = [value[0], 'True']
|
self.table[key] = [value[0], 'True']
|
||||||
self.table[key + '-'] = [value[0], 'False']
|
self.table[key + '-'] = [value[0], 'False']
|
||||||
|
if retable != None:
|
||||||
|
self.retable = retable
|
||||||
|
else:
|
||||||
|
self.retable = []
|
||||||
|
|
||||||
def getXml(self, switches, prefix = ''):
|
def getXml(self, switches, prefix = ''):
|
||||||
if type(switches) != list:
|
if not isinstance(switches, list):
|
||||||
switches = list(switches)
|
switches = list(switches)
|
||||||
xml = []
|
xml = []
|
||||||
|
for regex, tag in self.retable:
|
||||||
|
matches = []
|
||||||
|
for switch in switches[:]:
|
||||||
|
match = regex.match(switch)
|
||||||
|
if None != match:
|
||||||
|
matches.append(match.group(1))
|
||||||
|
switches.remove(switch)
|
||||||
|
if len(matches) > 0:
|
||||||
|
xml.append (
|
||||||
|
'%s<%s>%s</%s>\r\n' % (
|
||||||
|
prefix, tag, ';'.join(matches), tag))
|
||||||
unknown = []
|
unknown = []
|
||||||
for switch in switches:
|
for switch in switches:
|
||||||
try:
|
try:
|
||||||
@@ -236,12 +251,14 @@ class ClSwitchConverter(SwitchConverter):
|
|||||||
'/errorReport:queue' : ['ErrorReporting', 'Queue'],
|
'/errorReport:queue' : ['ErrorReporting', 'Queue'],
|
||||||
'/errorReport:send' : ['ErrorReporting', 'Send'],
|
'/errorReport:send' : ['ErrorReporting', 'Send'],
|
||||||
}
|
}
|
||||||
|
retable = [
|
||||||
|
(re.compile(r'/wd\"(\d+)\"'), 'DisableSpecificWarnings'),
|
||||||
|
]
|
||||||
# Ideas from Google's Generate Your Project
|
# Ideas from Google's Generate Your Project
|
||||||
'''
|
'''
|
||||||
_Same(_compile, 'AdditionalIncludeDirectories', _folder_list) # /I
|
_Same(_compile, 'AdditionalIncludeDirectories', _folder_list) # /I
|
||||||
|
|
||||||
_Same(_compile, 'PreprocessorDefinitions', _string_list) # /D
|
_Same(_compile, 'PreprocessorDefinitions', _string_list) # /D
|
||||||
_Same(_compile, 'DisableSpecificWarnings', _string_list) # /wd
|
|
||||||
_Same(_compile, 'ProgramDataBaseFileName', _file_name) # /Fd
|
_Same(_compile, 'ProgramDataBaseFileName', _file_name) # /Fd
|
||||||
|
|
||||||
_Same(_compile, 'AdditionalOptions', _string_list)
|
_Same(_compile, 'AdditionalOptions', _string_list)
|
||||||
@@ -264,7 +281,7 @@ class ClSwitchConverter(SwitchConverter):
|
|||||||
_MSBuildOnly(_compile, 'TreatSpecificWarningsAsErrors', _string_list) # /we
|
_MSBuildOnly(_compile, 'TreatSpecificWarningsAsErrors', _string_list) # /we
|
||||||
_MSBuildOnly(_compile, 'PreprocessOutputPath', _string) # /Fi
|
_MSBuildOnly(_compile, 'PreprocessOutputPath', _string) # /Fi
|
||||||
'''
|
'''
|
||||||
SwitchConverter.__init__(self, table, booltable)
|
SwitchConverter.__init__(self, table, booltable, retable)
|
||||||
|
|
||||||
class LinkSwitchConverter(SwitchConverter):
|
class LinkSwitchConverter(SwitchConverter):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user