This commit is contained in:
Robert Schumacher 2017-01-24 14:55:38 -08:00
commit d98d7b386d
8 changed files with 93 additions and 44 deletions

View File

@ -1,3 +1,24 @@
vcpkg (0.0.70)
--------------
* Add ports:
- fltk 1.3.4-1
- glib 2.50.2
- lzo 2.09
- uvatlas sept2016
* Update ports:
- dx 1.0.0 -> 1.0.1
- libmysql 5.7.16 -> 5.7.17
* Add support for Visual Studio 2017
- Previously, you could use Visual Studio 2017 for your own application and `vcpkg` integration would work, but you needed to have Visual Studio 2015 to build `vcpkg` itself as well as the libraries. This requirement has now been removed
- If both Visual Studio 2015 and Visual Studio 2017 are installed, Visual Studio 2017 tools will be preferred over those of Visual Studio 2015
* Bump required version & auto-downloaded version of `cmake` to 3.7.2 (was 3.5.x), which includes generators for Visual Studio 2017
* Bump auto-downloaded version of `nuget` to 3.5.0 (was 3.4.3)
* Bump auto-downloaded version of `git` to 2.11.0 (was 2.8.3)
* Fixes and improvements in existing portfiles and the `vcpkg` tool itself
-- vcpkg team <vcpkg@microsoft.com> MON, 23 Jan 2017 19:50:00 -0800
vcpkg (0.0.67) vcpkg (0.0.67)
-------------- --------------
* Add ports: * Add ports:

View File

@ -4,20 +4,33 @@ function(vcpkg_configure_cmake)
if(_csc_GENERATOR) if(_csc_GENERATOR)
set(GENERATOR ${_csc_GENERATOR}) set(GENERATOR ${_csc_GENERATOR})
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x86") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015") set(GENERATOR "Visual Studio 14 2015")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x64") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015 Win64") set(GENERATOR "Visual Studio 14 2015 Win64")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "arm") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015 ARM") set(GENERATOR "Visual Studio 14 2015 ARM")
# elseif(NOT vcpkg_configure_cmake_NINJA MATCHES "NOTFOUND") # elseif(NOT vcpkg_configure_cmake_NINJA MATCHES "NOTFOUND")
# set(GENERATOR "Ninja") # set(GENERATOR "Ninja")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x86") elseif(TRIPLET_SYSTEM_ARCH MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015") set(GENERATOR "Visual Studio 14 2015")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x64") elseif(TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
set(GENERATOR "Visual Studio 14 2015 Win64") set(GENERATOR "Visual Studio 14 2015 Win64")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "arm") elseif(TRIPLET_SYSTEM_ARCH MATCHES "arm")
set(GENERATOR "Visual Studio 14 2015 ARM") set(GENERATOR "Visual Studio 14 2015 ARM" AND VCPKG_PLATFORM_TOOLSET MATCHES "v140")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(GENERATOR "Visual Studio 15 2017")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(GENERATOR "Visual Studio 15 2017 Win64")
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(GENERATOR "Visual Studio 15 2017 ARM")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(GENERATOR "Visual Studio 15 2017")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
set(GENERATOR "Visual Studio 15 2017 Win64")
elseif(TRIPLET_SYSTEM_ARCH MATCHES "arm")
set(GENERATOR "Visual Studio 15 2017 ARM" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
endif() endif()
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)

View File

