Merge pull request #6937 from SuperUserNameMan/fix_win_standalone_msvc_and_mingw_incompatibilities

fix bug introduced by #6501
This commit is contained in:
George Marques 2016-10-28 20:57:51 -02:00 committed by GitHub
commit a52cbd65a8
4 changed files with 15 additions and 20 deletions

View File

@ -61,7 +61,7 @@ platform_arg = ARGUMENTS.get("platform", ARGUMENTS.get("p", False))
if (os.name=="posix"): if (os.name=="posix"):
pass pass
elif (os.name=="nt"): elif (os.name=="nt"):
if (not methods.msvc_is_detected() or platform_arg=="android"): if ( os.getenv("VCINSTALLDIR")==None or platform_arg=="android"):
custom_tools=['mingw'] custom_tools=['mingw']
env_base=Environment(tools=custom_tools); env_base=Environment(tools=custom_tools);

View File

@ -1516,11 +1516,6 @@ def detect_visual_c_compiler_version(tools_env):
return vc_chosen_compiler_str return vc_chosen_compiler_str
def msvc_is_detected() :
# looks for VisualStudio env variable
# or for Visual C++ Build Tools (which is a standalone MSVC)
return os.getenv("VSINSTALLDIR") or os.getenv("VS100COMNTOOLS") or os.getenv("VS110COMNTOOLS") or os.getenv("VS120COMNTOOLS") or os.getenv("VS140COMNTOOLS");
def precious_program(env, program, sources, **args): def precious_program(env, program, sources, **args):
program = env.ProgramOriginal(program, sources, **args) program = env.ProgramOriginal(program, sources, **args)

View File

@ -671,7 +671,7 @@ if (env["openssl"] != "system"): # builtin
# Workaround for compilation error with GCC/Clang when -Werror is too greedy (GH-4517) # Workaround for compilation error with GCC/Clang when -Werror is too greedy (GH-4517)
import os import os
import methods import methods
if not (os.name=="nt" and methods.msvc_is_detected()): # not Windows and not MSVC if not (os.name=="nt" and os.getenv("VCINSTALLDIR")): # not Windows and not MSVC
env_openssl.Append(CFLAGS = ["-Wno-error=implicit-function-declaration"]) env_openssl.Append(CFLAGS = ["-Wno-error=implicit-function-declaration"])

View File

@ -1,16 +1,11 @@
# #
# tested on | Windows native | Linux cross-compilation # tested on | Windows native | Linux cross-compilation
# ----------------------------+-------------------+--------------------------- # ----------------------------+-------------------+---------------------------
# MSVS C++ 2010 Express | WORKS | n/a
# Visual C++ Build Tools 2015 | WORKS | n/a # Visual C++ Build Tools 2015 | WORKS | n/a
# Mingw-w64 | WORKS | WORKS # MSVS C++ 2010 Express | WORKS | n/a
# Mingw-w32 | WORKS | WORKS # Mingw-w64 | WORKS | WORKS
# MinGW | WORKS | untested # Mingw-w32 | WORKS | WORKS
# # MinGW | WORKS | untested
#####
# Notes about MSVS C++ :
#
# - MSVC2010-Express compiles to 32bits only.
# #
##### #####
# Note about Visual C++ Build Tools : # Note about Visual C++ Build Tools :
@ -19,6 +14,11 @@
# http://landinghub.visualstudio.com/visual-cpp-build-tools # http://landinghub.visualstudio.com/visual-cpp-build-tools
# #
##### #####
# Notes about MSVS C++ :
#
# - MSVC2010-Express compiles to 32bits only.
#
#####
# Notes about Mingw-w64 and Mingw-w32 under Windows : # Notes about Mingw-w64 and Mingw-w32 under Windows :
# #
# - both can be installed using the official installer : # - both can be installed using the official installer :
@ -109,7 +109,7 @@ def can_build():
if (os.name=="nt"): if (os.name=="nt"):
#building natively on windows! #building natively on windows!
if ( methods.msvc_is_detected() ): if ( os.getenv("VCINSTALLDIR") ):
return True return True
else: else:
print("\nMSVC not detected, attempting Mingw.") print("\nMSVC not detected, attempting Mingw.")
@ -204,7 +204,7 @@ def configure(env):
env.Append(CPPPATH=['#platform/windows']) env.Append(CPPPATH=['#platform/windows'])
env['is_mingw']=False env['is_mingw']=False
if (os.name=="nt" and methods.msvc_is_detected() ): if (os.name=="nt" and os.getenv("VCINSTALLDIR") ):
#build using visual studio #build using visual studio
env['ENV']['TMP'] = os.environ['TMP'] env['ENV']['TMP'] = os.environ['TMP']
env.Append(CPPPATH=['#platform/windows/include']) env.Append(CPPPATH=['#platform/windows/include'])