Auto merge of #16307 - UK992:msvc2017, r=larsbergstrom

Add support for Visual Studio 2017

This adds support for Visual Studio 2017.
Also need update cmake to 3.7.2.

r? @larsbergstrom

Can you please upload [this cmake](https://www.dropbox.com/s/3b2z36jj4gh4qpk/cmake-3.7.2.zip?dl=0) to s3 bucket?

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16307)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-04-11 16:41:02 -05:00 committed by GitHub
commit 065f50014f
4 changed files with 32 additions and 6 deletions

View file

@ -1,6 +1,22 @@
@echo off
SET VS_VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
IF EXIST "%ProgramFiles(x86)%" (
set "ProgramFiles32=%ProgramFiles(x86)%"
) ELSE (
set "ProgramFiles32=%ProgramFiles%"
)
set VC14VARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
IF EXIST "%VC14VARS%" (
set "VS_VCVARS=%VC14VARS%"
) ELSE (
for %%e in (Enterprise Professional Community) do (
IF EXIST "%ProgramFiles32%\Microsoft Visual Studio\2017\%%e\VC\Auxiliary\Build\vcvarsall.bat" (
set "VS_VCVARS=%ProgramFiles32%\Microsoft Visual Studio\2017\%%e\VC\Auxiliary\Build\vcvarsall.bat"
)
)
)
IF EXIST "%VS_VCVARS%" (
IF NOT DEFINED Platform (
IF EXIST "%ProgramFiles(x86)%" (
@ -11,8 +27,8 @@ IF EXIST "%VS_VCVARS%" (
)
)
) ELSE (
ECHO Visual Studio 2015 is not installed.
ECHO Download and install Visual Studio 2015 from https://www.visualstudio.com/
ECHO Visual Studio 2015 or 2017 is not installed.
ECHO Download and install Visual Studio 2015 or 2017 from https://www.visualstudio.com/
EXIT /B
)

View file

@ -5,6 +5,7 @@
from __future__ import absolute_import, print_function
from distutils.spawn import find_executable
from distutils.version import StrictVersion
import json
import os
import platform
@ -204,10 +205,19 @@ def windows_msvc(context, force=False):
def package_dir(package):
return os.path.join(deps_dir, package, version(package))
def check_cmake(version):
cmake_path = find_executable("cmake")
if cmake_path:
cmake = subprocess.Popen([cmake_path, "--version"], stdout=PIPE)
cmake_version = cmake.stdout.read().splitlines()[0].replace("cmake version ", "")
if StrictVersion(cmake_version) >= StrictVersion(version):
return True
return False
to_install = {}
for package in packages.WINDOWS_MSVC:
# Don't install CMake if it already exists in PATH
if package == "cmake" and find_executable(package):
if package == "cmake" and check_cmake(version("cmake")):
continue
if not os.path.isdir(package_dir(package)):

View file

@ -18,7 +18,7 @@ WINDOWS_GNU = set([
])
WINDOWS_MSVC = {
"cmake": "3.6.1",
"cmake": "3.7.2",
"moztools": "0.0.1-5",
"ninja": "1.7.1",
"openssl": "1.1.0e-vs2015",

View file

@ -50,7 +50,7 @@ def host_triple():
cpu_type = platform.machine().lower()
if os_type.endswith("-msvc"):
# vcvars*.bat should set it properly
platform_env = os.environ.get("PLATFORM")
platform_env = os.environ.get("PLATFORM").upper()
if platform_env == "X86":
cpu_type = "i686"
elif platform_env == "X64":