86 Commits

Author SHA1 Message Date
Billy O'Neal
d9b4acf02d
[vcpkg] Move CI cleaning back out of the 'ci' command into a separate command to restore cross-compilation preinstalls. (#11545) 2020-05-27 18:40:23 -07:00
Billy O'Neal
5504dfa7da
[vcpkg] Turn on tests and PREfast in CI, and fix tests to pass. (#11239)
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
2020-05-14 12:49:31 -07:00
nicole mazzuca
09af1e9b55
[vcpkg] Add initial JSON support (#10521)
* [vcpkg] Add initial JSON support

This adds a JSON parser, as well as the amount of unicode support
required for JSON parsing to work according to the specification. In the
future, I hope to rewrite our existing XML files into JSON.

Additionally, as a drive-by, we've added the following:

* add /wd4800 to pragmas.h -- this is a "performance warning", for when
  you implicitly convert pointers or integers to bool, and shouldn't be
  an issue for us.
* Switched Parse::ParserBase to read unicode (as utf-8), as opposed to
  ASCII
* Building again under VCPKG_DEVELOPMENT_WARNINGS, yay!
2020-04-17 18:16:20 -07:00
nicole mazzuca
556325a1f7
[vcpkg] Add x-set-installed command (#10817)
This command takes a list of ports, and causes the final state of the
installed directory to be as-if one ran the install on an empty
installed directory (removing any unnecessary packages).

This is especially useful with the new `--x-install-root` option, which
allows one to set the `installed` directory for vcpkg to use.

Additionally, as a drive-by, we do some `stdfs` clean-up and add a
`.is_feature()` member function to BinaryParagraph (as opposed to
checking for `.feature().empty()`, which is far less clear to read).

This feature is experimental.
2020-04-17 15:49:59 -07:00
Victor Romero
b9273daa20 Add binarycaching.(h|cpp) to project files 2020-02-12 14:25:47 -08:00
Robert Schumacher
f7fb56decd [vcpkg] Use CreateProcess on Windows. Improve EnvVars manipulation and handling. (#9897)
* [vcpkg] Rewrite process spawning on windows to always use CreateProcess, enabling better environment handling

* [vcpkg] Use environment cache to avoid calling vcvars multiple times

* [vcpkg] Increase buffer size while computing hashes

* [vcpkg] Remove unneeded cmd.exe wrapper process on all CreateProcess calls

* [vcpkg] Fix .vcxproj{,.filters}

* [vcpkg] Upgrade Ctrl-C state machine to handle multiple background processes.

* [vcpkg] Fix regression while launching metrics: 'start' can't be passed directly to CreateProcessW

* [vcpkg] Fix typo on non-Windows

* [vcpkg] Fix various uses of >NUL across the code

* [vcpkg] Fix various uses of >NUL across the code
2020-02-08 22:45:36 -08:00
Robert Schumacher
8db6db5dac
[vcpkg] Further parser improvements (#9895)
* [vcpkg] Consolidate several internal parsers together (packagespecs + logicexpression + control) and enhance error messages

* [vcpkg] Migrate Build-Depends parsing to new framework

* [vcpkg] Fix tests. Re-enable underscores in feature names due to libwebp[vwebp_sdl] -- todo: rename this feature and remove underscores.
2020-02-07 11:24:35 -08:00
Phil Christensen
e62d136128
[vcpkg] Add Supports: field. Use contents of triplets instead of names for dependency resolution. (#8601)
* remove unfinished "supports" tag

* extract "supports" from control files
But do nothing with the value

* Start `Supports` documentation

* Use Supports in a bunch of control files

I only tried matching the already existing logic in the portfile.cmake.

* Cmake var provider (#8)

* Cmake var provider (#9)

* fix windows build (#10)

* Add missing files to build

* Fix test (#11)

* adding hooks for cmake variables in expressions

* Adding hooks for 'supports' in CI test

* Fix test (#12)

* Add overrides to evaluation environment

* use "supported" tag in CI testing

* cleanup comment

* Fix issues with PR

* [var_provider] Get library linkage variables from triplet

* Fix compilation errors in tests

* Add unimplemented functions

* Fix unit tests part 1

* Fix issue when buildtrees dir does not exist

* Change binary output hash

* Fix handling of * feature

* Add core feature when using *

* Do not add Default-Features when installing 'core'

* [vcpkg] WIP. 6 failing tests.

* [vcpkg] WIP. 1 failing tests.

* [vcpkg] WIP. 0 failing tests.

* [vcpkg] Removed 'remove_graph'. 0 failing tests.

* [vcpkg] Removed 'install_graph'. 0 failing tests.

* [vcpkg] Remove AnyAction; replace with ActionPlan

* [vcpkg] Minor cleanup.

* [vcpkg][z3][qt5-connectivity][qt5-purchasing] Improve error messages while parsing. Fix a few trivial port issues.

* [vcpkg] Work around ICE with MSVC v140

* [vcpkg] Add purge on fail to decompress for CI

* [vcpkg] Fix parsing of nested parentheses in qualifiers

* [vcpkg] Fix Linux builds (explicit qualification in declaration)

* [vcpkg] Fix Build-Depends implying default features. Fix qualified dependencies regression.

* [mmx] Add to skip list and full rebuild -- mmx causes problems by installing 'sched.h'

* [libpqxx][mqtt-cpp] Prevent installing include/CMakeLists.txt

* [cppitertools] Fix installed include namespace (should be include/cppitertools)

* [libsoundio] Move headers into soundio/ subdirectory as per original cmake

* [ci.baseline] Temporarily skip charls due to conflict with dcmtk

* [vcpkg] Add restricted include files post build check -- bump global abi version

* [libsoundio] Hotfix stray line in portfile

* [vcpkg] Fix regression: CMake information was not being displayed for build-and-install actions

* [jsonnet] Fix installation of internal headers; use system nlohmann-json

* [grpc][upb] Teach grpc to use packaged upb. Add find_package(upb). Remove inappropriate upb features.

* [zfp] Move problematic 'include/bitstream.h' to 'include/zfp/bitstream.h'

* [x265] Bump control version to trigger rebuild after zfp conflict

* [akali] Disable parallel configure

* [dirent][dlfcn-win32][getopt-win32][pthreads] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [ci.baseline] Update baseline for improved upb support

* [tgui] Disable parallel configure

* [libiconv] Enable VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Disable parallel configure

* [vcpkg] Implement policy VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [aws-sdk-cpp] Fix amount of escaping semicolons -- Note: I do not know the root cause requiring this change

* [libodb-sqlite] Fix configuring into source directory

* [gettext] Grandfather into VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS

* [libodb] DISABLE_PARALLEL_CONFIGURE

* [vcpkg] Add 'config.h' and 'local.h' to restricted header list

* [mcpp] Remove unused and problematic include 'config.h' from installed files

* [teemo] Move installed headers into subdirectory to prevent conflicts with x265

* [ci.baseline] Update current OSX. Skip libmesh on all platforms due to heavy conflicts.

* [vcpkg] Add 'slice.h' as a restricted header

* [osg] Improve accuracy of dependencies (disable some, add some to Depends)

* [vcpkg] Skip invoking a subprocess for 0 specs in load_tag_vars

* [ci.baseline] Skip mongo-c-driver on osx due to flakiness

* [teemo] Fix incorrect include file read

* [osg] Fix dependency typo: glut -> freeglut

* [vcpkg] Recover some lost performance with the addition of vcpkg_get_tags.

A huge performance cost was loading the triplet files over and over; instead, we splice the sources into a macro and load it once, then just call that macro for each port.
Remove use of hashing because we aren't cross-process-safe anyway (global static will do instead).

* [vcpkg] Change Supports atom 'windows' to include UWP. Improve Supports field documentation.

* [vcpkg] Add docs for VCPKG_ENV_PASSTHROUGH and VCPKG_DEP_INFO_OVERRIDE_VARS

* Fix typo

Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-02-03 14:22:52 -08:00
Robert Schumacher
45f4b820e5
Merge branch 'master' into vcpkg_nuget 2019-11-22 09:47:40 -08:00
Victor Romero
84ba23ad33
[x-history] Prints CONTROL version history of a port 👻 (#7377)
* [port-history] Print port CONTROL version history

* Add commands.porthistory.cpp to VS project

* Get most recent commit for each version

* Apply clang-format

* Fix output format

* Rename command to x-history
2019-09-06 11:35:56 -07:00
Phil Christensen
22e0b9f376
improve logic expression evaluation (#7508)
* better logic expression evaluation

Improve the logic expression evaluation currently used when filtering
dependencies.

Biggest improvements:
+  Allow '|' operator
+  Support nested '()'
+  Allow whitespace
+  Useful error message for malformed expressions

Also changed names of types to RawParagraph when that is what the original author was using.
2019-08-02 21:37:49 -07:00
Robert Schumacher
2b8e225b2e
[vcpkg] Fix powershell font corruption bug (#7094)
* [vcpkg] Fix font corruption bug on Windows by downloading Powershell Core

* [vcpkg] Rename subtool to powershell-core

* [vcpkg] Add missing includes to project files
2019-07-06 13:29:46 -07:00
seanyen
e5a6c7a7a6 first check-in. 2019-06-19 16:36:47 -07:00
Robert Schumacher
b39b0899cb [vcpkg] Synchronize vcpkg-base with external repo (#5934) 2019-04-08 23:26:18 -07:00
Alexander Karatarakis
1f79c92eb0 Add command x-vsinstances 2018-09-18 20:55:35 -07:00
Robert Schumacher
d977ac231e [vcpkg] Remove vcpkg::Archives from vcpkg::base. Add vcpkg::Hash. 2018-07-09 07:06:29 -07:00
Robert Schumacher
802f51a142 [vcpkg] Split vcpkg::Commands::Fetch into backend and frontend 2018-07-09 06:29:37 -07:00
Alexander Karatarakis
c256ccf452 Introduce stringrange.h/cpp and visualstudio.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis
dbae3bfe56 Introduce archives.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis
3e76baa163 Introduce downloads.h/cpp 2018-06-19 23:07:31 -07:00
Alexander Karatarakis
0c0f68939e Introduce "vcpkg fetch" 2018-04-06 17:24:46 -07:00
Robert Schumacher
ebdb410394 [everything] Use -text to ensure consistent files across machines.
If you experience trouble, you can use the following to renormalize your local working directory:

git add --renormalize .
git reset .
git checkout .
2018-02-26 18:18:05 -08:00
Alexander Karatarakis
458dafc812 Add new struct: StringLiteral 2018-01-17 19:38:17 -08:00
Robert Schumacher
63a23cf0ca [vcpkg] Fix regressions in WSL build. 2017-12-14 14:31:28 -08:00
Robert Schumacher
eb1a7b099e [vcpkg] Fix regressions introduced with update command. Fixed issue with upgrade where it assumed downloads were not allowed. 2017-12-13 05:43:00 -08:00
Robert Schumacher
7a6ffdc75c Revert "[vcpkg-upgrade] Initial commit of upgrade command."
This reverts commit 803347a0c545687f6e6b8b3594b52d11435491b3.
2017-12-13 04:48:13 -08:00
Robert Schumacher
803347a0c5 [vcpkg-upgrade] Initial commit of upgrade command. 2017-12-13 02:22:52 -08:00
Robert Schumacher
71f8958a06 [vcpkg-contact-survey] Add monthly survey prompt 2017-12-01 16:08:09 -08:00
Robert Schumacher
e17de99599 [vcpkg] Re-layout all files using new organization scheme.
All filenames and directories are lowercase. Use dots for namespace separation.
2017-10-13 18:37:41 -07:00
Robert Schumacher
bb48a94606 Merge pull request #1896 from mariatav/dev/mariatav/autocomplete
Autocomplete: Command to enable tab completion
2017-10-06 14:42:34 -07:00
Maria Tavlaki
b3e06443ea Create stub autocomplete function 2017-10-02 01:23:55 +03:00
Konstantin Podsvirov
68b9c2d8b9 [vcpkg-export-ifw] Separate IFW loop
Separate IFW loop compatible with main export loop
Fixed mistakes in templates
Set current date to ReleaseDate tag
2017-09-28 00:21:26 +03:00
Konstantin Podsvirov
ba0cc3f1d7 WIP: Export IFW
Add export to binary crossplatform repository/installer
with GUI based on QtIFW:
http://doc.qt.io/qtinstallerframework/ifw-overview.html

For correct operation of these changes,
you must use the corrected QtIFW:
https://codereview.qt-project.org/#/c/203958
2017-09-28 00:21:25 +03:00
Alexander Karatarakis
e237682cad Introduce GlobalState struct 2017-08-24 16:29:40 -07:00
Robert Schumacher
8741214bf6 [vcpkg] Use unique_ptr<> for paragraphs. Post-parser phase rework. 2017-06-20 09:36:21 -07:00
Robert Schumacher
247a6cec90 [vcpkg] Improve diagnostics upon port load failure 2017-06-08 04:32:57 -07:00
Alexander Karatarakis
9a698d7088 Convert BuildType/Configuration Type into simple enum classes 2017-06-06 16:37:58 -07:00
Robert Schumacher
6be01a12db [vcpkg] Refactored to simplify BuildPolicies into BuildPolicy.
Restrict policy consumers to a simpler interface than std::map.
Rename vcpkg::getMachineType -> vcpkg::to_machine_type.
2017-05-24 00:44:00 -07:00
Robert Schumacher
20657a29ca [vcpkg] Split vcpkg::Commands::Build -> vcpkg::Build, vcpkg::Commands::BuildCommand 2017-05-01 17:24:54 -07:00
Alexander Karatarakis
75e8752cb9 Run clang-format over the headers. Remove stray Version.h/cpp. Fix location of VersionT.cpp 2017-04-27 18:59:57 -07:00
Alexander Karatarakis
92cf32d59a Add skeleton code for vcpkg export 2017-04-21 18:06:51 -07:00
Alexander Karatarakis
84ed167439 Introduce vcpkg depend-info command 2017-04-05 14:20:49 -07:00
Alexander Karatarakis
3f76b9e53d vcpkg_paths -> VcpkgPaths 2017-04-04 16:44:46 -07:00
Alexander Karatarakis
b766a005b7 version_t -> VersionT 2017-04-04 16:44:43 -07:00
Alexander Karatarakis
e051edfa10 vcpkg_cmd_arguments -> VcpkgCmdArguments 2017-04-04 16:44:43 -07:00
Alexander Karatarakis
7ee180ebdd paragraph_parse_result -> ParagraphParseResult 2017-04-04 16:44:41 -07:00
Alexander Karatarakis
83cde51334 package_spec_parse_result -> PackageSpecParseResult 2017-04-04 16:44:41 -07:00
Alexander Karatarakis
d1141e6054 package_spec -> PackageSpec 2017-04-04 16:44:41 -07:00
Alexander Karatarakis
1c1423014f opt_bool->OptBool 2017-04-04 16:44:41 -07:00
Alexander Karatarakis
604d0e58da cstring_view -> CStringView 2017-04-04 16:44:41 -07:00
Robert Schumacher
cb5cbc4d84 [vcpkg-env] Added internal 'env' command to help diagnose environment issues. 2017-04-03 10:44:29 -07:00
Robert Schumacher
b788c2b209 [vcpkg] ImmutableSortedVector is actually Mutable via move.
Use fmap instead of construct/insert.
Don't cache VS2015 instances since it is called once.
Add ParagraphDataMap alias.
2017-04-01 03:30:52 -07:00
Robert Schumacher
74f788d04f [vcpkg] Replace explicit bulk operations with fmap 2017-04-01 01:11:51 -07:00
Robert Schumacher
74fbd3acd5 [vcpkg] Dead code elimination 2017-04-01 01:10:15 -07:00
Alexander Karatarakis
1f567081e1 Fix issue in vcxproj.filters 2017-03-31 18:07:13 -07:00
Alexander Karatarakis
e074718209 Version_t 2017-03-31 18:01:13 -07:00
Alexander Karatarakis
d3a54b0042 Place cXstring_view in a separate header 2017-03-31 17:53:02 -07:00
Robert Schumacher
4792821a1d Move Environment:: functions into vcpkg_paths. Remove Environment.h/cpp 2017-03-31 17:40:08 -07:00
Alexander Karatarakis
e9ca24b219 Rename expected.h to vcpkg_expected.h 2017-03-31 16:33:10 -07:00
Alexander Karatarakis
d2bab3c370 Rework Paragraph parsing error handling. Add single paragraph functions 2017-03-27 12:43:14 -07:00
Alexander Karatarakis
8e8debc848 Put LineInfo in separate h/cpp 2017-03-13 17:56:21 -07:00
Alexander Karatarakis
47b53b9015 Add lazy.h 2017-03-10 17:04:28 -08:00
Alexander Karatarakis
43eb772d94 Change Info::email() to Contact::email(). Remove vcpkg_info.h/cpp 2017-02-17 20:13:36 -08:00
Alexander Karatarakis
e16084cc8d Rename Stopwatch.h/cpp to vcpkg_Chrono.h/cpp 2017-02-16 16:32:36 -08:00
Alexander Karatarakis
c432b66034 Introduce ci command: builds all packages of a triplet 2017-02-15 18:06:06 -08:00
Alexander Karatarakis
47a4bff2d1 Add vcpkg_Enums 2017-02-10 14:00:11 -08:00
Alexander Karatarakis
d36a1b7cb0 Remove OutdatedDynamicCrt enum. Replace with vector<struct> 2017-02-07 22:57:37 -08:00
Alexander Karatarakis
fdc885fb06 Fix filename 2017-02-01 18:20:49 -08:00
Alexander Karatarakis
1d34facb84 Split OutdatedDynamicCrt into separate h/cpp 2017-02-01 17:54:49 -08:00
Alexander Karatarakis
0a0a17b7f9 Split BuildType into separate h/cpp 2017-02-01 17:54:48 -08:00
Alexander Karatarakis
4aef2485b9 Split ConfigurationType into separate h/cpp 2017-02-01 17:54:48 -08:00
Alexander Karatarakis
7a04aff33e Split LinkageType into separate h/cpp 2017-02-01 17:54:48 -08:00
Alexander Karatarakis
9086fcebdf Rename files in PostBuildLint namespace 2017-02-01 17:54:48 -08:00
Alexander Karatarakis
4599997869 Introduce BuildPolicies (not used by the post_build checks yet) 2017-02-01 11:42:41 -08:00
Alexander Karatarakis
bd1a10e5b9 Enhance the opt_bool type 2017-02-01 11:42:41 -08:00
Alexander Karatarakis
8de71af4bd Introduce "optional" alias 2017-01-30 21:52:44 -08:00
Alexander Karatarakis
050e4a0f7a Introduce precompiled headers 2017-01-30 21:52:42 -08:00
Alexander Karatarakis
f28125f013 Remove vcpkgcommon.vcxproj. Merge it into vcpkglib.vcxproj 2017-01-25 19:50:56 -08:00
Alexander Karatarakis
59be40a100 Rename vcpkg.h/cpp to vcpkglib.h/cpp 2017-01-25 19:32:50 -08:00
Alexander Karatarakis
b825345709 Move all sources (except main.cpp) from vcpkg.vcxproj to vcpkglib.vcxproj 2017-01-25 19:14:53 -08:00
Alexander Karatarakis
a026f0d10c Remove vcpkgmetrics.vcxproj. Merge it into vcpkglib.vcxproj 2017-01-25 19:07:18 -08:00
Alexander Karatarakis
6e9d17f73c Introduce BUILD_INFO file. Significant change in the way static/dynamic is
handled
2016-11-08 14:12:49 -08:00
Alexander Karatarakis
c91d8e41b6 Introduce vcpkg_info.h/cpp 2016-11-07 17:31:41 -08:00
Alexander Karatarakis
058cbaf459 Merge lib.cpp and vcpkg.cpp -> vcpkg.cpp 2016-11-07 16:10:41 -08:00
Alexander Karatarakis
a721db2c1f Refactor: create new Paragraphs.h/cpp 2016-11-07 16:06:36 -08:00
Alexander Karatarakis
ccca198c1b Initial commit 2016-09-18 20:54:03 -07:00