@ -123,28 +123,28 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
$requiredVersion = "3.7.2" $requiredVersion = "3.7.2"
$downloadVersion = "3.7.2" $downloadVersion = "3.7.2"
$url = "https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.zip" $url = "https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.zip"
$downloadName = "cmake-3.7.2-win32-x86.zip" $downloadPath = "$downloadsDir\cmake-3.7.2-win32-x86.zip"
$expectedDownloadedFileHash = "ec5e299d412e0272e01d4de5bf07718f42c96361f83d51cc39f91bf49cc3e5c3" $expectedDownloadedFileHash = "ec5e299d412e0272e01d4de5bf07718f42c96361f83d51cc39f91bf49cc3e5c3"
$executableFromDownload = "$downloadsDir\cmake-3.7.2-win32-x86\bin\cmake.exe" $executableFromDownload = "$downloadsDir\cmake-3.7.2-win32-x86\bin\cmake.exe"
$extractionType = $ExtractionType_ZIP $extractionType = $ExtractionType_ZIP
} }
elseif($Dependency -eq "nuget") elseif($Dependency -eq "nuget")
{ {
$requiredVersion = "1.0.0" $requiredVersion = "3.3.0"
$downloadVersion = "3.4.3" $downloadVersion = "3.5.0"
$url = "https://dist.nuget.org/win-x86-commandline/v3.4.3/nuget.exe" $url = "https://dist.nuget.org/win-x86-commandline/v3.5.0/nuget.exe"
$downloadName = "nuget.exe" $downloadPath = "$downloadsDir\nuget-3.5.0\nuget.exe"
$expectedDownloadedFileHash = "3B1EA72943968D7AF6BACDB4F2F3A048A25AFD14564EF1D8B1C041FDB09EBB0A" $expectedDownloadedFileHash = "399ec24c26ed54d6887cde61994bb3d1cada7956c1b19ff880f06f060c039918"
$executableFromDownload = "$downloadsDir\nuget.exe" $executableFromDownload = $downloadPath
$extractionType = $ExtractionType_NO_EXTRACTION_REQUIRED $extractionType = $ExtractionType_NO_EXTRACTION_REQUIRED
} }
elseif($Dependency -eq "git") elseif($Dependency -eq "git")
{ {
$requiredVersion = "2.0.0" $requiredVersion = "2.0.0"
$downloadVersion = "2.8.3" $downloadVersion = "2.11.0"
$url = "https://github.com/git-for-windows/git/releases/download/v2.8.3.windows.1/PortableGit-2.8.3-32-bit.7z.exe" # We choose the 32-bit version $url = "https://github.com/git-for-windows/git/releases/download/v2.11.0.windows.3/PortableGit-2.11.0.3-32-bit.7z.exe" # We choose the 32-bit version
$downloadName = "PortableGit-2.8.3-32-bit.7z.exe" $downloadPath = "$downloadsDir\PortableGit-2.11.0.3-32-bit.7z.exe"
$expectedDownloadedFileHash = "DE52D070219E9C4EC1DB179F2ADBF4B760686C3180608F0382A1F8C7031E72AD" $expectedDownloadedFileHash = "8bf3769c37945e991903dd1b988c6b1d97bbf0f3afc9851508974f38bf94dc01"
# There is another copy of git.exe in PortableGit\bin. However, an installed version of git add the cmd dir to the PATH. # There is another copy of git.exe in PortableGit\bin. However, an installed version of git add the cmd dir to the PATH.
# Therefore, choosing the cmd dir here as well. # Therefore, choosing the cmd dir here as well.
$executableFromDownload = "$downloadsDir\PortableGit\cmd\git.exe" $executableFromDownload = "$downloadsDir\PortableGit\cmd\git.exe"
@ -155,7 +155,12 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
throw "Unknown program requested" throw "Unknown program requested"
} }
$downloadPath = "$downloadsDir\$downloadName" $downloadSubdir = Split-path $downloadPath -Parent
if (!(Test-Path $downloadSubdir))
{
New-Item -ItemType Directory -Path $downloadSubdir | Out-Null
}
performDownload $Dependency $url $downloadsDir $downloadPath $downloadVersion $requiredVersion performDownload $Dependency $url $downloadsDir $downloadPath $downloadVersion $requiredVersion
#calculating the hash #calculating the hash
@ -197,6 +202,8 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency)
{ {
throw [System.IO.FileNotFoundException] ("Could not detect or download " + $Dependency) throw [System.IO.FileNotFoundException] ("Could not detect or download " + $Dependency)
} }
return $downloadPath
} }
SelectProgram $Dependency SelectProgram $Dependency

View File

@ -10,8 +10,7 @@ $vcpkgRootDir = & $scriptsDir\findFileRecursivelyUp.ps1 $scriptsDir .vcpkg-root
$downloadsDir = "$vcpkgRootDir\downloads" $downloadsDir = "$vcpkgRootDir\downloads"
& $scriptsDir\fetchDependency.ps1 "nuget" $nugetexe = & $scriptsDir\fetchDependency.ps1 "nuget"
$nugetexe = "$downloadsDir\nuget.exe"
$nugetPackageDir = "$downloadsDir\nuget-packages" $nugetPackageDir = "$downloadsDir\nuget-packages"
$SetupAPIVersion = "1.3.269-rc" $SetupAPIVersion = "1.3.269-rc"

