Commit Graph

1949 Commits

Author SHA1 Message Date
Robert Schumacher
11ded36658
[vcpkg] Fix GCC-6 build. (#14616)
Fixes #13937. Fixes MicrosoftDocs/vscodespaces#827.
2020-11-17 22:21:40 -08:00
ras0219
7837631629
[vcpkg] Implement constraints and overrides in manifests (#14183)
* [vcpkg] Implement constraints in manifests

* [vcpkg] Add SourceControlFile::check_against_feature_flags to prevent accidentally ignoring versioning fields

* [vcpkg] Switch check_against_feature_flags to accept fs::path

* [vcpkg] Implement overrides parsing in manifests

* [vcpkg] Address CR comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-11-13 14:30:31 -06:00
nicole mazzuca
d9b179fd46
[llvm] install tools in tools/llvm (#14399)
* [llvm] install tools in tools/llvm

* remove the giant commented out block of code

* update port-version

* hopefully fix the port?

There are still some issues, namely that the python scripts and DLLs that are copied into `tools/llvm`
are not considered to be "installed by llvm", and thus are not removed when llvm is removed

* format!

* apparently REGEX REPLACE fails if a thing doesn't match

* fix LLVM_REMOVE_EXTENSION_REGEX on windows

* actually read the cmake regex docs...

* fix the name of the variable

* turns out CMAKE_MATCH_1 is the one I want

* need to update VERSION for new policy

* stop removing debug/bin

* fix faulty merge
2020-11-12 17:31:34 -08:00
nicole mazzuca
2dc708898a
[vcpkg] Add x-ignore-lock-failures (#14397)
* [vcpkg] Add disable-lock options

This should fix #14281 at least as a stopgap.

Additionally, adds better errors.

* billy CRs

* change from "disable-lock" to "allow-spurious-lock-failures"

* billy cr
2020-11-12 10:16:24 -08:00
Joachim Gehweiler
11b4a16bca
[tensorflow-cc] More or less completely rewritten port, update to 2.3.1 (#13028)
* fix build issues occurring from default bazel config being used because customized bazel config is stored in wrong directory

* [tensorflow-cc] Update CONTROL and ci.baseline.txt

* fix also applies to windows static build

* fix debug and static builds as well as library naming for non-linux
- add patch to fix debug builds
- add patch to fix exports for static linking
- really build debug (instead of cloning release)
- override bazel build options for debug (work around bazel bug)
- bazel doesn't support static libraries: work around by building dynamic library and constructing static linkage commands from build log
- Windows .pdb file can't be >4GB even on x64: work around using reduced debug information
- Windows doesn't support .lib files >4GB even on x64, so split into multiple libs
- vcpkg requires equal amount of libs for debug and release: work around using handcrafted empty dummy libs
- fix naming of libs (.dll on Windows and .dylib on macOS)

* upgrade tensorflow from v1.14 to v2.3
- adapt patch files to tensorflow code changes
- update bazel from v0.25.2 to v3.1
- on Windows use python installed on the host instead of embedded python obtained via vcpkg because embedded python lacks pip, which we need to obtain numpy
- on Windows add MSYS2 to the PATH so that bazel tools can access MSYS2 GIT
- add support for custom CA certificates when using HTTPS_PROXY

* fix execute process macro
The existing implementation totally screwed up commands if the command's arguments contained semicolons (this is the case, e.g., in the FindPython modules of the cmake distribution).

* extend overriden execute_process to more than one COMMAND as there actually are use cases for this

* added another patch required for tensorflow v2.3, fixed path and working directory

* Revert "incorporate changes from microsoft:master"

* Revert "Revert "incorporate changes from microsoft:master""

* final fixes for static build + improving out messages

* enabling linux and osx in CI to see if it works now

* simplified code, fixed version numbers, fixed generated include cmake file

* fix failing postbuild check on handcrafted empty dummy library by spreading the last real libraries contents over the required number of libraries

* remove dead code commit by mistake again

* improvements from code review

* cleaner fix for debug code

* find pip3 in PATH (PYTHON3_DIR apparently not valid for pip3)

* fix error in python helper script

* fix wrong libname in postbuild script

* fix python detection + switch to python on msys2 (instead of embedded python) for Windows as we need numpy

* fix order of arguments

* fix command (it may contain spaces such as C:\Program Files\...)

* revert last commit (root cause for CI failures is something different: there are line breaks in path)

* fix regex comparision
(value needs to be escaped as it may contains regex special characters such as brackets, eg C:/Program Files (x86)/...)

* fix linebreaks in generated file

* fix CRT linkage
(macOS doesn't support static CRT linkage; it's set to dynamic even static target triplets for macOS and linux)

* refactor implemenation to avoid as much code duplication as possible -- algorithmically identical

* fix version numbers in helper scripts

* enable work-around for Windows until bazel fix is available

* install missing python3-pip on linux

* fix linux build by patching

* apply timeout feature now available via merged master branch

* correct linux build patch

* improve debug build patches
(no functional difference because LOG(FATAL, ...) macro internally anyway calls abort(), which the compiler doesn't detect in debug mode...

* improve linux patch

* temporarily add debug to inspect what's going on on macOS CI

* remove temporary debug code and fix static linking scripts for linux and macOS

* fix regex escaping

* fix ambiguous match while grepping for the framework link command

* extend fix of ambiguous match while grepping for the framework link command

* fix what merge of master broke

* fix more what got broken by merging master
(all packages and their dependencies are now maintained manually instead of using pacman...)

* remove "unofficial" from filename

* added switch do distinct classic and manifest mode when generating config.cmake file

* create symlinks for libraries without version number

* fix linux postbuild script

* temporarily disable code making problems

* add note for linking on Linux and macOS

* forget to add README file in previous commit

* add file forgotton in macro fixing patch

* fix python library path

* fix macOS static link command

* update linkage instructions in README

* Update ports/tensorflow-cc/CONTROL

* Update ports/tensorflow-cc/portfile.cmake

* Update scripts/ci.baseline.txt

* use vcpkg_execute_required_process

* pass C_FLAGS and CXX_FLAGS to bazel

* fix INTERFACE_INCLUDE_DIRECTORIES

* fix optional c/cxx arguments

* also add linker opts

* update README

* merge static libs into one
to support force_load (cannot force_load both due to duplicate symbols)

* update README

* quote python path (it might contain spaces that don't get escaped inside outer quotes of bash command)

* fix python path also for static build

* add arm(64) as currently unsupported arch

* bazel 3.7 is available -> remove workaround

* update README, remove necessary c-ares from deps

* update msys package

* add uwp specific options, and minor general improvements

* fix string replace

* fix control file and windows path separator

* revert backslashes-fix -- the root cause was missing .exe extension

* upgrade to tf 2.3.1

* fix hard-coded version

* remove uwp work-in-progress code so that PR can be merged

* update README and print out usage info in portfile

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-windows

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/portfile.cmake

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* improve usage hints as discussed in review

* add comment

* apply changes from review

* make additional compiler / linker args space-proof

* Update ports/tensorflow-cc/README-macos

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/tensorflow-cc-config-shared.cmake.in

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/tensorflow-cc-config-shared.cmake.in

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-linux

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update ports/tensorflow-cc/README-macos

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* apply changes from code review

* maybe fix the config files

* rob.maynard CRs

* fix windows static lib naming for first part

* Update ports/tensorflow-cc/generate_static_link_cmd_windows.py

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* apply rob maynards 1st suggestion

* nicole CRs

* format/fix-compile

* fix missing string termination

* prefer IMPORTED_LOCATION over IMPORTED_LOCATION_RELEASE to have default fall-back

* hopefully fix the issue where no libraries are generated

* final stuff

Co-authored-by: Gehweiler <Joachim_Gehweiler@McAfee.com>
Co-authored-by: wangli28 <wangli28@beyondsoft.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-11-12 10:15:48 -08:00
nicole mazzuca
a94f261320
[vcpkg] Initial Registries: Part 2 MVP (#14153)
* [vcpkg wip] start implementation of registries pt. 2

* Remove the `ports` field of `VcpkgPaths`

This is an implementation detail, and so we want to make sure that
it's obvious that this is an internal detail; thus, we add a new function
`builtin_ports_directory()`,
which returns the directory where the builtin ports backing store is.

* continue WIP

* wip

* It works!

* format

* fix some issues

* switch from function static to DelayedInit
* fix lexically_normal for experimental::filesystem

* format

* fix missing include

* add STL notice

* whee error handling

* moar error handling!

* ignore extra files in registries

* formatting

* Billy CRs

* Update toolsrc/include/vcpkg/versiont.h

* fix add_filename test

* fix tests

* remove unused function add_filename
2020-11-09 11:15:31 -08:00
nicole mazzuca
2dce645f2a
[vcpkg] Add a definition for OVERLAY_TRIPLET_ENV (#14436)
This definition is needed in C++14/gcc 6 to compile.
2020-11-06 13:12:26 -08:00
Jared Irwin
5407dcdb00
[vcpkg] Add tab completion for Fish (#14206) 2020-11-02 17:25:43 -08:00
Eric Kilmer
0434ef70ae
[vcpkg] Remove hard-coded ApiKey from nuget push (#14202) 2020-10-29 15:37:46 -07:00
Billy O'Neal
1b1c17de82
[vcpkg baseline] [vs-yasm] Build yasm instead of downloading it to work around memory corruption bugs in yasm itself. (#14003) 2020-10-28 14:26:41 -07:00
Billy O'Neal
09a647a526
Delete use of vcpkg_test_cmake and vcpkg_common_functions. (#13065) 2020-10-28 14:18:07 -07:00
Billy O'Neal
ead8d6bad4
[vcpkg] Fix search for pwsh in vcpkgtools.xml. (#14271) 2020-10-28 01:30:18 -07:00
Billy O'Neal
a6a1722cfa
[vcpkg, jsonnet, openssl-uwp] Enable use of the system powershell-core if it is present. (#13805) 2020-10-27 20:48:14 -07:00
Victor Romero
af9d0701be
[vcpkg] Always use version-string in generator (#14262)
* Always use version-string in generator

* Fix formatting
2020-10-27 14:36:22 -07:00
Victor Romero
e9f8cc67a5
[vcpkg] Implement versions db generator (#13777)
* [vcpkg] Add script to generate ports versions history

* [vcpkg] Fix formatting

* Fetch port versions from commit ID

* Use global --x-json switch

* Use --no-checkout when cloning secondary instance

* Clone from local repository instead of from GitHub

* Use CmdLineBuilder to build git commands

* Use CmdLineBuilder and reduce repeated code

* Fetch version at baseline and code cleanup

* Guess version scheme from old CONTROL files

* Rename version db generator script

* Simplify x-history json output

* Use CONTROL/manifest parsers on x-history

* Use git-tree instaed of commit-id

* Remove 'ports' field from root object

* Clean up code

* More code cleanup

* Improve port version detection

* Improve generator logging

* Do not ignore parsing errors in CONTROL files

* PR review comments in Python script

* Fix subprocess.run() calls

* Make `canonicalize()` return error instead of terminating

* [vcpkg] Add tests for new test_parse_control_file paths

* Remove unnecessary std::move() calls

* Fix formatting

* Python formatting

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-26 10:24:30 -07:00
Cengizhan Pasaoglu
2f731d650f
Replace fwd header files to declarations (#13972) 2020-10-24 21:59:05 -07:00
ras0219
291df75125
[vcpkg] Add versions feature flag and version field manifest parsing (#14079)
* [vcpkg] Add `versions` feature flag and version field manifest parsing

* Introduce FeatureFlagSettings struct to more easily access feature flags throughout the program
* To avoid users accidentally starting to write "version" instead of "version-string" in their manifests, vcpkg explicitly detects and prevents usage of ports with schemes other than "String"
* Drive-by fix of copiable SourceControlFileLocation and an exposed use-after-move bug

This code is largely extracted from PR #13777

Co-authored-by: Victor Romero <romerosanchezv@gmail.com>

* [vcpkg] Address CR Comments. Fix test crash on Linux.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
2020-10-21 14:46:48 -07:00
ras0219
d1ba685e97
[vcpkg] Further JSON error improvements (#13399)
* [vcpkg] Split vcpkg/base/json.h into vcpkg/base/jsonreader.h

* [vcpkg] Extract definitions of Configuration-Deserializer (& friends)

These types are only used by VcpkgPaths during the initial parse.

* [vcpkg] Introduce levenshtein-distance suggestions for json errors

* [vcpkg] Fix regression in supports handling

* [vcpkg] Fix signed/unsigned mismatch

* [vcpkg] Address CR comments

* [vcpkg] Address CR comments

* Fix compiler error from merge conflict.

* [vcpkg] Change parameters of Reader::check_for_unexpected_fields to better match declaration

* [vcpkg] Improve errors from features set

* [vcpkg] Fix includes

* [vcpkg] Reuse code

* [vcpkg] Check the "name" field always to maximize error information

* [docs] Improve english phrasing in manifests.md

* [vcpkg] Correct docs link for manifests

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-12 10:22:47 -07:00
Cengizhan Pasaoglu
0dcc11ac22
[vcpkg] Use more forward declarations rather than definitions (#13623)
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-10-08 22:31:21 -07:00
Billy O'Neal
ab86954093
Always accept = or space as delimiters when parsing common command line parameters. (#13857)
Resolves #11456.
2020-10-07 10:31:42 -07:00
ras0219
d8a4e63690
[vcpkg] Avoid computing triplet ABIs for editable packages (#13446)
* [vcpkg] Avoid computing triplet ABIs for editable packages

* [vcpkg] Address PR comments

* [vcpkg-end-to-end-tests] Add tests for --no-binarycaching, binarycaching by default, and --editable

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-06 14:34:59 -07:00
ras0219
8fe1851e1e
[vcpkg] Enable reentrant vcpkg calls (#13751)
* [vcpkg] Enable recursive vcpkg calls

Via envvars VCPKG_COMMAND and VCPKG_X_RECURSIVE_DATA. Child processes can call vcpkg via "$VCPKG_COMMAND <args>" in limited internal circumstances.

* [vcpkg] Address CR comments

* [vcpkg] Do not move through Optional<&> into Optional<T>

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-10-06 12:06:26 -07:00
Alexander Neumann
c146787fd3
[vcpkg] fix ci #13790 (#13794)
* [vcpkg] fix ci #13790

* add extra space

* needs ""
2020-09-28 13:58:55 -07:00
Alexander Neumann
0c1c43742d
[vcpkg] add env var VCPKG_OVERLAY_TRIPLETS (#12790)
* [vcpkg] add env var VCPKG_OVERLAY_TRIPLETS

* shorten way to complicated doc

* run clang format

* Apply CR

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

* Apply CR2

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-28 07:51:16 -07:00
Francois Rivard
741c8cbecd
[vcpkg] Add compiler info to nuspec description (#13571)
* Add compiler info to nuspec description

* Run clang-format on some files

* Fix the unit tests

* [vcpkg] Clarify NuGet description to note 'CXX compiler'

* [vcpkg] Fix tests

Co-authored-by: frivard <frivard@coveo.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-27 18:18:27 -07:00
ras0219
ae82a554f8
[vcpkg] Skip all files named .DS_Store, no need to check if the file is regular (#13669) 2020-09-27 17:30:59 -07:00
Pratik Chowdhury
3031f78ddd
[vcpkg] Show Empty Object on vcpkg --list when used with --x-json (#13667)
Thanks to @strega-nil for recommending using Json::stringify over my initial idea of simply printing an empty object

Closes #13637
2020-09-24 11:39:24 -07:00
Billy O'Neal
5d33bd3d79
[vcpkg] Fix the case of current_path() before use on Windows. (#13537)
* Fix the case of current_path() before use on Windows.

This is a better solution than that I tried in https://github.com/microsoft/vcpkg/pull/13144 -- rather than trying to cannoicalize the path completely, which would destroy symlinks etc; this form  calls FindFirstFile on each path element to get the real case from the filesystem.

Fixes #13105.

(Note the wrong case in the CWD in the prompt, but the correct case in all the output:)

PS C:\DeV\vcPKG> .\vcpkg.exe install curl
Computing installation plan...
The following packages will be built and installed:
    curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows
  * zlib[core]:x86-windows
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x86-windows...
Starting package 1/2: zlib:x86-windows
Building package zlib[core]:x86-windows...
Using cached binary package: C:\Users\billy\AppData\Local\vcpkg/archives\c6\c61dd1bcc23348934c55f4ced77f1e4b0f353394.zipBuilding package zlib[core]:x86-windows... done
Installing package zlib[core]:x86-windows...
Installing package zlib[core]:x86-windows... done
Elapsed time for package zlib:x86-windows: 62.26 ms
Starting package 2/2: curl:x86-windows
Building package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows...
Could not locate cached archive: C:\Users\billy\AppData\Local\vcpkg/archives\9f\9fa16d473c9539e9ea7ab3922eff46618f3a4c4b.zip
-- Downloading 9d954e49bc.tar.gz...
-- Extracting source C:/Dev/vcpkg/downloads/curl-curl-9d954e49bce3706a9a2efb119ecd05767f0f2a9e.tar.gz
-- Applying patch 0002_fix_uwp.patch
-- Applying patch 0004_nghttp2_staticlib.patch
-- Applying patch 0005_remove_imp_suffix.patch
-- Applying patch 0006_fix_tool_depends.patch
-- Applying patch 0007_disable_tool_export_curl_target.patch
-- Applying patch 0009_fix_openssl_config.patch
-- Applying patch 0010_fix_othertests_cmake.patch
-- Applying patch 0011_fix_static_build.patch
-- Using source at C:/Dev/vcpkg/buildtrees/curl/src/767f0f2a9e-91d24adee1.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/curl-config
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/vcpkg-cmake-wrapper.cmake
-- Installing: C:/Dev/vcpkg/packages/curl_x86-windows/share/curl/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: C:\Users\billy\AppData\Local\vcpkg/archives\9f\9fa16d473c9539e9ea7ab3922eff46618f3a4c4b.zip
Building package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows... done
Installing package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows...
Installing package curl[core,non-http,schannel,ssl,sspi,winssl]:x86-windows... done
Elapsed time for package curl:x86-windows: 1.299 min

Total elapsed time: 1.33 min

The package curl:x86-windows provides CMake targets:

    find_package(CURL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl)

PS C:\DeV\vcPKG>

* Fix *nix builds.

* PR feedback.

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-09-22 20:16:24 -07:00
Billy O'Neal
0890b5a25f
[vcpkg] Add build scripts to produce signed vcpkg binaries. (#13508) 2020-09-21 17:27:35 -07:00
here-mikelley
35d7e4f0b3
[vcpkg] Keep sym links in Linux zip cache files (#13609)
* [vcpkg] Add '-y' to binary caching zip command on non-Windows platforms
2020-09-18 17:02:09 -07:00
ras0219
54a09ff4ef
[vcpkg-docs] Add docs/users/binarycaching.md (#13517)
* [vcpkg-docs] Add docs/users/binarycaching.md

* [vcpkg] Address PR Comments

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-15 18:04:12 -07:00
ras0219
11de106d37
[vcpkg] Add metrics for binarycaching feature (#13486)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-14 15:49:51 -07:00
nicole mazzuca
0fec1340eb
[vcpkg manifest] Add documentation! (#13488)
* [vcpkg docs] add docs for manifest files

These are just for the maintainer docs,
not user docs.

* [vcpkg] EBNF-ify platform expression parsing

this modifies nothing about what strings are accepted or rejected,
it just moves stuff around.

also adds tests.

* [vcpkg docs] add manifest mode example

* [wip] docs for augustin

also fix tabs

* [vcpkg manifest] switch to using maps for features

* Apply suggestions from code review

* un-experimentize format-manifest

* flesh out the user manifest mode docs

* CRs

* billy CRs

* final personal pass-thru
2020-09-14 15:07:02 -07:00
Billy O'Neal
180cae5b6d
Fix boostrap on VS2019. (#13489) 2020-09-11 14:27:41 -07:00
Billy O'Neal
6b97dbfce2
[vcpkg] Merge the vcpkg metadata uploader into the vcpkg binary (#13421) 2020-09-11 13:52:18 -07:00
martin-s
e8790f0f1a
[vcpkg] Fix issue #12745. (#12746) 2020-09-11 13:17:47 -07:00
Andrei Lebedev
645f316824
[vcpkg] improve s390x support (#13386)
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
2020-09-09 12:28:38 -07:00
ras0219
a35ddddac8
[vcpkg] Fix compilation on VS2015 (#13398)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-07 16:48:46 -07:00
ras0219
0d0a84694c
[vcpkg] Improve Json error messages (#12981)
* [vcpkg] Fix error reporting on json parse failure

* [vcpkg] Track manifest path for use in diagnostics

* [vcpkg] Use by-value for consumer API. Improve trailing comma diagnostic.

* [vcpkg] Track errors directly inside Json::Reader

* [vcpkg] Fixup use of .u8string()

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-09-07 15:50:20 -07:00
Vitaliy Didik
bfed76d917
[vcpkg] Fixed 'update' command output (#13378) 2020-09-06 11:54:00 -07:00
xyb
fdac1fc5aa
Add community triple arm64-linux and arm-linux. (#11880)
Verify the following command on both 32 bits and 64 bits OS on Raspberry pi 3.

    ./bootstrap-vcpkg.sh
    ./vcpkg install boost
2020-09-05 10:45:48 -07:00
dan-shaw
bd8af07898
[vcpkg] json format for search (#12509) 2020-09-05 07:35:40 -07:00
nicole mazzuca
4467eb334a
fix compile on g++ 6 (#13290) 2020-09-04 11:49:56 -07:00
ras0219
13f5a3d615
[vcpkg] Delay failures in vcpkg install until missing manifest requested (#13231) 2020-09-03 11:53:26 -07:00
nicole mazzuca
9740611cab
[vcpkg] Registries MVP (#13038) 2020-09-02 09:13:44 -07:00
ras0219
a0536798ee
[vcpkg] Implement 'repository' tag for NuGet binary caching (#13228)
This tag is required to correctly interface with GitHub Packages, because GHP shares a single remote for the entire organization and uses the repository field to associate a package with a particular repository.

This tag will be automatically generated if the default GitHub Actions environment variables are present (GITHUB_XYZ) or if the user defines VCPKG_NUGET_REPOSITORY.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-31 22:37:10 -07:00
nicole mazzuca
dea7d758c6
[vcpkg] Fix upgrade for port-version (#13069)
Co-authored-by: Billy Robert O'Neal <bion@microsoft.com>
2020-08-25 15:08:25 -07:00
Billy O'Neal
64cbded18e
[vcpkg] Fix #13094 by avoiding the comma operator. (#13117)
* Fix #13094 by avoiding the comma operator.

Drive-by remove unused parenthesis and remove macro inversion in metrics.cpp.
2020-08-25 14:49:27 -07:00
huahang
99b07566f4
[vcpkg] Fix build on old compilers. (#12950) 2020-08-24 18:14:38 -07:00
ras0219
5d331ed553
[vcpkg] Fix editable bug (#12910) 2020-08-22 01:27:40 -07:00
Phoebe
f6948aeb68
[vcpkg] fix hint message (#13043) 2020-08-20 22:44:42 -07:00
nicole mazzuca
dfa7dc4276
remove registries.h and fwd/registries.h... (#13017) 2020-08-19 21:12:55 -07:00
Phoebe
680b2928a1
[vcpkg] Update hint message (#12976) 2020-08-19 17:34:43 -07:00
nicole mazzuca
5e164e3dd2
[vcpkg] Add Forward Declarations (originally by @cngzhnp) (#12985)
Co-authored-by: cngzhnp <cengizhanpasaoglu@gmail.com>
2020-08-19 15:33:15 -07:00
Jack·Boos·Yu
0bb8780a60
[vcpkg] Use std::filesystem when Visual Studio is greater than 2015 (#12774)
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-18 09:23:01 -07:00
Ignacio Rodríguez
5dd2b6736b
[vcpkg] Remove unused function (#12837)
updating use of Span<>

after clang-format

two changes undone
2020-08-17 08:31:45 -07:00
ras0219
74ab3aae01
[vcpkg] Restore layering and purge unused ParagraphParseResult (#12897)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-14 11:05:18 -07:00
ras0219
0c2117845e
[vcpkg] Reduce dependencies and contents of vcpkgpaths.h (#12876)
* [vcpkg] Remove globally-constructed pre-defined Triplets from vcpkg.exe

The tool should be as triplet-agnostic as possible, which leaves little room for special, pre-defined names like this. However, tests do have use of them: moved into test assets.

* [vcpkg] Move predefined tools strings vcpkgpaths.h -> tools.h

* [vcpkg] Add forward declarations to vcpkgpaths.h to reduce header deps

* Merge from origin/master

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-14 09:53:04 -07:00
ras0219
0b5bbe30d9
[vcpkg] Lift --x-json to a global option, implement experimental x-package-info command (#12845)
* [vcpkg] Improve error reporting in vcpkg::Json

* [vcpkg] Lift --x-json to a common option

* [vcpkg] Address warnings-as-errors in VS2015

* [vcpkg] Remove unused local

* [vcpkg] Extract vcpkg::Install::get_cmake_usage

* [vcpkg] Implement vcpkg::serialize_ipv(ipv, paths)

* [vcpkg] Implement x-package-info to enable tooling

* [vcpkg] Fixup tests to respect new cli mode

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-13 18:36:33 -07:00
ras0219
c771e7bd07
[vcpkg] Fix resolution of default features when using Manifest mode (#12829)
* [vcpkg] Fix resolution of default features when using Manifest mode

During manifest mode, the dependencies in the manifest should be treated as explicitly specified -- curl[core] should not install curl's default features.

* [vcpkg] Improve error message when failed to parse manifest file

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-08-12 12:35:26 -07:00
nicole mazzuca
895678db8f
[vcpkg] Rewrite CMake build system to be more target-based (#12698)
* Change to using more target-focused cmake

* Add vcpkg_target_add_warning_options

* targetify the rest

* move the globs together

* Force-include pch.h on non-windows

* Rename VCPKGLIB_NON_PCH_* to VCPKGLIB_* in globs

* Remove `include "pch.h"`s

* missed a few lines

* fix build

* fix CMAKE_CURRENT_SOURCE_DIR

* try to fix VCPKG_REQUIRE_LINK_CXXFS

* change msvc-stl logic

* fix build

* CR

* clang-format

* Apply suggestions from code review

Thanks @ras0219!

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-08-10 12:32:34 -07:00
ras0219
481738beae
[vcpkg] Add vcpkg export to E2E tests. Enable E2E tests on all platforms. (#12198)
* [vcpkg] Add `vcpkg export` to E2E tests. Enable E2E tests on MacOS.

* [vcpkg] Fix export --raw --output-dir=/path/ by changing directory to new export root

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2020-08-10 10:22:51 -07:00
nicole mazzuca
40c8aab459
[vcpkg] Fix vs2015 build (#12789)
* move windows bootstrap directory

* fix paths

* actually fix the build

* fix path
2020-08-06 17:04:47 -07:00
Arves100
e79a4f3630
[vcpkg] Add missing check for x86 (#12678) 2020-08-05 14:00:21 -07:00
Alexander Neumann
4fb846bd44
[vcpkg] add environment variable VCPKG_OVERLAY_PORTS (#12640)
* [vcpkg] add environment variable VCPKG_OVERLAY_PORTS

* add documentation for VCPKG_OVERLAY_PORTS

* append env overlay instead of prepending to give explicitly listed overlays priority

* fix formating (manually)

* manually fixing formating

* improve help text

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>

Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
2020-08-05 11:21:42 -07:00
nicole mazzuca
1c2af99415
[vcpkg format-manifest] Add convert-control flag (#12471)
* [vcpkg format-manifest] initial convert-control attempt

TODO: manifest comments! we should keep $directives

* Finalize x-format-manifest

First, fix Json::parse -- "\c", for any c, was incorrectly parsed.
It would emit the escaped character, and then parse the character, so
that `\b` would give you { '\b', 'b' }.

Second, canonicalize source paragraphs as we're parsing them. This found
an error in qt5 -- The `declarative` feature was listed twice, and we
now catch it, so I removed the second paragraph.

Add PlatformExpression::complexity to allow ordering platform
expressions in a somewhat reasonable way.

Notes:
  - We allow `all_modules` as a feature name for back-compat with
    paraview
  - In order to actually convert CONTROL to vcpkg.json, we'd need to
    rename the qt5 `default` feature.
  - We need to add support for $directives in x-format-manifest

* fix qt5 port

* format

* fix compile

* fix tests for canonicalization

* Clean up code

* add error message for nothing to format

* add extra_info field

* add `const X&` overloads for `Object::insert[_or_replace]`

* fix compile

* simple CRs

* add tests

* format

* Fix mosquitto port file

also unmerge a line

* fail the tests on malformed manifest

* fix format_all

* fix coroutine port-version

* format manifests
2020-08-02 10:08:07 -07:00
nicole mazzuca
d6565e146c
[vcpkg manifest] add feature support (#12549) 2020-08-01 16:45:00 -07:00
Alexander Neumann
4ab218039c
[vcpkg] Add environment variable VCPKG_DEFAULT_BINARY_CACHE (#12423)
* [vcpkg] Add environment variable VCPKG_BINARY_CACHE

* apply clang-format

* change line ending

* Update toolsrc/src/vcpkg/binarycaching.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Remove comment

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* rename to VCPKG_DEFAULT_BINARY_CACHE

* apply clang format

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-08-01 13:59:33 -07:00
nicole mazzuca
f225ba822b
[vcpkg manifest] look at platform directives (#12548)
Fixes #12538
2020-08-01 13:46:26 -07:00
nicole mazzuca
54ec974afe
[vcpkg] Refactor commands 2: Electric Boogaloo (#12641)
* Add BasicCommand and VersionCommand

* Add ContactCommand

* test get_available_commands_type_c

* Change get_available_commands_type_c to return objects

* Add TripletCommand & InstallCommand

* Add SetInstalledCommand

* add linking tests

* Add CICommand

* Add remaining *Command objects

* Add tests for commands_type_a

* Move over to using const TripletCommand* for commands_type_a

* Add PathsCommand

* Add SearchCommand

* add test for commands_type_b

* add *Command for all type b commands

* Switch from function pointers to PathsCommand for everything

* format

* rename get_available_commands

also remove CommandType* types
2020-08-01 13:45:17 -07:00
nicole mazzuca
56fffbe49d
[vcpkg] Refactor Commands: Part 1 (#12585)
* Rename commands.exportifw.cpp -> export.ifw.cpp

* move DryRun from commands.h -> commands.interface.h

* move vcpkgcmdarguments and vcpkgpaths over to commands.interface.h

* move vcpkg::Commands::BuildExternal -> commands.buildexternal.h

* add commands.*.h for the commands.*.cpp

* move vcpkg::Commands::* to commands.*.h

* move vcpkg::Commands::{Hash,Fetch} to their own files

* change include commands.h -> commands.*.h in commands.*.cpp

* remove commands.*.h from commands.h

* join vcpkg::Commands::* into one namespace line

* fix vcxproj build
2020-07-31 11:53:42 -07:00
nicole mazzuca
37f7d69757
[vcpkg] Fix build on Windows 8.1 SDK (#12586) 2020-07-31 11:53:18 -07:00
Andrei Lebedev
077c0746be
[vcpkg] Add initial s390x support (#12534)
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
2020-07-23 14:16:01 -07:00
Alexander Neumann
9220d6fcb7
[vcpkg] Add NVTOOLSEXT_PATH to the env passthrough list (#12468)
(CMake uses it to search for the toolkit)
2020-07-21 15:45:40 -07:00
ras0219
44a5a4f4f2
[libmicrohttpd] Add platform.h to restricted header list. (#12455)
Fixes #12450

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-20 18:02:45 -07:00
Cristian Adam
f4bd64233a
Build fix with MinGW GCC 9.2.0 (#12084)
* Build fix with MinGW GCC 9.2.0

* Fix MinGW tripplets

Fixes #12065

* clang-format

* Fix unused read_symlink_implementation warning marked as error

read_symlink_implementation was used only in copy_symlink_implementation
when #if defined(_WIN32) && !VCPKG_USE_STD_FILESYSTEM  was true.

Removed the warning otherwise.

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2020-07-18 08:48:01 -07:00
dan-shaw
751fc627ef
[vcpkg] print list in json (#12179)
* print list command in json

* fix spacing

* remove reference

* review

* fixes based on review
2020-07-17 15:52:19 -07:00
nicole mazzuca
6bf5adff93
[vcpkg] Clean up command switch code (#12351)
* [vcpkg] Clean up command switch code

Make it more similar to the non-command switch code

* format

* fix the tests

* reformat

* format

* wip

* support x- for command options

* fix autocomplete

* format
2020-07-15 17:29:18 -07:00
Maksim Moisiuk
8254d3be9f
[vcpkg] implement copy_symlink working for non-elevated processes (#12400)
* [vcpkg] implement copy_symlink working for non-elevated processes

* [vcpkg] read_symlink Windows implementation

* [vcpkg] normalize_path on Windows only

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* remove normalization

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* Update toolsrc/src/vcpkg/base/files.cpp

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* use unique_ptr

* comments

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-07-15 15:13:54 -07:00
Maks Naumov
075a18b594
[vcpkg] Fix ParagraphParser::required_field() (#12429) 2020-07-15 14:42:45 -07:00
nicole mazzuca
d2620cf02b
[vcpkg formatting] Turn off DeriveLineEnding (#12368)
* [vcpkg formatting] Turn off DeriveLineEnding

* format

* Add newlines to the end of files

Since we're reformatting anyways
2020-07-14 08:50:19 -07:00
alcroito
f1fbee87db
[vcpkg] Fix iOS toolchain detection when using the iOS community triplets (#12361)
* [vcpkg ios] Fix detection of iOS toolchain (#6003)

Added mapping of CMAKE_SYSTEM_NAME == iOS to the bundled iOS toolchain
file.

This fixes the "Unable to determine toolchain to use for
triplet arm64-ios with CMAKE_SYSTEM_NAME iOS" error.

* [vcpkg ios] Set the CMake system processor for the simulator arches (#6003)

So it's consistent for all architectures.
2020-07-13 14:13:44 -07:00
ras0219
385fb52332
[vcpkg] Track hashes of cmake script helpers in consuming portfiles (#12254)
* [vcpkg] Track hashes of cmake script helpers in consuming portfiles

* [vcpkg] Format

* [vcpkg_find_acquire_program] Use cpkg_from_sourceforge for FLEX and BISON

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-13 13:43:39 -07:00
Maksim Moisiuk
713950c89b
[vcpkg] proper errorcheck during files installation (#12378)
* [vcpkg] proper errorcheck during files installation

* [vcpkg] move ec.clear to status_implementation
2020-07-13 12:13:55 -07:00
ras0219
7b3eea9481
[vcpkg] Add CMake heuristics for header-only libraries (#12386)
* [vcpkg] Add CMake heuristics for header-only libraries

* [vcpkg] Update toolsrc/src/vcpkg/install.cpp

Handles the case of:
```
triplet/lib/
triplet/lib/x.pc
```

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-07-13 12:07:52 -07:00
ras0219
52a9d9a9e4
[vcpkg] Enable binary caching by default (#12370)
* [vcpkg] Enable binary caching by default. Support `x-` migration.

Fix passing multiple copies of single parameter arguments.

* [vcpkg] Handle x- prefixes for general arguments

* [vcpkg] Fix #12285 and improve documentation of default binary cache path

* [vcpkg] Revert x- prefix homogenization for per-command arguments

* [vcpkg] Only use accelerated compiler detection for Windows Desktop + Ninja. Improve breadcrumbs for users encountering issues.

* [vcpkg] Fix compiler tracking not pre-downloading Ninja. Fix compiler tracking not looking in -err.log.

* [vcpkg] Update toolsrc/src/vcpkg/binarycaching.cpp

Co-authored-by: Billy O'Neal <bion@microsoft.com>

* [vcpkg] Format

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy O'Neal <bion@microsoft.com>
2020-07-13 12:03:53 -07:00
nicole mazzuca
0523b5eb57
[vcpkg formatting] Fix format regex (#12369)
* [vcpkg formatting] correct the header regexes

* format
2020-07-11 21:07:51 -07:00
nicole mazzuca
544f8e4593
[vcpkg build] fix #12355 (#12367) 2020-07-10 16:06:01 -07:00
nicole mazzuca
8a8d725b43
[vcpkg] Remove unnecessary work queue (#12350)
this work queue implementation was added at some point, and is no longer used anywhere.
Delete it as not used; if we need it again, we can grab it from the history
2020-07-09 16:04:59 -07:00
ras0219
a571c8ecc0
[vcpkg] Move default binary cache from $root/archives to user-wide directory (#12256)
* [vcpkg] Move default binary cache from `$root/archives` to user-wide directory

Teach nuget/nugetconfig binary sources to use read/write.

* [vcpkg] Reformat

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-09 15:14:05 -07:00
Alexander Neumann
513cac2f62
[cuda] correct env variables for newer cuda versions (#12244)
* [cuda] correct env variables for newer cuda versions

* Update ports/cuda/CONTROL

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
2020-07-09 14:20:45 -07:00
nicole mazzuca
3871d73349
[vcpkg manifests] fix some issues (#12227)
Fixes #12190
Fixes #12208
Fixes #12234
Fixes #12286
Fixes #12315
Fixes #12186
Fixes #12331
Fixes googleapis/google-cloud-cpp#4487
2020-07-09 12:32:31 -07:00
Jack·Boos·Yu
0c95d75d08
[vcpkg] Ignore dependencies not found errors when downloading mode (#12323) 2020-07-08 13:52:53 -07:00
ras0219
f9bdf13953
[vcpkg] Implement --editable (#12200)
--editable suppresses binary caching and source re-extraction for packages listed on the command line (similar to --head).

This fundamentally changes the port maintenance loop, so several example documents were updated. To avoid users having substantial changes suddenly destroyed by forgetting to pass --editable, "clean" sources have different extract locations.

The undocumented command `build` implies `--editable`.

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-07 13:53:19 -07:00
nicole mazzuca
6a41626eaf
[vcpkg] Format the C++ in CI (#11655)
* [vcpkg] Format the C++ in the CI

* format the C++

* CR
2020-07-06 16:45:34 -07:00
Billy O'Neal
8eda81cc4d
[opengl wincrypt winsock2] Use $ENV{WindowsSdkDir} instead of hard coding Windows SDK paths. (#12232)
Also delete vcpkg_get_program_files_32_bit because it was used in only one place.

Resolves #8288
Obsoletes #11421, #11261, #8329
2020-07-06 12:42:35 -07:00
Wolfgang Stöggl
6958919b40
[vcpkg] Update toolsrc VERSION to 2020.06.15 (#12263)
The currently released version of vcpkg is 2020.06.15
See commit: https://github.com/microsoft/vcpkg/commit/6185aa7

- Update also:
  vcpkg/toolsrc/VERSION.txt
2020-07-06 12:12:16 -07:00
ras0219
b37b1bae58
[vcpkg] Revert change which causes sources to be purged by default in vcpkg build (#12272)
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-06 11:53:25 -07:00
ras0219
e82e56f27f
[vcpkg] Remove use of std::variant and std::visit to fix VS2015. (#12242)
Fixes #12220

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-07-06 11:03:38 -07:00
Billy O'Neal
a28bfe7674
[vcpkg] Remove the tombstones and 'ignore' baseline concepts. (#12197)
This changes our PR builds to treat 'fail' in the ci.baseline.txt as 'skip' instead of using tombstones.

We currently have large numbers of spurious failures that get enshrined in PRs through no fault of a PR author, removing the tombstones concept will fix those by allowing the user to retry. This does mean we accept some risk of not detecting when a port is 'fixed', but that failure is reasonable for us to handle after we see it in CI, but that seems worth it given that it lets us get rid of the tombstone concept.

This also helps out the binary caching feature, because we don't have to figure out how to productize tombstones.
2020-07-02 20:20:07 -07:00