{ "conditions": [ ["OS=='win'", { "target_defaults": { "default_configuration": "Release_x64", "msbuild_toolset":"v140", "msvs_settings": { "VCCLCompilerTool": { "ExceptionHandling": 1, # /EHsc "RuntimeTypeInfo": "true" # /GR } }, "configurations": { "Debug_Win32": { "msvs_configuration_platform": "Win32", "defines": [ "DEBUG","_DEBUG"], "msvs_settings": { "VCCLCompilerTool": { "RuntimeLibrary": "1", # static debug /MTd "Optimization": 0, # /Od, no optimization "MinimalRebuild": "false", "OmitFramePointers": "false", "BasicRuntimeChecks": 3 # /RTC1 } } }, "Debug_x64": { "msvs_configuration_platform": "x64", "defines": [ "DEBUG","_DEBUG"], "msvs_settings": { "VCCLCompilerTool": { "RuntimeLibrary": "1", # static debug /MTd "Optimization": 0, # /Od, no optimization "MinimalRebuild": "false", "OmitFramePointers": "false", "BasicRuntimeChecks": 3 # /RTC1 } } }, "Release_Win32": { "msvs_configuration_platform": "Win32", "defines": [ "NDEBUG"], "msvs_settings": { "VCCLCompilerTool": { "RuntimeLibrary": 0, # static release "Optimization": 3, # /Ox, full optimization "FavorSizeOrSpeed": 1, # /Ot, favour speed over size "InlineFunctionExpansion": 2, # /Ob2, inline anything eligible "WholeProgramOptimization": "true", # /GL, whole program optimization, needed for LTCG "OmitFramePointers": "true", "EnableFunctionLevelLinking": "true", "EnableIntrinsicFunctions": "true", "AdditionalOptions": [ "/MP", # compile across multiple CPUs ], "DebugInformationFormat": "0" }, "VCLibrarianTool": { "AdditionalOptions": [ "/LTCG" # link time code generation ], }, "VCLinkerTool": { "LinkTimeCodeGeneration": 1, # link-time code generation "OptimizeReferences": 2, # /OPT:REF "EnableCOMDATFolding": 2, # /OPT:ICF "LinkIncremental": 1, # disable incremental linking "GenerateDebugInformation": "false" } } }, "Release_x64": { "msvs_configuration_platform": "x64", "defines": [ "NDEBUG"], "msvs_settings": { "VCCLCompilerTool": { "RuntimeLibrary": 0, # static release "Optimization": 3, # /Ox, full optimization "FavorSizeOrSpeed": 1, # /Ot, favour speed over size "InlineFunctionExpansion": 2, # /Ob2, inline anything eligible "WholeProgramOptimization": "true", # /GL, whole program optimization, needed for LTCG "OmitFramePointers": "true", "EnableFunctionLevelLinking": "true", "EnableIntrinsicFunctions": "true", "AdditionalOptions": [ "/MP", # compile across multiple CPUs ], "DebugInformationFormat": "0" }, "VCLibrarianTool": { "AdditionalOptions": [ "/LTCG" # link time code generation ], }, "VCLinkerTool": { "LinkTimeCodeGeneration": 1, # link-time code generation "OptimizeReferences": 2, # /OPT:REF "EnableCOMDATFolding": 2, # /OPT:ICF "LinkIncremental": 1, # disable incremental linking "GenerateDebugInformation": "false" } } } } } }, { "target_defaults": { "default_configuration": "Release", "xcode_settings": { "CLANG_CXX_LIBRARY": "libc++", "CLANG_CXX_LANGUAGE_STANDARD":"c++11", "GCC_VERSION": "com.apple.compilers.llvm.clang.1_0", }, "cflags_cc": ["-std=c++11"], "configurations": { "Debug": { "defines": [ "DEBUG" ], "xcode_settings": { "GCC_OPTIMIZATION_LEVEL": "0", "GCC_GENERATE_DEBUGGING_SYMBOLS": "YES", "OTHER_CPLUSPLUSFLAGS": [ "-Wall", "-Wextra", "-pedantic", "-g", "-O0" ] } }, "Release": { "defines": [ "NDEBUG" ], "xcode_settings": { "GCC_OPTIMIZATION_LEVEL": "3", "GCC_GENERATE_DEBUGGING_SYMBOLS": "NO", "DEAD_CODE_STRIPPING": "YES", "GCC_INLINES_ARE_PRIVATE_EXTERN": "YES", "OTHER_CPLUSPLUSFLAGS": [ "-Wall", "-Wextra", "-pedantic", "-O3" ] } } } } }] ] }