diff --git a/README.md b/README.md
index 09132a224ba..c16483955fa 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# Vcpkg ![](https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5261/badge)
-
+
## Overview
Vcpkg helps you get C and C++ libraries on Windows. This tool and ecosystem are currently in a preview state; your involvement is vital to its success.
@@ -31,6 +31,8 @@ For CMake projects, simply include our toolchain file. See our [using a package]
## Examples
See the [documentation](docs/index.md) for specific walkthroughs, including [using a package](docs/examples/using-sqlite.md) and [adding a new package](docs/examples/packaging-zlib.md).
+Our docs are now also available online at ReadTheDocs: !
+
See a 4 minute [video demo](https://www.youtube.com/watch?v=y41WFKbQFTw).
## Contributing
diff --git a/docs/index.md b/docs/index.md
index 9b279baf0e8..3fa5784e997 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -13,6 +13,7 @@ Vcpkg helps you get C and C++ libraries on Windows. This tool and ecosystem are
### User Help
- [Integration with build systems](users/integration.md)
+- [Triplet files](users/triplets.md)
### Maintainer help
diff --git a/docs/maintainers/control-files.md b/docs/maintainers/control-files.md
index 1cb444df37e..e446fe6fa7e 100644
--- a/docs/maintainers/control-files.md
+++ b/docs/maintainers/control-files.md
@@ -1,16 +1,16 @@
-## `CONTROL` files
-Each port has some static metadata in the form of a `CONTROL` file. This file uses the same rough syntax as and a subset of the fields from [the Debian `control` format][debian].
+# CONTROL files
+Each port has some static metadata in the form of a `CONTROL` file. This file uses the same syntax and a subset of the fields from [the Debian `control` format][debian].
-Fields are case-sensitive.
+Field names are case-sensitive.
[debian]: https://www.debian.org/doc/debian-policy/ch-controlfields.html
-### Recognized fields
+## Recognized fields
-#### Source
+### Source
The name of the port.
-#### Version
+### Version
The port version.
This field should be an alphanumeric string which may also contain `.`, `_`, or `-`. No attempt at ordering versions is made; all versions are treated as bitstrings and are only evaluated for equality.
@@ -22,15 +22,15 @@ Example:
Version: 1.0.5-2
```
-#### Description
+### Description
A description of the library
The first sentence of the description should concisely describe the purpose and contents of the library. Then, a larger description including the library's "proper name" should follow.
-#### Maintainer
+### Maintainer
Reserved for future use.
-#### Build-Depends
+### Build-Depends
The list of dependencies required to build and use this library.
Example:
diff --git a/docs/users/integration.md b/docs/users/integration.md
index 38332f1aadd..1e52adb881a 100644
--- a/docs/users/integration.md
+++ b/docs/users/integration.md
@@ -5,11 +5,14 @@ Vcpkg offers many ways to integrate into your build so you can do what's right f
- [`integrate` command](#integrate)
- [`export` command](#export)
+Each integration style has heuristics to deduce the correct [triplet][]. This can be overridden using [a common method](#triplet-selection) based on your buildsystem.
+
### Integrate Command
These link your project(s) to a specific copy of Vcpkg on your machine so any updates or new package installations will be instantly available for the next build of your project.
+
#### User-wide for MSBuild (Recommended for Open Source MSBuild projects)
```no-highlight
vcpkg integrate install
@@ -82,4 +85,37 @@ Each of these have the same layout, which mimics the layout of a full vcpkg:
Additionally, NuGet packages will contain a `build\native\vcpkg.targets` that integrates with MSBuild projects.
-Please also see our [blog post](https://blogs.msdn.microsoft.com/vcblog/2017/05/03/vcpkg-introducing-export-command/) for additional examples.
\ No newline at end of file
+Please also see our [blog post](https://blogs.msdn.microsoft.com/vcblog/2017/05/03/vcpkg-introducing-export-command/) for additional examples.
+
+
+### Triplet selection
+Every integration mechanism besides manually adding the folders will deduce a [triplet][] for your project as one of:
+- x86-windows
+- x64-windows
+- x86-uwp
+- x64-uwp
+- arm-uwp
+
+#### With MSBuild
+You can see the automatically deduced triplet by setting your MSBuild verbosity to Normal or higher:
+
+> *Shortcut: Ctrl+Q "build and run"*
+>
+> Tools -> Options -> Projects and Solutions -> Build and Run -> MSBuild project build output verbosity
+
+To override the automatically chosen [triplet][], you can specify the MSBuild property `VcpkgTriplet` in your `.vcxproj`. We recommend adding this to the `Globals` PropertyGroup.
+```xml
+
+
+ x86-windows-static
+ x64-windows-static
+
+```
+
+#### With CMake
+Simply set `VCPKG_TARGET_TRIPLET` on the configure line.
+```no-highlight
+cmake ../my/project -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_TOOLCHAIN_FILE=...
+```
+
+[triplet]: triplets.md
diff --git a/docs/users/triplets.md b/docs/users/triplets.md
new file mode 100644
index 00000000000..06f77e63fb4
--- /dev/null
+++ b/docs/users/triplets.md
@@ -0,0 +1,56 @@
+# Triplet files
+
+Triplet is a standard term used in cross compiling as a way to completely capture the target environment (cpu, os, compiler, runtime, etc) in a single convenient name.
+
+In Vcpkg, we use triplets to describe self-consistent builds of library sets. This means every library will be built using the same target cpu, OS, and compiler toolchain, but also CRT linkage and preferred library type.
+
+We currently provide many triplets by default (run `vcpkg help triplet`). However, you can easily add your own by creating a new file in the `triplets\` directory. The new triplet will immediately be available for use in commands, such as `vcpkg install boost:x86-windows-custom`.
+
+To change the triplet used by your project, such as to enable static linking, see our [Integration Document](integration.md#triplet-selection).
+
+## Variables
+### VCPKG_TARGET_ARCHITECTURE
+Specifies the target machine architecture.
+
+Valid options are `x86`, `x64`, and `arm`.
+
+### VCPKG_CRT_LINKAGE
+Specifies the desired MSVCRT linkage.
+
+Valid options are `dynamic` and `static`.
+
+### VCPKG_LIBRARY_LINKAGE
+Specifies the preferred library linkage.
+
+Valid options are `dynamic` and `static`. Note that libraries can ignore this setting if they do not support the preferred linkage type.
+
+### VCPKG_CMAKE_SYSTEM_NAME
+Specifies the target platform.
+
+Valid options are `WindowsStore` or empty. Empty corresponds to Windows Desktop and `WindowsStore` corresponds to UWP.
+When setting this variable to `WindowsStore`, you must also set `VCPKG_CMAKE_SYSTEM_VERSION` to `10.0`.
+
+### VCPKG_PLATFORM_TOOLSET
+Specifies the C/C++ compiler toolchain to use.
+
+This can be set to `v141`, `v140`, or left blank. If left blank, we select the latest compiler toolset available on your machine.
+
+## Per-port customization
+The CMake Macro `PORT` will be set when interpreting the triplet file and can be used to change settings (such as `VCPKG_LIBRARY_LINKAGE`) on a per-port basis.
+
+Example:
+```cmake
+set(VCPKG_LIBRARY_LINKAGE static)
+set(VCPKG_CRT_LINKAGE dynamic)
+if(PORT STREQUAL "qt5")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+```
+This will build `qt5` as DLLs against the dynamic CRT, but every other library as a static library (still against the dynamic CRT).
+
+For an example in a real project, see https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.
+
+## Additional Remarks
+The default triplet when running any vcpkg command is `%VCPKG_DEFAULT_TRIPLET%` or `x86-windows` if that environment variable is undefined.
+
+We recommend using a systematic naming scheme when creating new triplets. The Android toolchain naming scheme is a good source of inspiration: https://developer.android.com/ndk/guides/standalone_toolchain.html.
diff --git a/ports/harfbuzz/0001-fix-uwp-build.patch b/ports/harfbuzz/0001-fix-uwp-build.patch
new file mode 100644
index 00000000000..532ce668eab
--- /dev/null
+++ b/ports/harfbuzz/0001-fix-uwp-build.patch
@@ -0,0 +1,15 @@
+diff --git "a/harfbuzz-1.4.6/src/hb-ft.cc" "b/harfbuzz-1.4.6/src/hb-ft.cc"
+index 48d6a0ef..f4ce6608 100644
+--- "a/harfbuzz-1.4.6/src/hb-ft.cc"
++++ "b/harfbuzz-1.4.6/src/hb-ft.cc"
+@@ -31,6 +31,10 @@
+
+ #include "hb-ft.h"
+
++#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
++#define generic GenericFromFreeTypeLibrary
++#endif
++
+ #include "hb-font-private.hh"
+
+ #include "hb-cache-private.hh" // Maybe use in the future?
diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL
index 6ebe28f375a..5ed9e68b81b 100644
--- a/ports/harfbuzz/CONTROL
+++ b/ports/harfbuzz/CONTROL
@@ -1,4 +1,4 @@
Source: harfbuzz
-Version: 1.4.6
+Version: 1.4.6-1
Description: HarfBuzz OpenType text shaping engine
-Build-Depends: freetype, glib
+Build-Depends: freetype, glib [windows]
diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake
index 8c77d1efea0..798743d452f 100644
--- a/ports/harfbuzz/portfile.cmake
+++ b/ports/harfbuzz/portfile.cmake
@@ -7,13 +7,26 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch"
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ SET(HAVE_GLIB "OFF")
+ SET(BUILTIN_UCDN "ON")
+else()
+ SET(HAVE_GLIB "ON")
+ SET(BUILTIN_UCDN "OFF")
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DHB_HAVE_FREETYPE=ON
- -DHB_HAVE_GLIB=ON
- -DHB_BUILTIN_UCDN=OFF
+ -DHB_HAVE_GLIB=${HAVE_GLIB}
+ -DHB_BUILTIN_UCDN=${BUILTIN_UCDN}
OPTIONS_DEBUG
-DSKIP_INSTALL_HEADERS=ON
)
diff --git a/ports/jasper/CONTROL b/ports/jasper/CONTROL
new file mode 100644
index 00000000000..682501e49bd
--- /dev/null
+++ b/ports/jasper/CONTROL
@@ -0,0 +1,4 @@
+Source: jasper
+Version: 2.0.13
+Description: Open source implementation of the JPEG-2000 Part-1 standard
+Build-Depends: libjpeg-turbo
diff --git a/ports/jasper/portfile.cmake b/ports/jasper/portfile.cmake
new file mode 100644
index 00000000000..fa2b415a7b0
--- /dev/null
+++ b/ports/jasper/portfile.cmake
@@ -0,0 +1,41 @@
+include(vcpkg_common_functions)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mdadams/jasper
+ REF version-2.0.13
+ SHA512 8c09a7b773e739a2594cd1002fe66f79ea4336f7de7c97267ab976c06ba075468a7f3c8731dff13a98221cd11d3f2bf8dcddb3fc2c2fc7d7c5ba402bcd3f9fd8
+ HEAD_REF master)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ set(JASPER_LINKAGE -DJAS_ENABLE_SHARED=OFF)
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DJAS_ENABLE_AUTOMATIC_DEPENDENCIES=OFF
+ -DJAS_ENABLE_LIBJPEG=ON
+ -DJAS_ENABLE_OPENGL=OFF # not needed for the library
+ -DJAS_ENABLE_DOC=OFF
+ ${JASPER_LINKAGE})
+
+vcpkg_install_cmake()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ file(GLOB EXECS ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
+ file(REMOVE ${EXECS})
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jasper)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/jasper/LICENSE ${CURRENT_PACKAGES_DIR}/share/jasper/copyright)
diff --git a/ports/libepoxy/CONTROL b/ports/libepoxy/CONTROL
index 2f9939ee44e..95bc19474f4 100644
--- a/ports/libepoxy/CONTROL
+++ b/ports/libepoxy/CONTROL
@@ -1,3 +1,3 @@
Source: libepoxy
-Version: 1.4.2
+Version: 1.4.3
Description: Epoxy is a library for handling OpenGL function pointer management for you
diff --git a/ports/libepoxy/portfile.cmake b/ports/libepoxy/portfile.cmake
index 27c0737862f..e50754db323 100644
--- a/ports/libepoxy/portfile.cmake
+++ b/ports/libepoxy/portfile.cmake
@@ -7,19 +7,19 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO anholt/libepoxy
- REF 1.4.2
- SHA512 b94e1fe749c63a82f38369ff62b7d0d8cf1c55884159f030dc2919c17daf5811dd71cfd6a663edb38df66ff4ca53120a6a53501568cc8a582f08d4ae82fe9d89
+ REF 1.4.3
+ SHA512 41c7a4eea66c89346b0ec71407b2d22bf645ed0ef81ebad560370903f138ed48abb6bc6bcc88c75a3a05497acc6720397db828d61301599c05040263a9f4f7f0
HEAD_REF master)
-# ensure python is on path - not for meson but some source generation scripts
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "$ENV{PATH};${PYTHON3_PATH}")
-
-vcpkg_configure_meson(SOURCE_PATH ${SOURCE_PATH})
+vcpkg_configure_meson(SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -Denable-glx=no
+ -Denable-egl=no)
vcpkg_install_meson()
-
vcpkg_copy_pdbs()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/pkgconfig)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig)
+
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libepoxy)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libepoxy/COPYING ${CURRENT_PACKAGES_DIR}/share/libepoxy/copyright)
diff --git a/ports/paho-mqtt/CONTROL b/ports/paho-mqtt/CONTROL
new file mode 100644
index 00000000000..7981a519593
--- /dev/null
+++ b/ports/paho-mqtt/CONTROL
@@ -0,0 +1,4 @@
+Source: paho-mqtt
+Version: Version 1.1.0 (Paho 1.2)
+Description: Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for the Internet of Things
+Build-Depends: openssl
diff --git a/ports/paho-mqtt/portfile.cmake b/ports/paho-mqtt/portfile.cmake
new file mode 100644
index 00000000000..5fc6341f889
--- /dev/null
+++ b/ports/paho-mqtt/portfile.cmake
@@ -0,0 +1,56 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO eclipse/paho.mqtt.c
+ REF v1.1.0
+ SHA512 49eebf258e15076048103ff79442ad0d21164b83f713eee7f226998106b5931d310871d3b372322d5ef1cb2801219a6e626400b6fe4198814150a6277d6bfd74
+ HEAD_REF master
+)
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DPAHO_WITH_SSL=TRUE
+)
+
+
+vcpkg_build_cmake()
+
+file(GLOB DLLS
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.dll"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.dll"
+)
+file(GLOB LIBS
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib"
+)
+file(GLOB DEBUG_DLLS
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.dll"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.dll"
+)
+file(GLOB DEBUG_LIBS
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib"
+)
+file(GLOB HEADERS "${SOURCE_PATH}/*/*.h")
+if(DLLS)
+ file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+endif()
+file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(INSTALL ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+vcpkg_copy_pdbs()
+
+
+file(INSTALL ${SOURCE_PATH}/about.html DESTINATION ${CURRENT_PACKAGES_DIR}/share/paho-mqtt RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL
index 8d95c691eb7..26b85078583 100644
--- a/ports/qt5/CONTROL
+++ b/ports/qt5/CONTROL
@@ -1,4 +1,4 @@
Source: qt5
-Version: 5.8-2
+Version: 5.8-3
Description: Qt5 application framework main components. Webengine, examples and tests not included.
Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre, harfbuzz, sqlite3, libpq, double-conversion
diff --git a/ports/qt5/add-private-header-paths.patch b/ports/qt5/add-private-header-paths.patch
new file mode 100644
index 00000000000..c6e233710d0
--- /dev/null
+++ b/ports/qt5/add-private-header-paths.patch
@@ -0,0 +1,801 @@
+diff --git a/Qt53DCore/Qt53DCoreConfig.cmake b/Qt53DCore/Qt53DCoreConfig.cmake
+index 80fc091..4fbaf5e 100644
+--- a/Qt53DCore/Qt53DCoreConfig.cmake
++++ b/Qt53DCore/Qt53DCoreConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DCore)
+
+ set(_Qt53DCore_OWN_INCLUDE_DIRS "${_qt53DCore_install_prefix}/include/" "${_qt53DCore_install_prefix}/include/Qt3DCore")
+- set(Qt53DCore_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DCore_PRIVATE_INCLUDE_DIRS
++ "${_qt53DCore_install_prefix}/include/Qt3DCore/5.8.0"
++ "${_qt53DCore_install_prefix}/include/Qt3DCore/5.8.0/Qt3DCore"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DCore_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DExtras/Qt53DExtrasConfig.cmake b/Qt53DExtras/Qt53DExtrasConfig.cmake
+index 61de455..5f00da8 100644
+--- a/Qt53DExtras/Qt53DExtrasConfig.cmake
++++ b/Qt53DExtras/Qt53DExtrasConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DExtras)
+
+ set(_Qt53DExtras_OWN_INCLUDE_DIRS "${_qt53DExtras_install_prefix}/include/" "${_qt53DExtras_install_prefix}/include/Qt3DExtras")
+- set(Qt53DExtras_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DExtras_PRIVATE_INCLUDE_DIRS
++ "${_qt53DExtras_install_prefix}/include/Qt3DExtras/5.8.0"
++ "${_qt53DExtras_install_prefix}/include/Qt3DExtras/5.8.0/Qt3DExtras"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DExtras_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DInput/Qt53DInputConfig.cmake b/Qt53DInput/Qt53DInputConfig.cmake
+index 1526967..089441e 100644
+--- a/Qt53DInput/Qt53DInputConfig.cmake
++++ b/Qt53DInput/Qt53DInputConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DInput)
+
+ set(_Qt53DInput_OWN_INCLUDE_DIRS "${_qt53DInput_install_prefix}/include/" "${_qt53DInput_install_prefix}/include/Qt3DInput")
+- set(Qt53DInput_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DInput_PRIVATE_INCLUDE_DIRS
++ "${_qt53DInput_install_prefix}/include/Qt3DInput/5.8.0"
++ "${_qt53DInput_install_prefix}/include/Qt3DInput/5.8.0/Qt3DInput"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DInput_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DLogic/Qt53DLogicConfig.cmake b/Qt53DLogic/Qt53DLogicConfig.cmake
+index 336f0dc..963be42 100644
+--- a/Qt53DLogic/Qt53DLogicConfig.cmake
++++ b/Qt53DLogic/Qt53DLogicConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DLogic)
+
+ set(_Qt53DLogic_OWN_INCLUDE_DIRS "${_qt53DLogic_install_prefix}/include/" "${_qt53DLogic_install_prefix}/include/Qt3DLogic")
+- set(Qt53DLogic_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DLogic_PRIVATE_INCLUDE_DIRS
++ "${_qt53DLogic_install_prefix}/include/Qt3DLogic/5.8.0"
++ "${_qt53DLogic_install_prefix}/include/Qt3DLogic/5.8.0/Qt3DLogic"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DLogic_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DQuick/Qt53DQuickConfig.cmake b/Qt53DQuick/Qt53DQuickConfig.cmake
+index cf510c9..0277c0c 100644
+--- a/Qt53DQuick/Qt53DQuickConfig.cmake
++++ b/Qt53DQuick/Qt53DQuickConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DQuick)
+
+ set(_Qt53DQuick_OWN_INCLUDE_DIRS "${_qt53DQuick_install_prefix}/include/" "${_qt53DQuick_install_prefix}/include/Qt3DQuick")
+- set(Qt53DQuick_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DQuick_PRIVATE_INCLUDE_DIRS
++ "${_qt53DQuick_install_prefix}/include/Qt3DQuick/5.8.0"
++ "${_qt53DQuick_install_prefix}/include/Qt3DQuick/5.8.0/Qt3DQuick"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DQuick_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DQuickInput/Qt53DQuickInputConfig.cmake b/Qt53DQuickInput/Qt53DQuickInputConfig.cmake
+index 06fe217..f935824 100644
+--- a/Qt53DQuickInput/Qt53DQuickInputConfig.cmake
++++ b/Qt53DQuickInput/Qt53DQuickInputConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DQuickInput)
+
+ set(_Qt53DQuickInput_OWN_INCLUDE_DIRS "${_qt53DQuickInput_install_prefix}/include/" "${_qt53DQuickInput_install_prefix}/include/Qt3DQuickInput")
+- set(Qt53DQuickInput_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DQuickInput_PRIVATE_INCLUDE_DIRS
++ "${_qt53DQuickInput_install_prefix}/include/Qt3DQuickInput/5.8.0"
++ "${_qt53DQuickInput_install_prefix}/include/Qt3DQuickInput/5.8.0/Qt3DQuickInput"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DQuickInput_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DQuickRender/Qt53DQuickRenderConfig.cmake b/Qt53DQuickRender/Qt53DQuickRenderConfig.cmake
+index dd5472b..ef728fd 100644
+--- a/Qt53DQuickRender/Qt53DQuickRenderConfig.cmake
++++ b/Qt53DQuickRender/Qt53DQuickRenderConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DQuickRender)
+
+ set(_Qt53DQuickRender_OWN_INCLUDE_DIRS "${_qt53DQuickRender_install_prefix}/include/" "${_qt53DQuickRender_install_prefix}/include/Qt3DQuickRender")
+- set(Qt53DQuickRender_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DQuickRender_PRIVATE_INCLUDE_DIRS
++ "${_qt53DQuickRender_install_prefix}/include/Qt3DQuickRender/5.8.0"
++ "${_qt53DQuickRender_install_prefix}/include/Qt3DQuickRender/5.8.0/Qt3DQuickRender"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DQuickRender_OWN_INCLUDE_DIRS})
+diff --git a/Qt53DRender/Qt53DRenderConfig.cmake b/Qt53DRender/Qt53DRenderConfig.cmake
+index 70eff4b..271463b 100644
+--- a/Qt53DRender/Qt53DRenderConfig.cmake
++++ b/Qt53DRender/Qt53DRenderConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::3DRender)
+
+ set(_Qt53DRender_OWN_INCLUDE_DIRS "${_qt53DRender_install_prefix}/include/" "${_qt53DRender_install_prefix}/include/Qt3DRender")
+- set(Qt53DRender_PRIVATE_INCLUDE_DIRS "")
++ set(Qt53DRender_PRIVATE_INCLUDE_DIRS
++ "${_qt53DRender_install_prefix}/include/Qt3DRender/5.8.0"
++ "${_qt53DRender_install_prefix}/include/Qt3DRender/5.8.0/Qt3DRender"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt53DRender_OWN_INCLUDE_DIRS})
+diff --git a/Qt5AxBase/Qt5AxBaseConfig.cmake b/Qt5AxBase/Qt5AxBaseConfig.cmake
+index 48966d5..63afee8 100644
+--- a/Qt5AxBase/Qt5AxBaseConfig.cmake
++++ b/Qt5AxBase/Qt5AxBaseConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::AxBase)
+
+ set(_Qt5AxBase_OWN_INCLUDE_DIRS "${_qt5AxBase_install_prefix}/include/" "${_qt5AxBase_install_prefix}/include/ActiveQt")
+- set(Qt5AxBase_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5AxBase_PRIVATE_INCLUDE_DIRS
++ "${_qt5AxBase_install_prefix}/include/ActiveQt/5.8.0"
++ "${_qt5AxBase_install_prefix}/include/ActiveQt/5.8.0/ActiveQt"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5AxBase_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Bluetooth/Qt5BluetoothConfig.cmake b/Qt5Bluetooth/Qt5BluetoothConfig.cmake
+index 9d2f7c4..1223caf 100644
+--- a/Qt5Bluetooth/Qt5BluetoothConfig.cmake
++++ b/Qt5Bluetooth/Qt5BluetoothConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Bluetooth)
+
+ set(_Qt5Bluetooth_OWN_INCLUDE_DIRS "${_qt5Bluetooth_install_prefix}/include/" "${_qt5Bluetooth_install_prefix}/include/QtBluetooth")
+- set(Qt5Bluetooth_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Bluetooth_PRIVATE_INCLUDE_DIRS
++ "${_qt5Bluetooth_install_prefix}/include/QtBluetooth/5.8.0"
++ "${_qt5Bluetooth_install_prefix}/include/QtBluetooth/5.8.0/QtBluetooth"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Bluetooth_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Charts/Qt5ChartsConfig.cmake b/Qt5Charts/Qt5ChartsConfig.cmake
+index fef4b13..52e458d 100644
+--- a/Qt5Charts/Qt5ChartsConfig.cmake
++++ b/Qt5Charts/Qt5ChartsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Charts)
+
+ set(_Qt5Charts_OWN_INCLUDE_DIRS "${_qt5Charts_install_prefix}/include/" "${_qt5Charts_install_prefix}/include/QtCharts")
+- set(Qt5Charts_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Charts_PRIVATE_INCLUDE_DIRS
++ "${_qt5Charts_install_prefix}/include/QtCharts/5.8.0"
++ "${_qt5Charts_install_prefix}/include/QtCharts/5.8.0/QtCharts"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Charts_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Core/Qt5CoreConfig.cmake b/Qt5Core/Qt5CoreConfig.cmake
+index 4232dc7..c35d103 100644
+--- a/Qt5Core/Qt5CoreConfig.cmake
++++ b/Qt5Core/Qt5CoreConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Core)
+
+ set(_Qt5Core_OWN_INCLUDE_DIRS "${_qt5Core_install_prefix}/include/" "${_qt5Core_install_prefix}/include/QtCore")
+- set(Qt5Core_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Core_PRIVATE_INCLUDE_DIRS
++ "${_qt5Core_install_prefix}/include/QtCore/5.8.0"
++ "${_qt5Core_install_prefix}/include/QtCore/5.8.0/QtCore"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Core_OWN_INCLUDE_DIRS})
+diff --git a/Qt5DBus/Qt5DBusConfig.cmake b/Qt5DBus/Qt5DBusConfig.cmake
+index d5e3ac6..472b928 100644
+--- a/Qt5DBus/Qt5DBusConfig.cmake
++++ b/Qt5DBus/Qt5DBusConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::DBus)
+
+ set(_Qt5DBus_OWN_INCLUDE_DIRS "${_qt5DBus_install_prefix}/include/" "${_qt5DBus_install_prefix}/include/QtDBus")
+- set(Qt5DBus_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5DBus_PRIVATE_INCLUDE_DIRS
++ "${_qt5DBus_install_prefix}/include/QtDBus/5.8.0"
++ "${_qt5DBus_install_prefix}/include/QtDBus/5.8.0/QtDBus"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5DBus_OWN_INCLUDE_DIRS})
+diff --git a/Qt5DataVisualization/Qt5DataVisualizationConfig.cmake b/Qt5DataVisualization/Qt5DataVisualizationConfig.cmake
+index b518994..91559aa 100644
+--- a/Qt5DataVisualization/Qt5DataVisualizationConfig.cmake
++++ b/Qt5DataVisualization/Qt5DataVisualizationConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::DataVisualization)
+
+ set(_Qt5DataVisualization_OWN_INCLUDE_DIRS "${_qt5DataVisualization_install_prefix}/include/" "${_qt5DataVisualization_install_prefix}/include/QtDataVisualization")
+- set(Qt5DataVisualization_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5DataVisualization_PRIVATE_INCLUDE_DIRS
++ "${_qt5DataVisualization_install_prefix}/include/QtDataVisualization/5.8.0"
++ "${_qt5DataVisualization_install_prefix}/include/QtDataVisualization/5.8.0/QtDataVisualization"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5DataVisualization_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Designer/Qt5DesignerConfig.cmake b/Qt5Designer/Qt5DesignerConfig.cmake
+index 69ea6dc..7b76032 100644
+--- a/Qt5Designer/Qt5DesignerConfig.cmake
++++ b/Qt5Designer/Qt5DesignerConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Designer)
+
+ set(_Qt5Designer_OWN_INCLUDE_DIRS "${_qt5Designer_install_prefix}/include/" "${_qt5Designer_install_prefix}/include/QtDesigner")
+- set(Qt5Designer_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Designer_PRIVATE_INCLUDE_DIRS
++ "${_qt5Designer_install_prefix}/include/QtDesigner/5.8.0"
++ "${_qt5Designer_install_prefix}/include/QtDesigner/5.8.0/QtDesigner"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Designer_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Gamepad/Qt5GamepadConfig.cmake b/Qt5Gamepad/Qt5GamepadConfig.cmake
+index 66db87f..987ae8f 100644
+--- a/Qt5Gamepad/Qt5GamepadConfig.cmake
++++ b/Qt5Gamepad/Qt5GamepadConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Gamepad)
+
+ set(_Qt5Gamepad_OWN_INCLUDE_DIRS "${_qt5Gamepad_install_prefix}/include/" "${_qt5Gamepad_install_prefix}/include/QtGamepad")
+- set(Qt5Gamepad_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Gamepad_PRIVATE_INCLUDE_DIRS
++ "${_qt5Gamepad_install_prefix}/include/QtGamepad/5.8.0"
++ "${_qt5Gamepad_install_prefix}/include/QtGamepad/5.8.0/QtGamepad"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Gamepad_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Gui/Qt5GuiConfig.cmake b/Qt5Gui/Qt5GuiConfig.cmake
+index 4718ba9..56888c1 100644
+--- a/Qt5Gui/Qt5GuiConfig.cmake
++++ b/Qt5Gui/Qt5GuiConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Gui)
+
+ set(_Qt5Gui_OWN_INCLUDE_DIRS "${_qt5Gui_install_prefix}/include/" "${_qt5Gui_install_prefix}/include/QtGui")
+- set(Qt5Gui_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Gui_PRIVATE_INCLUDE_DIRS
++ "${_qt5Gui_install_prefix}/include/QtGui/5.8.0"
++ "${_qt5Gui_install_prefix}/include/QtGui/5.8.0/QtGui"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Gui_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Help/Qt5HelpConfig.cmake b/Qt5Help/Qt5HelpConfig.cmake
+index e84511c..0da7c20 100644
+--- a/Qt5Help/Qt5HelpConfig.cmake
++++ b/Qt5Help/Qt5HelpConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Help)
+
+ set(_Qt5Help_OWN_INCLUDE_DIRS "${_qt5Help_install_prefix}/include/" "${_qt5Help_install_prefix}/include/QtHelp")
+- set(Qt5Help_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Help_PRIVATE_INCLUDE_DIRS
++ "${_qt5Help_install_prefix}/include/QtHelp/5.8.0"
++ "${_qt5Help_install_prefix}/include/QtHelp/5.8.0/QtHelp"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Help_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Location/Qt5LocationConfig.cmake b/Qt5Location/Qt5LocationConfig.cmake
+index a8bdf0a..f5348c2 100644
+--- a/Qt5Location/Qt5LocationConfig.cmake
++++ b/Qt5Location/Qt5LocationConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Location)
+
+ set(_Qt5Location_OWN_INCLUDE_DIRS "${_qt5Location_install_prefix}/include/" "${_qt5Location_install_prefix}/include/QtLocation")
+- set(Qt5Location_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Location_PRIVATE_INCLUDE_DIRS
++ "${_qt5Location_install_prefix}/include/QtLocation/5.8.0"
++ "${_qt5Location_install_prefix}/include/QtLocation/5.8.0/QtLocation"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Location_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Multimedia/Qt5MultimediaConfig.cmake b/Qt5Multimedia/Qt5MultimediaConfig.cmake
+index 69f353f..67fa08b 100644
+--- a/Qt5Multimedia/Qt5MultimediaConfig.cmake
++++ b/Qt5Multimedia/Qt5MultimediaConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Multimedia)
+
+ set(_Qt5Multimedia_OWN_INCLUDE_DIRS "${_qt5Multimedia_install_prefix}/include/" "${_qt5Multimedia_install_prefix}/include/QtMultimedia")
+- set(Qt5Multimedia_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Multimedia_PRIVATE_INCLUDE_DIRS
++ "${_qt5Multimedia_install_prefix}/include/QtMultimedia/5.8.0"
++ "${_qt5Multimedia_install_prefix}/include/QtMultimedia/5.8.0/QtMultimedia"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Multimedia_OWN_INCLUDE_DIRS})
+diff --git a/Qt5MultimediaWidgets/Qt5MultimediaWidgetsConfig.cmake b/Qt5MultimediaWidgets/Qt5MultimediaWidgetsConfig.cmake
+index 88162f8..1dcf69e 100644
+--- a/Qt5MultimediaWidgets/Qt5MultimediaWidgetsConfig.cmake
++++ b/Qt5MultimediaWidgets/Qt5MultimediaWidgetsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::MultimediaWidgets)
+
+ set(_Qt5MultimediaWidgets_OWN_INCLUDE_DIRS "${_qt5MultimediaWidgets_install_prefix}/include/" "${_qt5MultimediaWidgets_install_prefix}/include/QtMultimediaWidgets")
+- set(Qt5MultimediaWidgets_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5MultimediaWidgets_PRIVATE_INCLUDE_DIRS
++ "${_qt5MultimediaWidgets_install_prefix}/include/QtMultimediaWidgets/5.8.0"
++ "${_qt5MultimediaWidgets_install_prefix}/include/QtMultimediaWidgets/5.8.0/QtMultimediaWidgets"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5MultimediaWidgets_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Network/Qt5NetworkConfig.cmake b/Qt5Network/Qt5NetworkConfig.cmake
+index 1778278..6a5d7f3 100644
+--- a/Qt5Network/Qt5NetworkConfig.cmake
++++ b/Qt5Network/Qt5NetworkConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Network)
+
+ set(_Qt5Network_OWN_INCLUDE_DIRS "${_qt5Network_install_prefix}/include/" "${_qt5Network_install_prefix}/include/QtNetwork")
+- set(Qt5Network_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Network_PRIVATE_INCLUDE_DIRS
++ "${_qt5Network_install_prefix}/include/QtNetwork/5.8.0"
++ "${_qt5Network_install_prefix}/include/QtNetwork/5.8.0/QtNetwork"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Network_OWN_INCLUDE_DIRS})
+diff --git a/Qt5NetworkAuth/Qt5NetworkAuthConfig.cmake b/Qt5NetworkAuth/Qt5NetworkAuthConfig.cmake
+index 50f56e0..821080c 100644
+--- a/Qt5NetworkAuth/Qt5NetworkAuthConfig.cmake
++++ b/Qt5NetworkAuth/Qt5NetworkAuthConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::NetworkAuth)
+
+ set(_Qt5NetworkAuth_OWN_INCLUDE_DIRS "${_qt5NetworkAuth_install_prefix}/include/" "${_qt5NetworkAuth_install_prefix}/include/QtNetworkAuth")
+- set(Qt5NetworkAuth_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5NetworkAuth_PRIVATE_INCLUDE_DIRS
++ "${_qt5NetworkAuth_install_prefix}/include/QtNetworkAuth/5.8.0"
++ "${_qt5NetworkAuth_install_prefix}/include/QtNetworkAuth/5.8.0/QtNetworkAuth"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5NetworkAuth_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Nfc/Qt5NfcConfig.cmake b/Qt5Nfc/Qt5NfcConfig.cmake
+index 83ffddd..d8a5ba9 100644
+--- a/Qt5Nfc/Qt5NfcConfig.cmake
++++ b/Qt5Nfc/Qt5NfcConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Nfc)
+
+ set(_Qt5Nfc_OWN_INCLUDE_DIRS "${_qt5Nfc_install_prefix}/include/" "${_qt5Nfc_install_prefix}/include/QtNfc")
+- set(Qt5Nfc_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Nfc_PRIVATE_INCLUDE_DIRS
++ "${_qt5Nfc_install_prefix}/include/QtNfc/5.8.0"
++ "${_qt5Nfc_install_prefix}/include/QtNfc/5.8.0/QtNfc"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Nfc_OWN_INCLUDE_DIRS})
+diff --git a/Qt5OpenGL/Qt5OpenGLConfig.cmake b/Qt5OpenGL/Qt5OpenGLConfig.cmake
+index 6c874ac..3ac408a 100644
+--- a/Qt5OpenGL/Qt5OpenGLConfig.cmake
++++ b/Qt5OpenGL/Qt5OpenGLConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::OpenGL)
+
+ set(_Qt5OpenGL_OWN_INCLUDE_DIRS "${_qt5OpenGL_install_prefix}/include/" "${_qt5OpenGL_install_prefix}/include/QtOpenGL")
+- set(Qt5OpenGL_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5OpenGL_PRIVATE_INCLUDE_DIRS
++ "${_qt5OpenGL_install_prefix}/include/QtOpenGL/5.8.0"
++ "${_qt5OpenGL_install_prefix}/include/QtOpenGL/5.8.0/QtOpenGL"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5OpenGL_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Positioning/Qt5PositioningConfig.cmake b/Qt5Positioning/Qt5PositioningConfig.cmake
+index 1aa3128..a6a2f24 100644
+--- a/Qt5Positioning/Qt5PositioningConfig.cmake
++++ b/Qt5Positioning/Qt5PositioningConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Positioning)
+
+ set(_Qt5Positioning_OWN_INCLUDE_DIRS "${_qt5Positioning_install_prefix}/include/" "${_qt5Positioning_install_prefix}/include/QtPositioning")
+- set(Qt5Positioning_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Positioning_PRIVATE_INCLUDE_DIRS
++ "${_qt5Positioning_install_prefix}/include/QtPositioning/5.8.0"
++ "${_qt5Positioning_install_prefix}/include/QtPositioning/5.8.0/QtPositioning"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Positioning_OWN_INCLUDE_DIRS})
+diff --git a/Qt5PrintSupport/Qt5PrintSupportConfig.cmake b/Qt5PrintSupport/Qt5PrintSupportConfig.cmake
+index d7c6765..9a24e99 100644
+--- a/Qt5PrintSupport/Qt5PrintSupportConfig.cmake
++++ b/Qt5PrintSupport/Qt5PrintSupportConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::PrintSupport)
+
+ set(_Qt5PrintSupport_OWN_INCLUDE_DIRS "${_qt5PrintSupport_install_prefix}/include/" "${_qt5PrintSupport_install_prefix}/include/QtPrintSupport")
+- set(Qt5PrintSupport_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5PrintSupport_PRIVATE_INCLUDE_DIRS
++ "${_qt5PrintSupport_install_prefix}/include/QtPrintSupport/5.8.0"
++ "${_qt5PrintSupport_install_prefix}/include/QtPrintSupport/5.8.0/QtPrintSupport"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5PrintSupport_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Purchasing/Qt5PurchasingConfig.cmake b/Qt5Purchasing/Qt5PurchasingConfig.cmake
+index b0cf03d..d0b527d 100644
+--- a/Qt5Purchasing/Qt5PurchasingConfig.cmake
++++ b/Qt5Purchasing/Qt5PurchasingConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Purchasing)
+
+ set(_Qt5Purchasing_OWN_INCLUDE_DIRS "${_qt5Purchasing_install_prefix}/include/" "${_qt5Purchasing_install_prefix}/include/QtPurchasing")
+- set(Qt5Purchasing_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Purchasing_PRIVATE_INCLUDE_DIRS
++ "${_qt5Purchasing_install_prefix}/include/QtPurchasing/5.8.0"
++ "${_qt5Purchasing_install_prefix}/include/QtPurchasing/5.8.0/QtPurchasing"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Purchasing_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Qml/Qt5QmlConfig.cmake b/Qt5Qml/Qt5QmlConfig.cmake
+index 966e3ff..c59d5d1 100644
+--- a/Qt5Qml/Qt5QmlConfig.cmake
++++ b/Qt5Qml/Qt5QmlConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Qml)
+
+ set(_Qt5Qml_OWN_INCLUDE_DIRS "${_qt5Qml_install_prefix}/include/" "${_qt5Qml_install_prefix}/include/QtQml")
+- set(Qt5Qml_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Qml_PRIVATE_INCLUDE_DIRS
++ "${_qt5Qml_install_prefix}/include/QtQml/5.8.0"
++ "${_qt5Qml_install_prefix}/include/QtQml/5.8.0/QtQml"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Qml_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Quick/Qt5QuickConfig.cmake b/Qt5Quick/Qt5QuickConfig.cmake
+index e1e2d05..def9557 100644
+--- a/Qt5Quick/Qt5QuickConfig.cmake
++++ b/Qt5Quick/Qt5QuickConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Quick)
+
+ set(_Qt5Quick_OWN_INCLUDE_DIRS "${_qt5Quick_install_prefix}/include/" "${_qt5Quick_install_prefix}/include/QtQuick")
+- set(Qt5Quick_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Quick_PRIVATE_INCLUDE_DIRS
++ "${_qt5Quick_install_prefix}/include/QtQuick/5.8.0"
++ "${_qt5Quick_install_prefix}/include/QtQuick/5.8.0/QtQuick"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Quick_OWN_INCLUDE_DIRS})
+diff --git a/Qt5QuickControls2/Qt5QuickControls2Config.cmake b/Qt5QuickControls2/Qt5QuickControls2Config.cmake
+index cf34ce5..6f0ec96 100644
+--- a/Qt5QuickControls2/Qt5QuickControls2Config.cmake
++++ b/Qt5QuickControls2/Qt5QuickControls2Config.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::QuickControls2)
+
+ set(_Qt5QuickControls2_OWN_INCLUDE_DIRS "${_qt5QuickControls2_install_prefix}/include/" "${_qt5QuickControls2_install_prefix}/include/QtQuickControls2")
+- set(Qt5QuickControls2_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5QuickControls2_PRIVATE_INCLUDE_DIRS
++ "${_qt5QuickControls2_install_prefix}/include/QtQuickControls2/5.8.0"
++ "${_qt5QuickControls2_install_prefix}/include/QtQuickControls2/5.8.0/QtQuickControls2"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5QuickControls2_OWN_INCLUDE_DIRS})
+diff --git a/Qt5QuickTest/Qt5QuickTestConfig.cmake b/Qt5QuickTest/Qt5QuickTestConfig.cmake
+index 9b2b8b2..6e1ea1d 100644
+--- a/Qt5QuickTest/Qt5QuickTestConfig.cmake
++++ b/Qt5QuickTest/Qt5QuickTestConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::QuickTest)
+
+ set(_Qt5QuickTest_OWN_INCLUDE_DIRS "${_qt5QuickTest_install_prefix}/include/" "${_qt5QuickTest_install_prefix}/include/QtQuickTest")
+- set(Qt5QuickTest_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5QuickTest_PRIVATE_INCLUDE_DIRS
++ "${_qt5QuickTest_install_prefix}/include/QtQuickTest/5.8.0"
++ "${_qt5QuickTest_install_prefix}/include/QtQuickTest/5.8.0/QtQuickTest"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5QuickTest_OWN_INCLUDE_DIRS})
+diff --git a/Qt5QuickWidgets/Qt5QuickWidgetsConfig.cmake b/Qt5QuickWidgets/Qt5QuickWidgetsConfig.cmake
+index b0b8988..559b2f0 100644
+--- a/Qt5QuickWidgets/Qt5QuickWidgetsConfig.cmake
++++ b/Qt5QuickWidgets/Qt5QuickWidgetsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::QuickWidgets)
+
+ set(_Qt5QuickWidgets_OWN_INCLUDE_DIRS "${_qt5QuickWidgets_install_prefix}/include/" "${_qt5QuickWidgets_install_prefix}/include/QtQuickWidgets")
+- set(Qt5QuickWidgets_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5QuickWidgets_PRIVATE_INCLUDE_DIRS
++ "${_qt5QuickWidgets_install_prefix}/include/QtQuickWidgets/5.8.0"
++ "${_qt5QuickWidgets_install_prefix}/include/QtQuickWidgets/5.8.0/QtQuickWidgets"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5QuickWidgets_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Script/Qt5ScriptConfig.cmake b/Qt5Script/Qt5ScriptConfig.cmake
+index da053f8..b2b34d6 100644
+--- a/Qt5Script/Qt5ScriptConfig.cmake
++++ b/Qt5Script/Qt5ScriptConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Script)
+
+ set(_Qt5Script_OWN_INCLUDE_DIRS "${_qt5Script_install_prefix}/include/" "${_qt5Script_install_prefix}/include/QtScript")
+- set(Qt5Script_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Script_PRIVATE_INCLUDE_DIRS
++ "${_qt5Script_install_prefix}/include/QtScript/5.8.0"
++ "${_qt5Script_install_prefix}/include/QtScript/5.8.0/QtScript"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Script_OWN_INCLUDE_DIRS})
+diff --git a/Qt5ScriptTools/Qt5ScriptToolsConfig.cmake b/Qt5ScriptTools/Qt5ScriptToolsConfig.cmake
+index e4bf959..959ac50 100644
+--- a/Qt5ScriptTools/Qt5ScriptToolsConfig.cmake
++++ b/Qt5ScriptTools/Qt5ScriptToolsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::ScriptTools)
+
+ set(_Qt5ScriptTools_OWN_INCLUDE_DIRS "${_qt5ScriptTools_install_prefix}/include/" "${_qt5ScriptTools_install_prefix}/include/QtScriptTools")
+- set(Qt5ScriptTools_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5ScriptTools_PRIVATE_INCLUDE_DIRS
++ "${_qt5ScriptTools_install_prefix}/include/QtScriptTools/5.8.0"
++ "${_qt5ScriptTools_install_prefix}/include/QtScriptTools/5.8.0/QtScriptTools"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5ScriptTools_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Scxml/Qt5ScxmlConfig.cmake b/Qt5Scxml/Qt5ScxmlConfig.cmake
+index 90ac06b..e78c552 100644
+--- a/Qt5Scxml/Qt5ScxmlConfig.cmake
++++ b/Qt5Scxml/Qt5ScxmlConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Scxml)
+
+ set(_Qt5Scxml_OWN_INCLUDE_DIRS "${_qt5Scxml_install_prefix}/include/" "${_qt5Scxml_install_prefix}/include/QtScxml")
+- set(Qt5Scxml_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Scxml_PRIVATE_INCLUDE_DIRS
++ "${_qt5Scxml_install_prefix}/include/QtScxml/5.8.0"
++ "${_qt5Scxml_install_prefix}/include/QtScxml/5.8.0/QtScxml"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Scxml_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Sensors/Qt5SensorsConfig.cmake b/Qt5Sensors/Qt5SensorsConfig.cmake
+index 9e53e4d..2096beb 100644
+--- a/Qt5Sensors/Qt5SensorsConfig.cmake
++++ b/Qt5Sensors/Qt5SensorsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Sensors)
+
+ set(_Qt5Sensors_OWN_INCLUDE_DIRS "${_qt5Sensors_install_prefix}/include/" "${_qt5Sensors_install_prefix}/include/QtSensors")
+- set(Qt5Sensors_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Sensors_PRIVATE_INCLUDE_DIRS
++ "${_qt5Sensors_install_prefix}/include/QtSensors/5.8.0"
++ "${_qt5Sensors_install_prefix}/include/QtSensors/5.8.0/QtSensors"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Sensors_OWN_INCLUDE_DIRS})
+diff --git a/Qt5SerialBus/Qt5SerialBusConfig.cmake b/Qt5SerialBus/Qt5SerialBusConfig.cmake
+index f2e4d69..8ba391c 100644
+--- a/Qt5SerialBus/Qt5SerialBusConfig.cmake
++++ b/Qt5SerialBus/Qt5SerialBusConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::SerialBus)
+
+ set(_Qt5SerialBus_OWN_INCLUDE_DIRS "${_qt5SerialBus_install_prefix}/include/" "${_qt5SerialBus_install_prefix}/include/QtSerialBus")
+- set(Qt5SerialBus_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5SerialBus_PRIVATE_INCLUDE_DIRS
++ "${_qt5SerialBus_install_prefix}/include/QtSerialBus/5.8.0"
++ "${_qt5SerialBus_install_prefix}/include/QtSerialBus/5.8.0/QtSerialBus"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5SerialBus_OWN_INCLUDE_DIRS})
+diff --git a/Qt5SerialPort/Qt5SerialPortConfig.cmake b/Qt5SerialPort/Qt5SerialPortConfig.cmake
+index fa15de5..4ec1024 100644
+--- a/Qt5SerialPort/Qt5SerialPortConfig.cmake
++++ b/Qt5SerialPort/Qt5SerialPortConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::SerialPort)
+
+ set(_Qt5SerialPort_OWN_INCLUDE_DIRS "${_qt5SerialPort_install_prefix}/include/" "${_qt5SerialPort_install_prefix}/include/QtSerialPort")
+- set(Qt5SerialPort_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5SerialPort_PRIVATE_INCLUDE_DIRS
++ "${_qt5SerialPort_install_prefix}/include/QtSerialPort/5.8.0"
++ "${_qt5SerialPort_install_prefix}/include/QtSerialPort/5.8.0/QtSerialPort"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5SerialPort_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Sql/Qt5SqlConfig.cmake b/Qt5Sql/Qt5SqlConfig.cmake
+index 0e5d50c..baf3f66 100644
+--- a/Qt5Sql/Qt5SqlConfig.cmake
++++ b/Qt5Sql/Qt5SqlConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Sql)
+
+ set(_Qt5Sql_OWN_INCLUDE_DIRS "${_qt5Sql_install_prefix}/include/" "${_qt5Sql_install_prefix}/include/QtSql")
+- set(Qt5Sql_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Sql_PRIVATE_INCLUDE_DIRS
++ "${_qt5Sql_install_prefix}/include/QtSql/5.8.0"
++ "${_qt5Sql_install_prefix}/include/QtSql/5.8.0/QtSql"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Sql_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Svg/Qt5SvgConfig.cmake b/Qt5Svg/Qt5SvgConfig.cmake
+index 5d6ad04..b0d1aaa 100644
+--- a/Qt5Svg/Qt5SvgConfig.cmake
++++ b/Qt5Svg/Qt5SvgConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Svg)
+
+ set(_Qt5Svg_OWN_INCLUDE_DIRS "${_qt5Svg_install_prefix}/include/" "${_qt5Svg_install_prefix}/include/QtSvg")
+- set(Qt5Svg_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Svg_PRIVATE_INCLUDE_DIRS
++ "${_qt5Svg_install_prefix}/include/QtSvg/5.8.0"
++ "${_qt5Svg_install_prefix}/include/QtSvg/5.8.0/QtSvg"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Svg_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Test/Qt5TestConfig.cmake b/Qt5Test/Qt5TestConfig.cmake
+index 8183efd..f15979f 100644
+--- a/Qt5Test/Qt5TestConfig.cmake
++++ b/Qt5Test/Qt5TestConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Test)
+
+ set(_Qt5Test_OWN_INCLUDE_DIRS "${_qt5Test_install_prefix}/include/" "${_qt5Test_install_prefix}/include/QtTest")
+- set(Qt5Test_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Test_PRIVATE_INCLUDE_DIRS
++ "${_qt5Test_install_prefix}/include/QtTest/5.8.0"
++ "${_qt5Test_install_prefix}/include/QtTest/5.8.0/QtTest"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Test_OWN_INCLUDE_DIRS})
+diff --git a/Qt5TextToSpeech/Qt5TextToSpeechConfig.cmake b/Qt5TextToSpeech/Qt5TextToSpeechConfig.cmake
+index 2577e82..aa4bf39 100644
+--- a/Qt5TextToSpeech/Qt5TextToSpeechConfig.cmake
++++ b/Qt5TextToSpeech/Qt5TextToSpeechConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::TextToSpeech)
+
+ set(_Qt5TextToSpeech_OWN_INCLUDE_DIRS "${_qt5TextToSpeech_install_prefix}/include/" "${_qt5TextToSpeech_install_prefix}/include/QtTextToSpeech")
+- set(Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS
++ "${_qt5TextToSpeech_install_prefix}/include/QtTextToSpeech/5.8.0"
++ "${_qt5TextToSpeech_install_prefix}/include/QtTextToSpeech/5.8.0/QtTextToSpeech"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5TextToSpeech_OWN_INCLUDE_DIRS})
+diff --git a/Qt5UiTools/Qt5UiToolsConfig.cmake b/Qt5UiTools/Qt5UiToolsConfig.cmake
+index f217198..1bfa8b2 100644
+--- a/Qt5UiTools/Qt5UiToolsConfig.cmake
++++ b/Qt5UiTools/Qt5UiToolsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::UiTools)
+
+ set(_Qt5UiTools_OWN_INCLUDE_DIRS "${_qt5UiTools_install_prefix}/include/" "${_qt5UiTools_install_prefix}/include/QtUiTools")
+- set(Qt5UiTools_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5UiTools_PRIVATE_INCLUDE_DIRS
++ "${_qt5UiTools_install_prefix}/include/QtUiTools/5.8.0"
++ "${_qt5UiTools_install_prefix}/include/QtUiTools/5.8.0/QtUiTools"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5UiTools_OWN_INCLUDE_DIRS})
+diff --git a/Qt5WebChannel/Qt5WebChannelConfig.cmake b/Qt5WebChannel/Qt5WebChannelConfig.cmake
+index ce8949c..c056b9d 100644
+--- a/Qt5WebChannel/Qt5WebChannelConfig.cmake
++++ b/Qt5WebChannel/Qt5WebChannelConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::WebChannel)
+
+ set(_Qt5WebChannel_OWN_INCLUDE_DIRS "${_qt5WebChannel_install_prefix}/include/" "${_qt5WebChannel_install_prefix}/include/QtWebChannel")
+- set(Qt5WebChannel_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5WebChannel_PRIVATE_INCLUDE_DIRS
++ "${_qt5WebChannel_install_prefix}/include/QtWebChannel/5.8.0"
++ "${_qt5WebChannel_install_prefix}/include/QtWebChannel/5.8.0/QtWebChannel"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5WebChannel_OWN_INCLUDE_DIRS})
+diff --git a/Qt5WebSockets/Qt5WebSocketsConfig.cmake b/Qt5WebSockets/Qt5WebSocketsConfig.cmake
+index c2609da..42e21b8 100644
+--- a/Qt5WebSockets/Qt5WebSocketsConfig.cmake
++++ b/Qt5WebSockets/Qt5WebSocketsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::WebSockets)
+
+ set(_Qt5WebSockets_OWN_INCLUDE_DIRS "${_qt5WebSockets_install_prefix}/include/" "${_qt5WebSockets_install_prefix}/include/QtWebSockets")
+- set(Qt5WebSockets_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5WebSockets_PRIVATE_INCLUDE_DIRS
++ "${_qt5WebSockets_install_prefix}/include/QtWebSockets/5.8.0"
++ "${_qt5WebSockets_install_prefix}/include/QtWebSockets/5.8.0/QtWebSockets"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5WebSockets_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Widgets/Qt5WidgetsConfig.cmake b/Qt5Widgets/Qt5WidgetsConfig.cmake
+index 44c7aed..658e29a 100644
+--- a/Qt5Widgets/Qt5WidgetsConfig.cmake
++++ b/Qt5Widgets/Qt5WidgetsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Widgets)
+
+ set(_Qt5Widgets_OWN_INCLUDE_DIRS "${_qt5Widgets_install_prefix}/include/" "${_qt5Widgets_install_prefix}/include/QtWidgets")
+- set(Qt5Widgets_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Widgets_PRIVATE_INCLUDE_DIRS
++ "${_qt5Widgets_install_prefix}/include/QtWidgets/5.8.0"
++ "${_qt5Widgets_install_prefix}/include/QtWidgets/5.8.0/QtWidgets"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Widgets_OWN_INCLUDE_DIRS})
+diff --git a/Qt5WinExtras/Qt5WinExtrasConfig.cmake b/Qt5WinExtras/Qt5WinExtrasConfig.cmake
+index c63cee3..f9ea776 100644
+--- a/Qt5WinExtras/Qt5WinExtrasConfig.cmake
++++ b/Qt5WinExtras/Qt5WinExtrasConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::WinExtras)
+
+ set(_Qt5WinExtras_OWN_INCLUDE_DIRS "${_qt5WinExtras_install_prefix}/include/" "${_qt5WinExtras_install_prefix}/include/QtWinExtras")
+- set(Qt5WinExtras_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5WinExtras_PRIVATE_INCLUDE_DIRS
++ "${_qt5WinExtras_install_prefix}/include/QtWinExtras/5.8.0"
++ "${_qt5WinExtras_install_prefix}/include/QtWinExtras/5.8.0/QtWinExtras"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5WinExtras_OWN_INCLUDE_DIRS})
+diff --git a/Qt5Xml/Qt5XmlConfig.cmake b/Qt5Xml/Qt5XmlConfig.cmake
+index fee861c..31dc6f7 100644
+--- a/Qt5Xml/Qt5XmlConfig.cmake
++++ b/Qt5Xml/Qt5XmlConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::Xml)
+
+ set(_Qt5Xml_OWN_INCLUDE_DIRS "${_qt5Xml_install_prefix}/include/" "${_qt5Xml_install_prefix}/include/QtXml")
+- set(Qt5Xml_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5Xml_PRIVATE_INCLUDE_DIRS
++ "${_qt5Xml_install_prefix}/include/QtXml/5.8.0"
++ "${_qt5Xml_install_prefix}/include/QtXml/5.8.0/QtXml"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5Xml_OWN_INCLUDE_DIRS})
+diff --git a/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake b/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake
+index 662a612..45cfe8b 100644
+--- a/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake
++++ b/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake
+@@ -56,7 +56,10 @@ endmacro()
+ if (NOT TARGET Qt5::XmlPatterns)
+
+ set(_Qt5XmlPatterns_OWN_INCLUDE_DIRS "${_qt5XmlPatterns_install_prefix}/include/" "${_qt5XmlPatterns_install_prefix}/include/QtXmlPatterns")
+- set(Qt5XmlPatterns_PRIVATE_INCLUDE_DIRS "")
++ set(Qt5XmlPatterns_PRIVATE_INCLUDE_DIRS
++ "${_qt5XmlPatterns_install_prefix}/include/QtXmlPatterns/5.8.0"
++ "${_qt5XmlPatterns_install_prefix}/include/QtXmlPatterns/5.8.0/QtXmlPatterns"
++ )
+ include("${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake" OPTIONAL)
+
+ foreach(_dir ${_Qt5XmlPatterns_OWN_INCLUDE_DIRS})
+
diff --git a/ports/qt5/portfile.cmake b/ports/qt5/portfile.cmake
index ee871b155f5..cf127bf1b5c 100644
--- a/ports/qt5/portfile.cmake
+++ b/ports/qt5/portfile.cmake
@@ -1,6 +1,12 @@
-include(${CMAKE_TRIPLET_FILE})
include(vcpkg_common_functions)
+string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
+if(BUILDTREES_PATH_LENGTH GREATER 27)
+ message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n"
+ "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
+ )
+endif()
+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
include(configure_qt)
include(install_qt)
@@ -56,6 +62,10 @@ configure_qt(
)
install_qt()
+vcpkg_apply_patches(
+ SOURCE_PATH ${CURRENT_PACKAGES_DIR}/lib/cmake
+ PATCHES "${CMAKE_CURRENT_LIST_DIR}/add-private-header-paths.patch"
+)
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/ragel/portfile.cmake b/ports/ragel/portfile.cmake
index bad1efaafa2..00082e4bde6 100644
--- a/ports/ragel/portfile.cmake
+++ b/ports/ragel/portfile.cmake
@@ -23,7 +23,8 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/ragel.txt)
+# Allow empty include directory
+set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ragel)
diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL
index 9dc9198f865..a9a584c06d5 100644
--- a/ports/tbb/CONTROL
+++ b/ports/tbb/CONTROL
@@ -1,3 +1,3 @@
Source: tbb
-Version: 2017_U6
+Version: 2017_U7
Description: Intel's Threading Building Blocks.
diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake
index a733be711dc..387762bcb49 100644
--- a/ports/tbb/portfile.cmake
+++ b/ports/tbb/portfile.cmake
@@ -10,8 +10,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO 01org/tbb
- REF 2017_U6
- SHA512 76b49fd085d8407b68b0f17e6eebfbcb7d2e6f9116bb5f6a00c6b4d59a55b16f9de79a2b9c9c3ece497b01810c33df21d0657893fd886db8bed639091ba97060
+ REF 2017_U7
+ SHA512 77fdd381eece8fb2fba4115af55d168e9d433bbdae3c21a53c35e7d5ed3397645fe75998ad10593b718f6959daaac05112401480cdb4fd2054f50b5f6f1a0df6
HEAD_REF tbb_2017)
if(TRIPLET_SYSTEM_ARCH STREQUAL x86)
@@ -56,6 +56,33 @@ file(COPY
vcpkg_copy_pdbs()
+# Since 2017_U7 TBB provides a CMake script to generate config file
+include(${SOURCE_PATH}/cmake/TBBMakeConfig.cmake)
+tbb_make_config(TBB_ROOT ${CURRENT_PACKAGES_DIR}
+ CONFIG_DIR TBB_CONFIG_DIR # is set to ${CURRENT_PACKAGES_DIR}/cmake
+ SYSTEM_NAME "Windows"
+ CONFIG_FOR_SOURCE
+ TBB_RELEASE_DIR "\${_tbb_root}/bin"
+ TBB_DEBUG_DIR "\${_tbb_root}/debug/bin")
+
+file(COPY ${TBB_CONFIG_DIR}/TBBConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb)
+file(COPY ${TBB_CONFIG_DIR}/TBBConfigVersion.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb)
+file(REMOVE_RECURSE ${TBB_CONFIG_DIR})
+
+# make it work with our installation layout
+file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake TBB_CONFIG_CMAKE)
+string(REPLACE
+"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)"
+"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)
+get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+string(REPLACE
+"\${_tbb_root}/bin/\${_tbb_component}.lib"
+"\${_tbb_root}/lib/\${_tbb_component}.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+string(REPLACE
+"\${_tbb_root}/debug/bin/\${_tbb_component}_debug.lib"
+"\${_tbb_root}/debug/lib/\${_tbb_component}_debug.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${TBB_CONFIG_CMAKE}")
+
message(STATUS "Installing done")
# Handle copyright
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index 7d43336de56..07acfc8eab7 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -109,11 +109,26 @@ function(vcpkg_configure_cmake)
list(APPEND _csc_OPTIONS -DBUILD_SHARED_LIBS=OFF)
endif()
+ if((NOT DEFINED VCPKG_CXX_FLAGS_DEBUG AND NOT DEFINED VCPKG_C_FLAGS_DEBUG) OR
+ (DEFINED VCPKG_CXX_FLAGS_DEBUG AND DEFINED VCPKG_C_FLAGS_DEBUG))
+ else()
+ message(FATAL_ERROR "You must set both the VCPKG_CXX_FLAGS_DEBUG and VCPKG_C_FLAGS_DEBUG")
+ endif()
+ if((NOT DEFINED VCPKG_CXX_FLAGS_RELEASE AND NOT DEFINED VCPKG_C_FLAGS_RELEASE) OR
+ (DEFINED VCPKG_CXX_FLAGS_RELEASE AND DEFINED VCPKG_C_FLAGS_RELEASE))
+ else()
+ message(FATAL_ERROR "You must set both the VCPKG_CXX_FLAGS_RELEASE and VCPKG_C_FLAGS_RELEASE")
+ endif()
+ if((NOT DEFINED VCPKG_CXX_FLAGS AND NOT DEFINED VCPKG_C_FLAGS) OR
+ (DEFINED VCPKG_CXX_FLAGS AND DEFINED VCPKG_C_FLAGS))
+ else()
+ message(FATAL_ERROR "You must set both the VCPKG_CXX_FLAGS and VCPKG_C_FLAGS")
+ endif()
list(APPEND _csc_OPTIONS
"-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}"
- "-DCMAKE_CXX_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP"
- "-DCMAKE_C_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /MP"
+ "-DCMAKE_CXX_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP ${VCPKG_CXX_FLAGS}"
+ "-DCMAKE_C_FLAGS= /DWIN32 /D_WINDOWS /W3 /utf-8 /MP ${VCPKG_C_FLAGS}"
"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
"-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON"
@@ -123,28 +138,31 @@ function(vcpkg_configure_cmake)
"-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT_DIR}/scripts/buildsystems/vcpkg.cmake"
"-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON"
)
+
if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL dynamic)
list(APPEND _csc_OPTIONS_DEBUG
- "-DCMAKE_CXX_FLAGS_DEBUG=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1"
- "-DCMAKE_C_FLAGS_DEBUG=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1"
+ "-DCMAKE_CXX_FLAGS_DEBUG=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}"
+ "-DCMAKE_C_FLAGS_DEBUG=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}"
)
list(APPEND _csc_OPTIONS_RELEASE
- "-DCMAKE_CXX_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Zi"
- "-DCMAKE_C_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Zi"
+ "-DCMAKE_CXX_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Zi ${VCPKG_CXX_FLAGS_RELEASE}"
+ "-DCMAKE_C_FLAGS_RELEASE=/MD /O2 /Oi /Gy /DNDEBUG /Zi ${VCPKG_C_FLAGS_RELEASE}"
)
+
elseif(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL static)
list(APPEND _csc_OPTIONS_DEBUG
- "-DCMAKE_CXX_FLAGS_DEBUG=/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1"
- "-DCMAKE_C_FLAGS_DEBUG=/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1"
+ "-DCMAKE_CXX_FLAGS_DEBUG=/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}"
+ "-DCMAKE_C_FLAGS_DEBUG=/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}"
)
list(APPEND _csc_OPTIONS_RELEASE
- "-DCMAKE_CXX_FLAGS_RELEASE=/MT /O2 /Oi /Gy /DNDEBUG /Zi"
- "-DCMAKE_C_FLAGS_RELEASE=/MT /O2 /Oi /Gy /DNDEBUG /Zi"
+ "-DCMAKE_CXX_FLAGS_RELEASE=/MT /O2 /Oi /Gy /DNDEBUG /Zi ${VCPKG_CXX_FLAGS_RELEASE}"
+ "-DCMAKE_C_FLAGS_RELEASE=/MT /O2 /Oi /Gy /DNDEBUG /Zi ${VCPKG_C_FLAGS_RELEASE}"
)
endif()
+
list(APPEND _csc_OPTIONS_RELEASE
- "-DCMAKE_SHARED_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF"
- "-DCMAKE_EXE_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF"
+ "-DCMAKE_SHARED_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}"
+ "-DCMAKE_EXE_LINKER_FLAGS_RELEASE=/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}"
)
message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
diff --git a/toolsrc/include/LineInfo.h b/toolsrc/include/LineInfo.h
index 66d91c52043..62973462afc 100644
--- a/toolsrc/include/LineInfo.h
+++ b/toolsrc/include/LineInfo.h
@@ -1,5 +1,7 @@
#pragma once
+#include
+
namespace vcpkg
{
struct LineInfo
diff --git a/toolsrc/include/PackageSpec.h b/toolsrc/include/PackageSpec.h
index 050d9d07937..58edb827467 100644
--- a/toolsrc/include/PackageSpec.h
+++ b/toolsrc/include/PackageSpec.h
@@ -7,9 +7,11 @@ namespace vcpkg
{
struct PackageSpec
{
- static Expected from_string(const std::string& spec_as_string, const Triplet& default_triplet);
+ static ExpectedT from_string(const std::string& spec_as_string,
+ const Triplet& default_triplet);
static std::string to_string(const std::string& name, const Triplet& triplet);
- static Expected from_name_and_triplet(const std::string& name, const Triplet& triplet);
+ static ExpectedT from_name_and_triplet(const std::string& name,
+ const Triplet& triplet);
const std::string& name() const;
diff --git a/toolsrc/include/PackageSpecParseResult.h b/toolsrc/include/PackageSpecParseResult.h
index b72c534c28d..1462b8073df 100644
--- a/toolsrc/include/PackageSpecParseResult.h
+++ b/toolsrc/include/PackageSpecParseResult.h
@@ -1,5 +1,6 @@
#pragma once
-#include
+
+#include "vcpkg_expected.h"
namespace vcpkg
{
@@ -10,27 +11,22 @@ namespace vcpkg
INVALID_CHARACTERS
};
- struct PackageSpecParseResultCategoryImpl final : std::error_category
- {
- virtual const char* name() const noexcept override;
+ CStringView to_string(PackageSpecParseResult ev) noexcept;
- virtual std::string message(int ev) const noexcept override;
- };
-
- const std::error_category& package_spec_parse_result_category();
-
- std::error_code make_error_code(PackageSpecParseResult e);
-
- PackageSpecParseResult to_package_spec_parse_result(int i);
-
- PackageSpecParseResult to_package_spec_parse_result(std::error_code ec);
-}
-
-// Enable implicit conversion to std::error_code
-namespace std
-{
template<>
- struct is_error_code_enum : ::std::true_type
+ struct ErrorHolder
{
+ ErrorHolder() : m_err(PackageSpecParseResult::SUCCESS) {}
+ ErrorHolder(PackageSpecParseResult err) : m_err(err) {}
+
+ constexpr bool has_error() const { return m_err != PackageSpecParseResult::SUCCESS; }
+
+ const PackageSpecParseResult& error() const { return m_err; }
+ PackageSpecParseResult& error() { return m_err; }
+
+ CStringView to_string() const { return vcpkg::to_string(m_err); }
+
+ private:
+ PackageSpecParseResult m_err;
};
}
diff --git a/toolsrc/include/Paragraphs.h b/toolsrc/include/Paragraphs.h
index 66f6bd2e4df..59f0eefc8e3 100644
--- a/toolsrc/include/Paragraphs.h
+++ b/toolsrc/include/Paragraphs.h
@@ -16,7 +16,8 @@ namespace vcpkg::Paragraphs
Expected parse_single_paragraph(const std::string& str);
Expected> parse_paragraphs(const std::string& str);
- Expected try_load_port(const Files::Filesystem& fs, const fs::path& control_path);
+ ExpectedT try_load_port(const Files::Filesystem& fs,
+ const fs::path& control_path);
Expected try_load_cached_package(const VcpkgPaths& paths, const PackageSpec& spec);
diff --git a/toolsrc/include/PostBuildLint_BuildType.h b/toolsrc/include/PostBuildLint_BuildType.h
index 58bb20766ec..38ad3084e2a 100644
--- a/toolsrc/include/PostBuildLint_BuildType.h
+++ b/toolsrc/include/PostBuildLint_BuildType.h
@@ -1,12 +1,17 @@
#pragma once
#include "CStringView.h"
-#include "PostBuildLint_ConfigurationType.h"
-#include "PostBuildLint_LinkageType.h"
+#include "vcpkg_Build.h"
#include
#include
namespace vcpkg::PostBuildLint
{
+ enum class ConfigurationType
+ {
+ DEBUG,
+ RELEASE,
+ };
+
struct BuildType
{
enum class BackingEnum
@@ -17,11 +22,13 @@ namespace vcpkg::PostBuildLint
RELEASE_DYNAMIC
};
- static BuildType value_of(const ConfigurationType& config, const LinkageType& linkage);
+ static BuildType value_of(const ConfigurationType& config, const Build::LinkageType& linkage);
BuildType() = delete;
- constexpr BuildType(const BackingEnum backing_enum, const ConfigurationType config, const LinkageType linkage)
+ constexpr BuildType(const BackingEnum backing_enum,
+ const ConfigurationType config,
+ const Build::LinkageType linkage)
: backing_enum(backing_enum), m_config(config), m_linkage(linkage)
{
}
@@ -29,28 +36,29 @@ namespace vcpkg::PostBuildLint
constexpr operator BackingEnum() const { return backing_enum; }
const ConfigurationType& config() const;
- const LinkageType& linkage() const;
+ const Build::LinkageType& linkage() const;
const std::regex& crt_regex() const;
const std::string& to_string() const;
private:
BackingEnum backing_enum;
ConfigurationType m_config;
- LinkageType m_linkage;
+ Build::LinkageType m_linkage;
};
namespace BuildTypeC
{
- namespace CC = ConfigurationTypeC;
- namespace LC = LinkageTypeC;
+ using Build::LinkageType;
using BE = BuildType::BackingEnum;
static constexpr CStringView ENUM_NAME = "vcpkg::PostBuildLint::BuildType";
- static constexpr BuildType DEBUG_STATIC = {BE::DEBUG_STATIC, CC::DEBUG, LC::STATIC};
- static constexpr BuildType DEBUG_DYNAMIC = {BE::DEBUG_DYNAMIC, CC::DEBUG, LC::DYNAMIC};
- static constexpr BuildType RELEASE_STATIC = {BE::RELEASE_STATIC, CC::RELEASE, LC::STATIC};
- static constexpr BuildType RELEASE_DYNAMIC = {BE::RELEASE_DYNAMIC, CC::RELEASE, LC::DYNAMIC};
+ static constexpr BuildType DEBUG_STATIC = {BE::DEBUG_STATIC, ConfigurationType::DEBUG, LinkageType::STATIC};
+ static constexpr BuildType DEBUG_DYNAMIC = {BE::DEBUG_DYNAMIC, ConfigurationType::DEBUG, LinkageType::DYNAMIC};
+ static constexpr BuildType RELEASE_STATIC = {
+ BE::RELEASE_STATIC, ConfigurationType::RELEASE, LinkageType::STATIC};
+ static constexpr BuildType RELEASE_DYNAMIC = {
+ BE::RELEASE_DYNAMIC, ConfigurationType::RELEASE, LinkageType::DYNAMIC};
static constexpr std::array VALUES = {
DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC};
diff --git a/toolsrc/include/PostBuildLint_ConfigurationType.h b/toolsrc/include/PostBuildLint_ConfigurationType.h
deleted file mode 100644
index 8157415b045..00000000000
--- a/toolsrc/include/PostBuildLint_ConfigurationType.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-#include "CStringView.h"
-#include
-
-namespace vcpkg::PostBuildLint
-{
- struct ConfigurationType
- {
- enum class BackingEnum
- {
- NULLVALUE = 0,
- DEBUG = 1,
- RELEASE = 2
- };
-
- constexpr ConfigurationType() : backing_enum(BackingEnum::NULLVALUE) {}
- constexpr explicit ConfigurationType(BackingEnum backing_enum) : backing_enum(backing_enum) {}
- constexpr operator BackingEnum() const { return backing_enum; }
-
- const std::string& to_string() const;
-
- private:
- BackingEnum backing_enum;
- };
-
- namespace ConfigurationTypeC
- {
- static constexpr CStringView ENUM_NAME = "vcpkg::PostBuildLint::ConfigurationType";
-
- static constexpr ConfigurationType NULLVALUE(ConfigurationType::BackingEnum::NULLVALUE);
- static constexpr ConfigurationType DEBUG(ConfigurationType::BackingEnum::DEBUG);
- static constexpr ConfigurationType RELEASE(ConfigurationType::BackingEnum::RELEASE);
-
- static constexpr std::array VALUES = {DEBUG, RELEASE};
- }
-}
diff --git a/toolsrc/include/PostBuildLint_LinkageType.h b/toolsrc/include/PostBuildLint_LinkageType.h
deleted file mode 100644
index 8d19dc5a424..00000000000
--- a/toolsrc/include/PostBuildLint_LinkageType.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-#include "CStringView.h"
-#include
-
-namespace vcpkg::PostBuildLint
-{
- struct LinkageType final
- {
- enum class BackingEnum
- {
- NULLVALUE = 0,
- DYNAMIC,
- STATIC
- };
-
- static LinkageType value_of(const std::string& as_string);
-
- constexpr LinkageType() : backing_enum(BackingEnum::NULLVALUE) {}
- constexpr explicit LinkageType(BackingEnum backing_enum) : backing_enum(backing_enum) {}
- constexpr operator BackingEnum() const { return backing_enum; }
-
- const std::string& to_string() const;
-
- private:
- BackingEnum backing_enum;
- };
-
- namespace LinkageTypeC
- {
- static constexpr CStringView ENUM_NAME = "vcpkg::PostBuildLint::LinkageType";
-
- static constexpr LinkageType NULLVALUE(LinkageType::BackingEnum::NULLVALUE);
- static constexpr LinkageType DYNAMIC(LinkageType::BackingEnum::DYNAMIC);
- static constexpr LinkageType STATIC(LinkageType::BackingEnum::STATIC);
-
- static constexpr std::array VALUES = {DYNAMIC, STATIC};
- }
-}
diff --git a/toolsrc/include/SourceParagraph.h b/toolsrc/include/SourceParagraph.h
index 19f55817051..a53158f3f5c 100644
--- a/toolsrc/include/SourceParagraph.h
+++ b/toolsrc/include/SourceParagraph.h
@@ -1,5 +1,9 @@
#pragma once
+#include "vcpkg_System.h"
+#include "vcpkg_expected.h"
+
+#include
#include
#include
@@ -15,24 +19,68 @@ namespace vcpkg
const std::string& to_string(const Dependency& dep);
+ struct ParseControlErrorInfo
+ {
+ std::string name;
+ std::string remaining_fields_as_string;
+ std::string valid_fields_as_string;
+ std::error_code error;
+ };
+
///
/// Port metadata (CONTROL file)
///
struct SourceParagraph
{
- SourceParagraph();
+ static ExpectedT parse_control_file(
+ std::unordered_map fields);
- explicit SourceParagraph(std::unordered_map fields);
+ SourceParagraph() = default;
std::string name;
std::string version;
std::string description;
std::string maintainer;
+ std::vector supports;
std::vector depends;
};
+ void print_error_message(const ParseControlErrorInfo& info);
+ void print_error_message(std::vector error_info_list);
+
std::vector filter_dependencies(const std::vector& deps, const Triplet& t);
std::vector expand_qualified_dependencies(const std::vector& depends);
- std::vector parse_depends(const std::string& depends_string);
+ std::vector parse_comma_list(const std::string& str);
+
+ struct Supports
+ {
+ static ExpectedT> parse(const std::vector& strs);
+
+ using Architecture = System::CPUArchitecture;
+
+ enum class Platform
+ {
+ WINDOWS,
+ UWP,
+ };
+ enum class Linkage
+ {
+ DYNAMIC,
+ STATIC,
+ };
+ enum class ToolsetVersion
+ {
+ V140,
+ V141,
+ };
+
+ bool supports(Architecture arch, Platform plat, Linkage crt, ToolsetVersion tools);
+
+ private:
+ std::vector architectures;
+ std::vector platforms;
+ std::vector crt_linkages;
+ std::vector toolsets;
+ };
}
diff --git a/toolsrc/include/VcpkgPaths.h b/toolsrc/include/VcpkgPaths.h
index 25c1728b9ac..95cd4bc28e4 100644
--- a/toolsrc/include/VcpkgPaths.h
+++ b/toolsrc/include/VcpkgPaths.h
@@ -48,7 +48,12 @@ namespace vcpkg
const fs::path& get_cmake_exe() const;
const fs::path& get_git_exe() const;
const fs::path& get_nuget_exe() const;
- const Toolset& get_toolset() const;
+
+ /// Retrieve a toolset matching a VS version
+ ///
+ /// Valid version strings are "v140", "v141", and "". Empty string gets the latest.
+ ///
+ const Toolset& get_toolset(const std::string& toolset_version) const;
Files::Filesystem& get_filesystem() const;
@@ -56,6 +61,6 @@ namespace vcpkg
Lazy cmake_exe;
Lazy git_exe;
Lazy nuget_exe;
- Lazy toolset;
+ Lazy> toolsets;
};
}
diff --git a/toolsrc/include/vcpkg_Build.h b/toolsrc/include/vcpkg_Build.h
index e0a5ae1ce9b..e13f660291a 100644
--- a/toolsrc/include/vcpkg_Build.h
+++ b/toolsrc/include/vcpkg_Build.h
@@ -2,18 +2,50 @@
#include "CStringView.h"
#include "PackageSpec.h"
-#include "PostBuildLint_LinkageType.h"
#include "StatusParagraphs.h"
#include "VcpkgPaths.h"
#include "vcpkg_Files.h"
#include "vcpkg_optional.h"
+#include
#include