Commit Graph

15 Commits

Author SHA1 Message Date
nicole mazzuca
1d8f0acc9c
[vcpkg manifest] Manifest Implementation (#11757)
==== Changes Related to manifests ====

* Add the `manifests` feature flag
  * This only says whether we look for a `vcpkg.json` in the cwd, not
    whether we support parsing manifests (for ports, for example)
* Changes to the manifests RFC
  * `"authors"` -> `"maintainers"`
  * `--x-classic-mode` -> `-manifests` \in `vcpkg_feature_flags`
  * reserve `"core"` in addition to `"default"`, since that's already
    reserved for features
  * Add a small helper note about what identifiers must look like
  * `<license-string>`: SPDX v3.8 -> v3.9
  * `"feature"."description"` is allowed to be an array of strings as well
  * `"version"` -> `"version-string"` for forward-compat with versions
    RFC
* Add the `--feature-flags` option
* Add the ability to turn off feature flags via passing
  `-<feature-flag>` to `VCPKG_FEATURE_FLAGS` or `--feature-flags`
* Add CMake toolchain support for manifests
  * Requires either:
    * a feature flag of `manifests` in either `Env{VCPKG_FEATURE_FLAGS}`
      or `VCPKG_FEATURE_FLAGS`
    * Passing the `VCPKG_ENABLE_MANIFESTS` option
  * The toolchain will install your packages to
    `${VCPKG_MANIFEST_DIR}/vcpkg_installed`.
* Add MSBuild `vcpkg integrate install` support for manifests
  * Requires `VcpkgEnableManifest` to be true
* `vcpkg create` creates a port that has a `vcpkg.json` instead of a
  `CONTROL`
* argparse, abseil, 3fd, and avisynthplus ports switched to manifest
  from CONTROL
* Add support for `--x-manifest-root`, as well as code for finding it if
  not passed
* Add support for parsing manifests!
* Add a filesystem lock!

==== Important Changes which are somewhat unrelated to manifests ====

* Rename `logicexpression.{h,cpp}` to `platform-expression.{h,cpp}`
* Add `PlatformExpression` type which takes the place of the old logic
  expression
  * Split the parsing of platform expressions from checking whether
    they're true or not
  * Eagerly parse PlatformExpressions as opposed to leaving them as
    strings
* Add checking for feature flag consistency
  * i.e., if `-binarycaching` is passed, you shouldn't be passing
    `--binarysource`
* Add the `Json::Reader` type which, with the help of user-defined
  visitors, converts JSON to your internal type
* VcpkgArgParser: place the switch names into a constant as opposed to
  using magic constants
  * In general update the parsing code so that this ^ works
* Add `Port-Version` fields to CONTROL files
  * This replaces the existing practice of
    `Version: <my-version>-<port-version>`

==== Smaller changes ====
* small drive-by cleanups to some CMake
  * `${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}` ->
    `${CURRENT_INSTALLED_DIR}`
  * Remove `-analyze` when compiling with clang-cl, since that's not a
    supported flag (vcpkg's build system)
  * Add a message about which compiler is detected by vcpkg's build
    system machinery
* Fix `Expected::then`
* Convert `""` to `{}` for `std::string` and `fs::path`, to avoid a
  `strlen` (additionally, `.empty()` instead of `== ""`, and `.clear()`)
* Add `Strings::strto` which converts strings to numeric types
* Support built-in arrays and `StringView` for `Strings::join`
* Add `operator<` and friends to `StringView`
* Add `substr` to `StringView`
* SourceParagraphParser gets some new errors
2020-06-30 10:40:18 -07:00
Alexander Neumann
3b275f5138
[qt5-base] fix static init fiasco and fix debug dll's not being copied (#12153) 2020-06-29 16:33:19 -07:00
Billy O'Neal
4fb2256085
[vcpkg] Allow CI to pass in all relevant directories and remove use of symbolic links (#11483) 2020-06-03 19:31:28 -07:00
Billy O'Neal
7db401cb1e
[qt5] Add -j to make to parallelize on Linux and MacOS (#11111) 2020-05-04 15:37:57 -07:00
Alexander Neumann
28ab0b15cd
[Qt5] Update qt to 5.12.8 (#10749)
* make qt5 all features and add the missing qt modules

* fix control

* qt5 webengine enviromnent setup

* copy qtminimal plugin to tools

* add opengles3 option for testing

* [qt5-imageformats] freeglut is not a dependency on osx

* [qt5-base] fontconfig can require iconv on linux and osx

* include the jasper fix to get CI coverage?

* trying to get ci coverage for qt on osx

* Revert "trying to get ci coverage for qt on osx"

This reverts commit 8b9b188839.

* apply the correct ci hack

* fix wrapper to include macosx debug suffix

* update baseline

* first try to fix the Qt5 cmake configs at the root.

* fix missing backslash

* fix plugin patch

* fix qt config patch

* remove 90% of fixcmake.py

* update baseline

* experimental removal of fixcmake.py and dll copying into tools/qt5/bin

* fix experimental dll copying.

* fix static windows builds

* fix static builds

* fix plugin copy

* add quotes around configuration to make it work

* remove dll debug messages

* note about the cmake fix

* revert fontconfig changes on linux. Make qt.conf relative and not absolute

* make qt.conf relative

* trying to fix ogre osx ci regression

* fix silly path error

* Revert "trying to fix ogre osx ci regression"

This reverts commit 708d8250d6.

* add ogre:x64-osx=fail to CI baseline

* retry on osx

* fix configure error. since in qt5-base everything is in the package directory and not in the installed

* revert change to ci.baseline

* update ci baseline

* update Qt Control fields

* update qt hashes to 5.12.7

* update baseline
update missing hashes
update empty include/packages
add info for placeholder ports not yet correctly working (e.g. qt5-wayland)

* fix linux qt targets not having debug properties.

* remove most of the wrapper

* actual forgot to commit the prl parser

* fix the config a bit differently. have to check linux configs again

* add xlib patch.

* make qt-base fail to get logs on linux

* Need logs from qt5-base

* update versions I missed

* ws change

* lets see if this is enough to make qt5-x11extras happy

* add upstream patch.

* add newline to patch

* ws change to trigger rebuild and maybe get logs on osx failure

* need generated cmakescripts to check linkage.

* rename cmake files to end on .log so that i can inspect them after CI failure

* fix patch

* make qt run

* androidextras only supports android

* qt5-doc will only be build on linux

* ws ci trigger due to download failure

* WS to retrigger CI due to download failure

* add code for debug tools

* lets see if we can do it with only the release tools

* update baseline

* fix create link error on linx

* update baseline

* revert changes which tried to use release tools only

* fix dependencies

* add debug qt.conf

* add another copyright install

* qtdoc does not have any include files

* fix wrong copy pasta

* update latest port hashes.

* make the patches versions dependent

* cleanup qt5 control a bit

* update qt5-base control for ci run to use latest

* fix patches for latest

* forgot to commit the portfile changes

* fix imageformat dependencies for latest qt

* update last hash

* fix translations dependencies

* get cmake scripts from CI

* new patch for creating correct configs

* patch precompiled headers away from qt5-webengine

* fix patch for 5.12.7. (Patch was for 5.14.1)

* trigger CI rebuild

* add simple gl path to fix the chormium build error

* comment out debug message from prl parser

* bump control

* update webengine control

* update CI to skip webengine.

* update baseline

* ws change to osg-qt

* remove kd-soap from faillist

* reset ci baseline to upstream/master

* update baseline

* fix osg-qt?

* skip ms-angle on osx and linux since the normal angle port should be used!

* update ci baseline

* try adding fontconfig manually

* update ci baseline to remove osg-qt for the time being

* remove manual library.

* remove wrapper and get plugin info also from linux and osx

* allow build of complete qt

* fix missing parameter in populate plugin.

* need more info from CI

* fix foreach CI loop

* comment out CI code colllection to make a full qt5 ci run

* fix qt5-imageformats regression on linux

* update baseline

* - add patch to find the debug library
- manually fix EGL path in Qt5GuiConfigExtras.cmake

* bump control

* update hashes to 5.14.2

* comment out messages for debugging

* bump version in control

* fix create cmake patch

* add qtmain path corrections for single configuration build.

* fix escaping of . in regex

* remove one to many \\

* remove latest as a default feature

* reenable messages to debug osg-qt issue on osx.

* small cmake options details.
might need to patch cmakelists.txt if this is not working

* remove unnecessary comment

* make prl parser silent again.

* remove canvas3d from the default features since it has been deprecated and will be removed in the future

* fix some remaining absolute paths.

* update qt to 5.12.8

* deactivate qt update script

* removed merged patch

* remove a trailing ws and fix the mqtt hash which was missing before

* revert some ws changes

* fix version numbers in qt5 metaport
2020-04-24 15:04:51 -07:00
Alexander Neumann
bb7ccc4b90
[Qt[latest]] Update to 5.14.2 (#10644)
* make qt5 all features and add the missing qt modules

* fix control

* qt5 webengine enviromnent setup

* copy qtminimal plugin to tools

* add opengles3 option for testing

* [qt5-imageformats] freeglut is not a dependency on osx

* [qt5-base] fontconfig can require iconv on linux and osx

* include the jasper fix to get CI coverage?

* trying to get ci coverage for qt on osx

* Revert "trying to get ci coverage for qt on osx"

This reverts commit 8b9b188839.

* apply the correct ci hack

* fix wrapper to include macosx debug suffix

* update baseline

* first try to fix the Qt5 cmake configs at the root.

* fix missing backslash

* fix plugin patch

* fix qt config patch

* remove 90% of fixcmake.py

* update baseline

* experimental removal of fixcmake.py and dll copying into tools/qt5/bin

* fix experimental dll copying.

* fix static windows builds

* fix static builds

* fix plugin copy

* add quotes around configuration to make it work

* remove dll debug messages

* note about the cmake fix

* revert fontconfig changes on linux. Make qt.conf relative and not absolute

* make qt.conf relative

* trying to fix ogre osx ci regression

* fix silly path error

* Revert "trying to fix ogre osx ci regression"

This reverts commit 708d8250d6.

* add ogre:x64-osx=fail to CI baseline

* retry on osx

* fix configure error. since in qt5-base everything is in the package directory and not in the installed

* revert change to ci.baseline

* update ci baseline

* update Qt Control fields

* update qt hashes to 5.12.7

* update baseline
update missing hashes
update empty include/packages
add info for placeholder ports not yet correctly working (e.g. qt5-wayland)

* fix linux qt targets not having debug properties.

* remove most of the wrapper

* actual forgot to commit the prl parser

* fix the config a bit differently. have to check linux configs again

* add xlib patch.

* make qt-base fail to get logs on linux

* Need logs from qt5-base

* update versions I missed

* ws change

* lets see if this is enough to make qt5-x11extras happy

* add upstream patch.

* add newline to patch

* ws change to trigger rebuild and maybe get logs on osx failure

* need generated cmakescripts to check linkage.

* rename cmake files to end on .log so that i can inspect them after CI failure

* fix patch

* make qt run

* androidextras only supports android

* qt5-doc will only be build on linux

* ws ci trigger due to download failure

* WS to retrigger CI due to download failure

* add code for debug tools

* lets see if we can do it with only the release tools

* update baseline

* fix create link error on linx

* update baseline

* revert changes which tried to use release tools only

* fix dependencies

* add debug qt.conf

* add another copyright install

* qtdoc does not have any include files

* fix wrong copy pasta

* update latest port hashes.

* make the patches versions dependent

* cleanup qt5 control a bit

* update qt5-base control for ci run to use latest

* fix patches for latest

* forgot to commit the portfile changes

* fix imageformat dependencies for latest qt

* update last hash

* fix translations dependencies

* get cmake scripts from CI

* new patch for creating correct configs

* patch precompiled headers away from qt5-webengine

* fix patch for 5.12.7. (Patch was for 5.14.1)

* trigger CI rebuild

* add simple gl path to fix the chormium build error

* comment out debug message from prl parser

* bump control

* update webengine control

* update CI to skip webengine.

* update baseline

* ws change to osg-qt

* remove kd-soap from faillist

* reset ci baseline to upstream/master

* update baseline

* fix osg-qt?

* skip ms-angle on osx and linux since the normal angle port should be used!

* update ci baseline

* try adding fontconfig manually

* update ci baseline to remove osg-qt for the time being

* remove manual library.

* remove wrapper and get plugin info also from linux and osx

* allow build of complete qt

* fix missing parameter in populate plugin.

* need more info from CI

* fix foreach CI loop

* comment out CI code colllection to make a full qt5 ci run

* fix qt5-imageformats regression on linux

* update baseline

* - add patch to find the debug library
- manually fix EGL path in Qt5GuiConfigExtras.cmake

* bump control

* update hashes to 5.14.2

* comment out messages for debugging

* bump version in control

* fix create cmake patch

* add qtmain path corrections for single configuration build.

* fix escaping of . in regex

* remove one to many \\

* remove latest as a default feature

* reenable messages to debug osg-qt issue on osx.

* small cmake options details.
might need to patch cmakelists.txt if this is not working

* remove unnecessary comment

* make prl parser silent again.

* remove canvas3d from the default features since it has been deprecated and will be removed in the future

* remove ws change

* remove newline and ws

* trigger ci test

* revert 199a3ef92f

* add messages to qt5-webengine and adjust baseline

* add jpeg and zlib to JASPER_LIBS

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2020-04-23 21:19:45 -07:00
Alexander Neumann
941d546454
[qt5-base, qt5-imageformat] fix issues on osx (#9705)
* [qt5-imageformats] freeglut is not a dependency on osx

* [qt5-base] fontconfig can require iconv on linux and osx

* include the jasper fix to get CI coverage?

* trying to get ci coverage for qt on osx

* Revert "trying to get ci coverage for qt on osx"

This reverts commit 8b9b188839.

* apply the correct ci hack

* fix wrapper to include macosx debug suffix

* update baseline

* first try to fix the Qt5 cmake configs at the root.

* fix missing backslash

* fix plugin patch

* fix qt config patch

* remove 90% of fixcmake.py

* update baseline

* experimental removal of fixcmake.py and dll copying into tools/qt5/bin

* fix experimental dll copying.

* fix static windows builds

* fix static builds

* fix plugin copy

* add quotes around configuration to make it work

* remove dll debug messages

* note about the cmake fix

* revert fontconfig changes on linux. Make qt.conf relative and not absolute

* make qt.conf relative

* trying to fix ogre osx ci regression

* fix silly path error

* Revert "trying to fix ogre osx ci regression"

This reverts commit 708d8250d6.

* add ogre:x64-osx=fail to CI baseline

* retry on osx

* fix configure error. since in qt5-base everything is in the package directory and not in the installed

* revert change to ci.baseline

* update ci baseline

* bump control

* update baseline

* ws change to osg-qt

* reset ci baseline to upstream/master

* update baseline

* fix osg-qt?

* skip ms-angle on osx and linux since the normal angle port should be used!

* update ci baseline

* try adding fontconfig manually

* update ci baseline to remove osg-qt for the time being

* remove manual library.
2020-04-09 17:08:01 -07:00
Alexander Neumann
919856ad45
fix some remaining absolute paths. (#10746) 2020-04-08 12:33:54 -07:00
Phoebe
cbaafe76d6
Fix ci baseline (#10390)
* Rebuild failed ports on ci baseline

* Remove passed port osg-qt:x64-linux from ci baseline file

* Add mirrors for qt5
2020-03-19 10:33:59 -07:00
Alexander Neumann
f8165f7270 [qt5-base] Fix Qt5 linux build and be a bit less flaky in CI (#9260)
* Fix static qt5 builds and ignore system qmake
closes #9234 and #9239

* fix angle conflict and icu dependency

* add egl-registry as a dependency

* remove space

* adding spaces resolved the problem

* move files only if they exist

* Update the Wrapper to use the Postgres target

fixes some observed linkage issues

* update baseline

* add fontconfig on linux so CI is less flaky in a full rebuild

* fix linkage dependent qt5-imageformats libs

* Fix Wrapper for Linux and add other platform libs to Qt5::Core

* fix plugin properties in cmake files

* fix cmake files.

* fix missing plugin qminimal deployment into tools dir

* change wrapper slightly

* UNIX also means APPLE so it needs to be excluded

* fix the static windows build

* mark the parts of fixcmake which require further work to work with single configuration builds

* Update ci.baseline.txt

make qt5-tools pass for CI testing

* fix last regression

* break auto fontconfig in configure script to fix qt5-tools

* update baseline

* enable verbose to debug ci

* try to help it instead of breaking it

* completly link icu

* try to fix fontconfig configure

* fix configure call. cannot be called with a list!

* remove invalid line from patch

* force icu and reduce the required icu libs according to the configure script

* fix icu linkage

* add more icu dependencies and names for windows

* add more icu libs. Seems like all are needed

* fix typo

* print icu libs in debug

* check releasenames

* try again

* change link order

* add icu to wrapper

* fix typo

* patch icu configure for static windows builds

* add other icu libraries to the icu patch

* fix icu in x64-windows-static

* update baseline. VTK builds in local WSL so it should work in CI

* update VTK control to force rebuild

* remove qt5-tools=pass from baseline

* remove qcustomplot:x64-linux=fail from baseline

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
2020-01-06 12:36:51 -08:00
Antonio Artigas
97c1aa173b Fix typo in qt5-base/cmake/install_qt.cmake (#8417) 2019-10-02 09:56:44 -07:00
Alexander Neumann
7ca4891fa4 [Qt] feature latest to build 5.13.1 (#8212)
* Introduce latest feature to build Qt 5.13.1
2019-09-23 14:47:08 -07:00
Alexander Neumann
86a5b6fd7b [Qt] Fix static builds of qt5-imageformats (#8222)
* forward extra arguments to vcpkg_configure_qmake from submodules
* make image format dependent on tiff and libwebp
* make tools dependent on imageformat
* build options must be passed a bit different then normal qmake options
* add the required dependencies
* a new dependency discovered in qt5-declarative
* need webpdemux also
* qt5-declarative is dependent on imageformats so we can drop it here
* remove empty qt.conf if it exists. closes #8180
* add all recommended dependencies as dependencies in control.
2019-09-20 14:06:43 -07:00
Alexander Neumann
9b4b5f4ce7 [Qt] update to 5.12.5 (#8159) 2019-09-16 12:37:55 -07:00
Alexander Neumann
96f4487c77 [Qt] Update to 5.12.4 (#7667)
* update to 5.12.4
* removed port qt5-modularscripts and split it functionality into more functions into qt5-base
* added qt_port_hashes.cmake for simpler upgrade.
* added optional VCPKG_QT_HOST_MKSPEC and VCPKG_QT_TARGET_MKSPEC to select QTs build mkspecs from a triplet
* qt_<config>.conf are now copied from the build dir instead from the port dir
* fixed freetype dependencies.
* cleanup of vcpkg_qmake scripts. No strange/unclear replacements anymore.
* introduced vcpkg_buildpath_length_warning
* changed directory layout of the qt5 installation executables and mkspecs a bit.
2019-09-12 10:07:21 -07:00