View File

@ -1 +1 @@
"0.0.67" "0.0.70"

View File

@ -17,5 +17,11 @@ namespace vcpkg::Environment
const fs::path& get_dumpbin_exe(const vcpkg_paths& paths); const fs::path& get_dumpbin_exe(const vcpkg_paths& paths);
const fs::path& get_vcvarsall_bat(const vcpkg_paths& paths); struct vcvarsall_and_platform_toolset
{
fs::path path;
std::wstring platform_toolset;
};
const vcvarsall_and_platform_toolset& get_vcvarsall_bat(const vcpkg_paths& paths);
} }

View File

@ -30,12 +30,13 @@ namespace vcpkg::Commands::Build
const triplet& target_triplet = spec.target_triplet(); const triplet& target_triplet = spec.target_triplet();
const fs::path ports_cmake_script_path = paths.ports_cmake; const fs::path ports_cmake_script_path = paths.ports_cmake;
const fs::path vcvarsall_bat = Environment::get_vcvarsall_bat(paths); const Environment::vcvarsall_and_platform_toolset vcvarsall_bat = Environment::get_vcvarsall_bat(paths);
const std::wstring command = Strings::wformat(LR"("%s" %s && cmake -DCMD=BUILD -DPORT=%s -DTARGET_TRIPLET=%s "-DCURRENT_PORT_DIR=%s/." -P "%s")", const std::wstring command = Strings::wformat(LR"("%s" %s >nul 2>&1 && cmake -DCMD=BUILD -DPORT=%s -DTARGET_TRIPLET=%s -DVCPKG_PLATFORM_TOOLSET=%s "-DCURRENT_PORT_DIR=%s/." -P "%s")",
vcvarsall_bat.native(), vcvarsall_bat.path.native(),
Strings::utf8_to_utf16(target_triplet.architecture()), Strings::utf8_to_utf16(target_triplet.architecture()),
Strings::utf8_to_utf16(source_paragraph.name), Strings::utf8_to_utf16(source_paragraph.name),
Strings::utf8_to_utf16(target_triplet.canonical_name()), Strings::utf8_to_utf16(target_triplet.canonical_name()),
vcvarsall_bat.platform_toolset,
port_dir.generic_wstring(), port_dir.generic_wstring(),
ports_cmake_script_path.generic_wstring()); ports_cmake_script_path.generic_wstring());

View File

