mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-05 17:56:49 +00:00
Fix VSProject generation issues with SConstruct:
* Always describe the Visual Studio targets * Prevent checking nonexistant enviro vars * Prevent pkg-config protobuf env vars if not clang/gcc * Don't use any pkg-config enviro vars unless clang/gcc * Make all VSProject/config directories windows-style * Prevent beastobjc.mm from showing up in vcxproj * Remove duplicate \src\protobuf\src * Consistent quoting
This commit is contained in:
@@ -50,76 +50,72 @@
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<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>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4800</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;_CRT_SECURE_NO_WARNINGS;_CRTDBG_MAP_ALLOC;_DEBUG;_SCL_SECURE_NO_WARNINGS;DEBUG;WIN32_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4800;4244;4267;4018</DisableSpecificWarnings>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||
<BufferSecurityCheck>True</BufferSecurityCheck>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<MinimalRebuild>False</MinimalRebuild>
|
||||
<FunctionLevelLinking>False</FunctionLevelLinking>
|
||||
<MultiProcessorCompilation>True</MultiProcessorCompilation>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>False</TreatWarningAsError>
|
||||
<ForceConformanceInForLoopScope>True</ForceConformanceInForLoopScope>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<ErrorReporting>None</ErrorReporting>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<MinimalRebuild>False</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<ErrorReporting>None</ErrorReporting>
|
||||
<BufferSecurityCheck>True</BufferSecurityCheck>
|
||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||
<MultiProcessorCompilation>True</MultiProcessorCompilation>
|
||||
<FunctionLevelLinking>False</FunctionLevelLinking>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<OpenMPSupport>False</OpenMPSupport>
|
||||
<AdditionalOptions>/FS /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
<TreatWarningAsError>False</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<ForceConformanceInForLoopScope>True</ForceConformanceInForLoopScope>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalOptions>/bigobj /FS %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<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>
|
||||
<GenerateDebugInformation>True</GenerateDebugInformation>
|
||||
<RandomizedBaseAddress>True</RandomizedBaseAddress>
|
||||
<AdditionalDependencies>advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ErrorReporting>NoErrorReport</ErrorReporting>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<AdditionalOptions>/MANIFEST /TLBID:1 %(AdditionalOptions)</AdditionalOptions>
|
||||
<RandomizedBaseAddress>True</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>True</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<AdditionalOptions>/MANIFEST /nologo /TLBID:1 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<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>
|
||||
<DisableSpecificWarnings>4018;4244;4267;4800</DisableSpecificWarnings>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x6000;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;NDEBUG;WIN32_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\build\proto;..\..\src;..\..\src\beast;..\..\src\protobuf\src;..\..\src\protobuf\vsprojects;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4800;4244;4267;4018</DisableSpecificWarnings>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<MinimalRebuild>False</MinimalRebuild>
|
||||
<FunctionLevelLinking>False</FunctionLevelLinking>
|
||||
<ErrorReporting>None</ErrorReporting>
|
||||
<RuntimeTypeInfo>True</RuntimeTypeInfo>
|
||||
<MultiProcessorCompilation>True</MultiProcessorCompilation>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<Optimization>Full</Optimization>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>False</TreatWarningAsError>
|
||||
<ForceConformanceInForLoopScope>True</ForceConformanceInForLoopScope>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<ErrorReporting>None</ErrorReporting>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<FunctionLevelLinking>False</FunctionLevelLinking>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<OpenMPSupport>False</OpenMPSupport>
|
||||
<AdditionalOptions>/FS /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
<TreatWarningAsError>False</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<ForceConformanceInForLoopScope>True</ForceConformanceInForLoopScope>
|
||||
<Optimization>Full</Optimization>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalOptions>/bigobj /FS %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<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>
|
||||
<GenerateDebugInformation>True</GenerateDebugInformation>
|
||||
<RandomizedBaseAddress>True</RandomizedBaseAddress>
|
||||
<AdditionalDependencies>advapi32.lib;comdlg32.lib;gdi32.lib;kernel32.lib;libeay32MT.lib;odbc32.lib;odbccp32.lib;ole32.lib;oleaut32.lib;shell32.lib;Shlwapi.lib;ssleay32MT.lib;user32.lib;uuid.lib;winspool.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ErrorReporting>NoErrorReport</ErrorReporting>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<SuppressStartupBanner>True</SuppressStartupBanner>
|
||||
<AdditionalOptions>/MANIFEST /TLBID:1 %(AdditionalOptions)</AdditionalOptions>
|
||||
<RandomizedBaseAddress>True</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>True</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<AdditionalOptions>/MANIFEST /nologo /TLBID:1 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
32
SConstruct
32
SConstruct
@@ -214,10 +214,7 @@ def config_base(env):
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
if Beast.system.linux:
|
||||
env.ParseConfig('pkg-config --static --cflags --libs openssl')
|
||||
env.ParseConfig('pkg-config --static --cflags --libs protobuf')
|
||||
elif Beast.system.windows:
|
||||
if Beast.system.windows:
|
||||
try:
|
||||
OPENSSL_ROOT = os.path.normpath(os.environ['OPENSSL_ROOT'])
|
||||
env.Append(CPPPATH=[
|
||||
@@ -244,6 +241,11 @@ def config_env(toolchain, variant, env):
|
||||
env.Append(CPPDEFINES=['NDEBUG'])
|
||||
|
||||
if toolchain in Split('clang gcc'):
|
||||
|
||||
if Beast.system.linux:
|
||||
env.ParseConfig('pkg-config --static --cflags --libs openssl')
|
||||
env.ParseConfig('pkg-config --static --cflags --libs protobuf')
|
||||
|
||||
env.Append(CCFLAGS=[
|
||||
'-Wall',
|
||||
'-Wno-sign-compare',
|
||||
@@ -322,7 +324,7 @@ def config_env(toolchain, variant, env):
|
||||
if toolchain == 'clang':
|
||||
if Beast.system.osx:
|
||||
env.Replace(CC='clang', CXX='clang++', LINK='clang++')
|
||||
else:
|
||||
elif 'CLANG_CC' in env and 'CLANG_CXX' in env and 'CLANG_LINK' in env:
|
||||
env.Replace(CC=env['CLANG_CC'], CXX=env['CLANG_CXX'], LINK=env['CLANG_LINK'])
|
||||
# C and C++
|
||||
# Add '-Wshorten-64-to-32'
|
||||
@@ -332,7 +334,8 @@ def config_env(toolchain, variant, env):
|
||||
env.Append(CXXFLAGS=['-Wno-mismatched-tags'])
|
||||
|
||||
elif toolchain == 'gcc':
|
||||
env.Replace(CC=env['GNU_CC'], CXX=env['GNU_CXX'], LINK=env['GNU_LINK'])
|
||||
if 'GNU_CC' in env and 'GNU_CXX' in env and 'GNU_LINK' in env:
|
||||
env.Replace(CC=env['GNU_CC'], CXX=env['GNU_CXX'], LINK=env['GNU_LINK'])
|
||||
# Why is this only for gcc?!
|
||||
env.Append(CCFLAGS=['-Wno-unused-local-typedefs'])
|
||||
|
||||
@@ -397,7 +400,7 @@ def config_env(toolchain, variant, env):
|
||||
'/MACHINE:X64',
|
||||
'/MANIFEST',
|
||||
#'''/MANIFESTUAC:"level='asInvoker' uiAccess='false'"''',
|
||||
#'/NOLOGO',
|
||||
'/nologo',
|
||||
'/NXCOMPAT',
|
||||
'/SUBSYSTEM:CONSOLE',
|
||||
'/TLBID:1',
|
||||
@@ -447,10 +450,6 @@ base.Append(CPPPATH=[
|
||||
os.path.join('src', 'beast'),
|
||||
os.path.join(build_dir, 'proto'),
|
||||
])
|
||||
if Beast.system.windows:
|
||||
base.Append(CPPPATH=[
|
||||
os.path.join('src', 'protobuf', 'src'),
|
||||
])
|
||||
|
||||
# Configure the toolchains, variants, default toolchain, and default target
|
||||
variants = ['debug', 'release']
|
||||
@@ -489,7 +488,7 @@ for source in [
|
||||
# Declare the targets
|
||||
aliases = collections.defaultdict(list)
|
||||
msvc_configs = []
|
||||
for toolchain in toolchains:
|
||||
for toolchain in ['gcc', 'clang', 'msvc']:
|
||||
for variant in variants:
|
||||
# Configure this variant's construction environment
|
||||
env = base.Clone()
|
||||
@@ -569,7 +568,7 @@ for toolchain in toolchains:
|
||||
'src/snappy/config',
|
||||
]))
|
||||
|
||||
if Beast.system.osx:
|
||||
if toolchain == "clang" and Beast.system.osx:
|
||||
objects.append(addSource('src/ripple/unity/beastobjc.mm', env, variant_dirs))
|
||||
|
||||
target = env.Program(
|
||||
@@ -588,9 +587,10 @@ for toolchain in toolchains:
|
||||
msvc_configs.append(config)
|
||||
if toolchain in toolchains:
|
||||
aliases['all'].extend(target)
|
||||
aliases[variant].extend(target)
|
||||
aliases[toolchain].extend(target)
|
||||
env.Alias(variant_name, target)
|
||||
aliases[variant].extend(target)
|
||||
aliases[toolchain].extend(target)
|
||||
env.Alias(variant_name, target)
|
||||
|
||||
for key, value in aliases.iteritems():
|
||||
env.Alias(key, value)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user