From f30656761ee4ba30113dc461bbef854f917763fd Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 31 Dec 2017 22:55:12 +0100 Subject: Add windows standard lib files to build Add optimization flag for debug/release for msvc --- backend/ninja/Ninja.cpp | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'backend/ninja/Ninja.cpp') diff --git a/backend/ninja/Ninja.cpp b/backend/ninja/Ninja.cpp index aec3216..63624a9 100644 --- a/backend/ninja/Ninja.cpp +++ b/backend/ninja/Ninja.cpp @@ -559,14 +559,42 @@ namespace backend // TODO: Add equivalent functionality for msvc. Currently msvc always builds as debug build string optimizationFlags; - switch(config.getOptimizationLevel()) + switch (config.getOptimizationLevel()) { case OPT_LEV_DEBUG: - optimizationFlags = "'-O0'"; + { + switch (config.getCompiler()) + { + case Compiler::GCC: + { + optimizationFlags = "'-O0'"; + break; + } + case Compiler::MSVC: + { + optimizationFlags = "/Od"; + break; + } + } break; + } case OPT_LEV_RELEASE: - optimizationFlags = "'-O3' '-DNDEBUG'"; + { + switch (config.getCompiler()) + { + case Compiler::GCC: + { + optimizationFlags = "'-O3' '-DNDEBUG'"; + break; + } + case Compiler::MSVC: + { + optimizationFlags = "/Ox /DNDEBUG"; + break; + } + } break; + } } vector objectNames; @@ -597,6 +625,8 @@ namespace backend } case Compiler::MSVC: { + result += " "; + result += optimizationFlags; result += " /EHsc"; switch (config.getOptimizationLevel()) { @@ -649,7 +679,7 @@ namespace backend case Compiler::MSVC: { // TODO: Do not link all of these. Find a way to only link the ones that are needed - result += " LINK_ARGS = Ws2_32.lib Wldap32.lib Crypt32.lib Advapi32.lib Gdi32.lib User32.lib Userenv.lib "; + result += " LINK_ARGS = Ws2_32.lib Wldap32.lib Crypt32.lib Advapi32.lib Gdi32.lib User32.lib Userenv.lib OpenGL32.lib GlU32.lib Shell32.lib "; break; } } @@ -712,7 +742,7 @@ namespace backend result += join(objectNames, " "); result += "\n"; // TODO: Do not link all of these. Find a way to only link the ones that are needed - result += " LINK_ARGS = Ws2_32.lib Wldap32.lib Crypt32.lib Advapi32.lib Gdi32.lib User32.lib Userenv.lib "; + result += " LINK_ARGS = Ws2_32.lib Wldap32.lib Crypt32.lib Advapi32.lib Gdi32.lib User32.lib Userenv.lib OpenGL32.lib GlU32.lib Shell32.lib "; projectGeneratedBinary += config.getPackageName() + ".lib"; break; } -- cgit v1.2.3