@ -46,6 +46,13 @@ namespace vcpkg::Environment
} }
} }
static std::wstring create_default_install_cmd(const vcpkg_paths& paths, const std::wstring& tool_name)
{
const fs::path script = paths.scripts / "fetchDependency.ps1";
// TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
return Strings::wformat(L"powershell -ExecutionPolicy Bypass %s -Dependency %s", script.native(), tool_name);
}
void ensure_git_on_path(const vcpkg_paths& paths) void ensure_git_on_path(const vcpkg_paths& paths)
{ {
const fs::path downloaded_git = paths.downloads / "PortableGit" / "cmd"; const fs::path downloaded_git = paths.downloads / "PortableGit" / "cmd";
@ -58,9 +65,7 @@ namespace vcpkg::Environment
static constexpr std::array<int, 3> git_version = {2,0,0}; static constexpr std::array<int, 3> git_version = {2,0,0};
static const std::wstring version_check_cmd = L"git --version 2>&1"; static const std::wstring version_check_cmd = L"git --version 2>&1";
const fs::path script = paths.scripts / "fetchDependency.ps1"; const std::wstring install_cmd = create_default_install_cmd(paths, L"git");
// TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
const std::wstring install_cmd = Strings::wformat(L"powershell -ExecutionPolicy Bypass %s -Dependency git", script.native());
ensure_on_path(git_version, version_check_cmd, install_cmd); ensure_on_path(git_version, version_check_cmd, install_cmd);
} }
@ -76,22 +81,19 @@ namespace vcpkg::Environment
static constexpr std::array<int, 3> cmake_version = {3,7,2}; static constexpr std::array<int, 3> cmake_version = {3,7,2};
static const std::wstring version_check_cmd = L"cmake --version 2>&1"; static const std::wstring version_check_cmd = L"cmake --version 2>&1";
const fs::path script = paths.scripts / "fetchDependency.ps1"; const std::wstring install_cmd = create_default_install_cmd(paths, L"cmake");
// TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
const std::wstring install_cmd = Strings::wformat(L"powershell -ExecutionPolicy Bypass %s -Dependency cmake", script.native());
ensure_on_path(cmake_version, version_check_cmd, install_cmd); ensure_on_path(cmake_version, version_check_cmd, install_cmd);
} }
void ensure_nuget_on_path(const vcpkg_paths& paths) void ensure_nuget_on_path(const vcpkg_paths& paths)
{ {
const std::wstring path_buf = Strings::wformat(L"%s;%s", paths.downloads.native(), System::wdupenv_str(L"PATH")); const fs::path downloaded_nuget = paths.downloads / "nuget-3.5.0";
const std::wstring path_buf = Strings::wformat(L"%s;%s", downloaded_nuget.native(), System::wdupenv_str(L"PATH"));
_wputenv_s(L"PATH", path_buf.c_str()); _wputenv_s(L"PATH", path_buf.c_str());
static constexpr std::array<int, 3> nuget_version = {1,0,0}; static constexpr std::array<int, 3> nuget_version = {3,3,0};
static const std::wstring version_check_cmd = L"nuget 2>&1"; static const std::wstring version_check_cmd = L"nuget 2>&1";
const fs::path script = paths.scripts / "fetchDependency.ps1"; const std::wstring install_cmd = create_default_install_cmd(paths, L"nuget");
// TODO: switch out ExecutionPolicy Bypass with "Remove Mark Of The Web" code and restore RemoteSigned
const std::wstring install_cmd = Strings::wformat(L"powershell -ExecutionPolicy Bypass %s -Dependency nuget", script.native());
ensure_on_path(nuget_version, version_check_cmd, install_cmd); ensure_on_path(nuget_version, version_check_cmd, install_cmd);
} }
@ -155,7 +157,7 @@ namespace vcpkg::Environment
System::println("The following paths were examined:"); System::println("The following paths were examined:");
for (const fs::path& path : paths_examined) for (const fs::path& path : paths_examined)
{ {
System::println(path.generic_string()); System::println(" %s", path.generic_string());
} }
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -166,7 +168,7 @@ namespace vcpkg::Environment
return dumpbin_exe; return dumpbin_exe;
} }
static fs::path find_vcvarsall_bat(const vcpkg_paths& paths) static vcvarsall_and_platform_toolset find_vcvarsall_bat(const vcpkg_paths& paths)
{ {
const std::vector<std::string> vs2017_installation_instances = get_VS2017_installation_instances(paths); const std::vector<std::string> vs2017_installation_instances = get_VS2017_installation_instances(paths);
std::vector<fs::path> paths_examined; std::vector<fs::path> paths_examined;
@ -178,7 +180,7 @@ namespace vcpkg::Environment
paths_examined.push_back(vcvarsall_bat); paths_examined.push_back(vcvarsall_bat);
if (fs::exists(vcvarsall_bat)) if (fs::exists(vcvarsall_bat))
{ {
return vcvarsall_bat; return { vcvarsall_bat , L"v141"};
} }
} }
@ -187,21 +189,21 @@ namespace vcpkg::Environment
paths_examined.push_back(vs2015_vcvarsall_bat); paths_examined.push_back(vs2015_vcvarsall_bat);
if (fs::exists(vs2015_vcvarsall_bat)) if (fs::exists(vs2015_vcvarsall_bat))
{ {
return vs2015_vcvarsall_bat; return { vs2015_vcvarsall_bat, L"v140" };
} }
System::println(System::color::error, "Could not detect vccarsall.bat."); System::println(System::color::error, "Could not detect vccarsall.bat.");
System::println("The following paths were examined:"); System::println("The following paths were examined:");
for (const fs::path& path : paths_examined) for (const fs::path& path : paths_examined)
{ {
System::println(path.generic_string()); System::println(" %s",path.generic_string());
} }
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
const fs::path& get_vcvarsall_bat(const vcpkg_paths& paths) const vcvarsall_and_platform_toolset& get_vcvarsall_bat(const vcpkg_paths& paths)
{ {
static const fs::path vcvarsall_bat = find_vcvarsall_bat(paths); static const vcvarsall_and_platform_toolset vcvarsall_bat = find_vcvarsall_bat(paths);
return vcvarsall_bat; return vcvarsall_bat;
} }
} }