diff --git a/docs/maintainers/control-files.md b/docs/maintainers/control-files.md
index a074a7ae2..87468e6af 100644
--- a/docs/maintainers/control-files.md
+++ b/docs/maintainers/control-files.md
@@ -8,7 +8,7 @@ Field names are case-sensitive and start the line without leading whitespace. P
## Source Paragraph
-The first paragraph in a `CONTROL` file is the Source paragraph. It must have a `Source`, `Version`, and `Description` field. It can optionally have a `Build-Depends` and `Default-Features` field.
+The first paragraph in a `CONTROL` file is the Source paragraph. It must have a `Source`, `Version`, and `Description` field. The full set of fields is documented below.
### Examples:
```no-highlight
@@ -58,7 +58,7 @@ For example, given:
Then if you update the source version today, you should give it version `2019-06-01`. If you need to make a change which doesn't adjust the source version, you should give it version `2019-02-14-2`.
-Example:
+##### Examples:
```no-highlight
Version: 1.0.5-2
```
@@ -71,7 +71,7 @@ A description of the library.
By convention the first line of the description is a summary of the library. An optional detailed description follows. The detailed description can be multiple lines, all starting with whitespace.
-Example:
+##### Examples:
```no-highlight
Description: C++ header-only JSON library
```
@@ -96,17 +96,13 @@ Vcpkg does not distinguish between build-only dependencies and runtime dependenc
*For example: websocketpp is a header only library, and thus does not require any dependencies at install time. However, downstream users need boost and openssl to make use of the library. Therefore, websocketpp lists boost and openssl as dependencies*
-Example:
-```no-highlight
-Build-Depends: zlib, libpng, libjpeg-turbo, tiff
-```
-If the port is dependent on optional features of another library those can be specified using the `portname[featurelist]` syntax.
+If the port is dependent on optional features of another library those can be specified using the `portname[featurelist]` syntax. If the port does not require any features from the dependency, this should be specifed as `portname[core]`.
-Dependencies can be filtered based on the target triplet to support different requirements on Windows Desktop versus the Universal Windows Platform. Currently, the string inside parentheses is substring-compared against the triplet name. There must be a space between the name of the port and the filter. __This will change in a future version to not depend on the triplet name.__
+Dependencies can be filtered based on the target triplet to support differing requirements. These filters use the same syntax as the Supports field below and are surrounded in parentheses following the portname and feature list.
-Example:
+##### Example:
```no-highlight
-Build-Depends: curl[openssl] (!windows&!osx), curl[winssl] (windows), curl[darwinssl] (osx)
+Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
```
#### Default-Features
@@ -114,10 +110,46 @@ Comma separated list of optional port features to install by default.
This field is optional.
+##### Example:
```no-highlight
Default-Features: dynamodb, s3, kinesis
```
+
+#### Supports
+Expression that evaluates to true when the port is expected to build successfully for a triplet.
+
+Currently, this field is only used in the CI testing to skip ports. In the future, this mechanism is intended to warn users in advance that a given install tree is not expected to succeed. Therefore, this field should be used optimistically; in cases where a port is expected to succeed 10% of the time, it should still be marked "supported".
+
+The grammar for the supports expression uses standard operators:
+- `!expr` - negation
+- `expr|expr` - or (`||` is also supported)
+- `expr&expr` - and (`&&` is also supported)
+- `(expr)` - grouping/precedence
+
+The predefined expressions are computed from standard triplet settings:
+- `x64` - `VCPKG_TARGET_ARCHITECTURE` == `"x64"`
+- `x86` - `VCPKG_TARGET_ARCHITECTURE` == `"x86"`
+- `arm` - `VCPKG_TARGET_ARCHITECTURE` == `"arm"` or `VCPKG_TARGET_ARCHITECTURE` == `"arm64"`
+- `arm64` - `VCPKG_TARGET_ARCHITECTURE` == `"arm64"`
+- `windows` - `VCPKG_CMAKE_SYSTEM_NAME` == `""` or `VCPKG_CMAKE_SYSTEM_NAME` == `"WindowsStore"`
+- `uwp` - `VCPKG_CMAKE_SYSTEM_NAME` == `"WindowsStore"`
+- `linux` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Linux"`
+- `osx` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Darwin"`
+- `android` - `VCPKG_CMAKE_SYSTEM_NAME` == `"Android"`
+- `static` - `VCPKG_LIBRARY_LINKAGE` == `"static"`
+
+These predefined expressions can be overridden in the triplet file via the [`VCPKG_DEP_INFO_OVERRIDE_VARS`](../users/triplets.md) option.
+
+This field is optional and defaults to true.
+
+> Implementers' Note: these terms are computed from the triplet via the `vcpkg_get_dep_info` mechanism.
+
+##### Example:
+```no-highlight
+Supports: !(uwp|arm)
+```
+
## Feature Paragraphs
Multiple optional features can be specified in the `CONTROL` files. It must have a `Feature` and `Description` field. It can optionally have a `Build-Depends` field. It must be separated from other paragraphs by one or more empty lines.
diff --git a/docs/users/triplets.md b/docs/users/triplets.md
index 6e52d347d..21dea5c31 100644
--- a/docs/users/triplets.md
+++ b/docs/users/triplets.md
@@ -2,20 +2,17 @@
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.
+In Vcpkg, we use triplets to describe an imaginary "target configuration set" for every library. Within a triplet, libraries are generally built with the same configuration, but it is not a requirement. For example, you could have one triplet that builds `openssl` statically and `zlib` dynamically, one that builds them both statically, and one that builds them both dynamically (all for the same target OS and architecture). A single build will consume files from a single triplet.
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).
-
## Community triplets
-Triplets contained in the `triplets\community` folder are not tested by continuous integration.
+Triplets contained in the `triplets\community` folder are not tested by continuous integration, but are commonly requested by the community.
-These triplets contain configurations commonly requested by the community, but for which we lack the resources to properly test.
-
-Port updates may break compatibility with community triplets, such regressions won't get caught by our testing pipelines. Because of this, community involvement is paramount!
+Because we do not have continuous coverage, port updates may break compatibility with community triplets. Because of this, community involvement is paramount!
We will gladly accept and review contributions that aim to solve issues with these triplets.
@@ -23,7 +20,7 @@ We will gladly accept and review contributions that aim to solve issues with the
Community Triplets are enabled by default, when using a community triplet a message like the following one will be printed during a package install:
-```bash
+```no-highlight
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\viromer\vcpkg\triplets\community\x86-uwp.cmake
```
@@ -78,8 +75,29 @@ This option also has forms for configuration-specific and C flags:
- `VCPKG_C_FLAGS_DEBUG`
- `VCPKG_C_FLAGS_RELEASE`
+
+### VCPKG_DEP_INFO_OVERRIDE_VARS
+Replaces the default computed list of triplet "Supports" terms.
+
+This option (if set) will override the default set of terms used for qualified dependency resolution and "Supports" field evaluation.
+
+See the [`Supports`](../maintainers/control-files.md#Supports) control file field documentation for more details.
+
+> Implementers' Note: this list is extracted via the `vcpkg_get_dep_info` mechanism.
+
## Windows Variables
+### VCPKG_ENV_PASSTHROUGH
+Instructs vcpkg to allow additional environment variables into the build process.
+
+On Windows, vcpkg builds packages in a special clean environment that is isolated from the current command prompt to ensure build reliability and consistency.
+
+This triplet option can be set to a list of additional environment variables that will be added to the clean environment.
+
+See also the `vcpkg env` command for how you can inspect the precise environment that will be used.
+
+> Implementers' Note: this list is extracted via the `vcpkg_get_tags` mechanism.
+
### VCPKG_VISUAL_STUDIO_PATH
Specifies the Visual Studio installation to use.
diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL
index 459eeee3f..01f27c758 100644
--- a/ports/abseil/CONTROL
+++ b/ports/abseil/CONTROL
@@ -5,3 +5,4 @@ Description: an open-source collection designed to augment the C++ standard libr
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL
index 1530b043a..4cf1db8bc 100644
--- a/ports/ace/CONTROL
+++ b/ports/ace/CONTROL
@@ -2,6 +2,7 @@ Source: ace
Version: 6.5.7-1
Homepage: https://www.dre.vanderbilt.edu/~schmidt/ACE.html
Description: The ADAPTIVE Communication Environment
+Supports: !uwp
Feature: wchar
Description: Enable extra wide char functions in ACE
diff --git a/ports/activemq-cpp/CONTROL b/ports/activemq-cpp/CONTROL
index 5a7ade4e9..891c51ee7 100644
--- a/ports/activemq-cpp/CONTROL
+++ b/ports/activemq-cpp/CONTROL
@@ -2,3 +2,4 @@ Source: activemq-cpp
Version: 3.9.5-1
Build-Depends: apr
Description: Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/akali/portfile.cmake b/ports/akali/portfile.cmake
index e1be35018..aa59b0389 100644
--- a/ports/akali/portfile.cmake
+++ b/ports/akali/portfile.cmake
@@ -12,7 +12,8 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" AKALI_STATIC)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
+ PREFER_NINJA
OPTIONS
-DAKALI_STATIC:BOOL=${AKALI_STATIC}
-DBUILD_TESTS:BOOL=OFF
diff --git a/ports/alac/CONTROL b/ports/alac/CONTROL
index 1bea4dc14..7938d6b71 100644
--- a/ports/alac/CONTROL
+++ b/ports/alac/CONTROL
@@ -2,3 +2,4 @@ Source: alac
Version: 2017-11-03-c38887c5-1
Homepage: https://github.com/macosforge/alac
Description: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/aliyun-oss-c-sdk/CONTROL b/ports/aliyun-oss-c-sdk/CONTROL
index 430541401..fdf8c658b 100644
--- a/ports/aliyun-oss-c-sdk/CONTROL
+++ b/ports/aliyun-oss-c-sdk/CONTROL
@@ -2,3 +2,4 @@ Source: aliyun-oss-c-sdk
Version: 3.7.1-1
Description: Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability.
Build-Depends: curl, apr-util
+Supports: !uwp
diff --git a/ports/ampl-mp/CONTROL b/ports/ampl-mp/CONTROL
index d45564c4f..a8f88ac55 100644
--- a/ports/ampl-mp/CONTROL
+++ b/ports/ampl-mp/CONTROL
@@ -1,3 +1,4 @@
Source: ampl-mp
Version: 2019-03-21-1
Description: An open-source library for mathematical programming
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL
index 746583603..714022691 100644
--- a/ports/apr/CONTROL
+++ b/ports/apr/CONTROL
@@ -2,6 +2,7 @@ Source: apr
Version: 1.6.5-3
Homepage: https://apr.apache.org/
Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.
+Supports: !uwp
Feature: private-headers
Description: Install non-standard files required for building Apache httpd
diff --git a/ports/arrow/CONTROL b/ports/arrow/CONTROL
index 780568f03..896f78af4 100644
--- a/ports/arrow/CONTROL
+++ b/ports/arrow/CONTROL
@@ -3,3 +3,4 @@ Version: 0.15.1
Build-Depends: boost-system, boost-filesystem, boost-multiprecision, boost-algorithm, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags, thrift, double-conversion, glog, uriparser
Homepage: https://github.com/apache/arrow
Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.
+Supports: x64
\ No newline at end of file
diff --git a/ports/asiosdk/CONTROL b/ports/asiosdk/CONTROL
new file mode 100644
index 000000000..1a8c75628
--- /dev/null
+++ b/ports/asiosdk/CONTROL
@@ -0,0 +1,4 @@
+Source: asiosdk
+Version: 2.3.3
+Homepage: https://www.steinberg.net/en/company/developers.html
+Description: ASIO is a low latency audio API from Steinberg.
diff --git a/ports/asiosdk/Findasiosdk.cmake b/ports/asiosdk/Findasiosdk.cmake
new file mode 100644
index 000000000..b8f32f830
--- /dev/null
+++ b/ports/asiosdk/Findasiosdk.cmake
@@ -0,0 +1,37 @@
+if(WIN32)
+else(WIN32)
+ message(FATAL_ERROR "Findasiosdk.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" )
+endif(WIN32)
+
+find_path(
+ ASIOSDK_ROOT_DIR
+ asiosdk
+)
+
+if (NOT "${ASIOSDK_ROOT_DIR}" STREQUAL "")
+ set(ASIOSDK_ROOT_DIR
+ ${ASIOSDK_ROOT_DIR}/asiosdk
+ )
+endif()
+
+find_path(ASIOSDK_INCLUDE_DIR
+ asio.h
+ PATHS
+ ${ASIOSDK_ROOT_DIR}/common
+)
+
+
+if (NOT "${ASIOSDK_ROOT_DIR}" STREQUAL "")
+ set (ASIOSDK_INCLUDE_DIR
+ ${ASIOSDK_ROOT_DIR}/common
+ ${ASIOSDK_ROOT_DIR}/host
+ ${ASIOSDK_ROOT_DIR}/hostpc
+ )
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ASIOSDK DEFAULT_MSG ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(
+ ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR
+)
diff --git a/ports/asiosdk/portfile.cmake b/ports/asiosdk/portfile.cmake
new file mode 100644
index 000000000..e4ed662bb
--- /dev/null
+++ b/ports/asiosdk/portfile.cmake
@@ -0,0 +1,32 @@
+vcpkg_fail_port_install(MESSAGE "asiosdk currently only supports Windows platforms" ON_ARCH "arm" "arm64" ON_TARGET "Linux" "OSX" "uwp")
+
+set(VERSION 2.3.3)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://download.steinberg.net/sdk_downloads/asiosdk_2.3.3_2019-06-14.zip"
+ FILENAME "asiosdk_2.3.3_2019-06-14.zip"
+ SHA512 65d6f2fa4f0e23939fcdf46ff3b04760089c0f14e2ac3e37e63cbf6733f3acc93ab930ea9e3f1eb60483d4654f7ba4699ed506531074c4f55e763ad92736c231
+)
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ REF ${VERSION}
+)
+
+file(INSTALL ${SOURCE_PATH}/asio/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/asiosdk/asio)
+file(INSTALL ${SOURCE_PATH}/common/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/asiosdk/common)
+file(INSTALL ${SOURCE_PATH}/driver/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/asiosdk/driver)
+file(INSTALL ${SOURCE_PATH}/host/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/asiosdk/host)
+file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk)
+file(INSTALL ${SOURCE_PATH}/readme.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/changes.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk)
+file(INSTALL "${SOURCE_PATH}/Steinberg ASIO Logo Artwork.zip" DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk)
+file(INSTALL "${SOURCE_PATH}/Steinberg ASIO Licensing Agreement.pdf" DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk)
+file(INSTALL "${SOURCE_PATH}/ASIO SDK 2.3.pdf" DESTINATION ${CURRENT_PACKAGES_DIR}/share/asiosdk)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/Findasiosdk.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+
diff --git a/ports/asiosdk/usage b/ports/asiosdk/usage
new file mode 100644
index 000000000..1afa2ae84
--- /dev/null
+++ b/ports/asiosdk/usage
@@ -0,0 +1,4 @@
+The package asiosdk provides CMake integration:
+
+ find_package(asiosdk REQUIRED)
+ target_include_directories( PRIVATE ${ASIOSDK_INCLUDE_DIRS})
diff --git a/ports/asiosdk/vcpkg-cmake-wrapper.cmake b/ports/asiosdk/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..2fbe9725f
--- /dev/null
+++ b/ports/asiosdk/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,8 @@
+set(ASIOSDK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+if(NOT ASIOSDK_INCLUDE_DIR)
+ _find_package(${ARGS})
+endif()
+
+set(CMAKE_MODULE_PATH ${ASIOSDK_PREV_MODULE_PATH})
diff --git a/ports/avro-c/CONTROL b/ports/avro-c/CONTROL
index 6dfdb7101..196c8936e 100644
--- a/ports/avro-c/CONTROL
+++ b/ports/avro-c/CONTROL
@@ -1,5 +1,5 @@
Source: avro-c
-Version: 1.8.2-3
+Version: 1.8.2-4
Homepage: https://github.com/apache/avro
Description: Apache Avro is a data serialization system
-Build-Depends: jansson, liblzma, zlib
+Build-Depends: jansson, liblzma, zlib, snappy
diff --git a/ports/avro-c/portfile.cmake b/ports/avro-c/portfile.cmake
index 23be8540e..0e74037fa 100644
--- a/ports/avro-c/portfile.cmake
+++ b/ports/avro-c/portfile.cmake
@@ -12,13 +12,13 @@ vcpkg_from_github(
avro.patch
avro-pr-217.patch
fix-build-error.patch # Since jansson updated, use jansson::jansson instead of the macro ${JANSSON_LIBRARIES}
+ snappy.patch # https://github.com/apache/avro/pull/793
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/lang/c
PREFER_NINJA
OPTIONS
- -DCMAKE_DISABLE_FIND_PACKAGE_Snappy=ON
)
vcpkg_install_cmake()
diff --git a/ports/avro-c/snappy.patch b/ports/avro-c/snappy.patch
new file mode 100644
index 000000000..60a40e300
--- /dev/null
+++ b/ports/avro-c/snappy.patch
@@ -0,0 +1,56 @@
+diff -ru b/c/src/codec.c a/lang/c/src/codec.c
+--- b/lang/c/src/codec.c 2020-01-23 16:18:15.119970300 +0200
++++ a/lang/c/src/codec.c 2020-01-23 19:31:41.679834300 +0200
+@@ -21,6 +21,9 @@
+ # if defined(__APPLE__)
+ # include
+ # define __bswap_32 OSSwapInt32
++# elif defined(_WIN32)
++# include
++# define __bswap_32 _byteswap_ulong
+ # else
+ # include
+ # endif
+@@ -115,14 +118,14 @@
+ return 1;
+ }
+
+- if (snappy_compress(data, len, c->block_data, &outlen) != SNAPPY_OK)
++ if (snappy_compress((const char *)data, len, (char*)c->block_data, &outlen) != SNAPPY_OK)
+ {
+ avro_set_error("Error compressing block with Snappy");
+ return 1;
+ }
+
+- crc = __bswap_32(crc32(0, data, len));
+- memcpy(c->block_data+outlen, &crc, 4);
++ crc = __bswap_32(crc32(0, (const Bytef *)data, len));
++ memcpy((char*)c->block_data+outlen, &crc, 4);
+ c->used_size = outlen+4;
+
+ return 0;
+@@ -133,7 +136,7 @@
+ uint32_t crc;
+ size_t outlen;
+
+- if (snappy_uncompressed_length(data, len-4, &outlen) != SNAPPY_OK) {
++ if (snappy_uncompressed_length((const char*)data, len-4, &outlen) != SNAPPY_OK) {
+ avro_set_error("Uncompressed length error in snappy");
+ return 1;
+ }
+@@ -152,13 +155,13 @@
+ return 1;
+ }
+
+- if (snappy_uncompress(data, len-4, c->block_data, &outlen) != SNAPPY_OK)
++ if (snappy_uncompress((const char*)data, len-4, (char*)c->block_data, &outlen) != SNAPPY_OK)
+ {
+ avro_set_error("Error uncompressing block with Snappy");
+ return 1;
+ }
+
+- crc = __bswap_32(crc32(0, c->block_data, outlen));
++ crc = __bswap_32(crc32(0, (const Bytef *)c->block_data, outlen));
+ if (memcmp(&crc, (char*)data+len-4, 4))
+ {
+ avro_set_error("CRC32 check failure uncompressing block with Snappy");
diff --git a/ports/aws-c-common/CONTROL b/ports/aws-c-common/CONTROL
index 908c7e16a..712566e26 100644
--- a/ports/aws-c-common/CONTROL
+++ b/ports/aws-c-common/CONTROL
@@ -1,3 +1,4 @@
Source: aws-c-common
-Version: 0.4.1
+Version: 0.4.15
+Homepage: https://github.com/awslabs/aws-c-common
Description: AWS common library for C
diff --git a/ports/aws-c-common/disable-error-4068.patch b/ports/aws-c-common/disable-error-4068.patch
index 60720cd67..89735cc11 100644
--- a/ports/aws-c-common/disable-error-4068.patch
+++ b/ports/aws-c-common/disable-error-4068.patch
@@ -1,15 +1,15 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 263d34e..8c699b7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -122,6 +122,10 @@ if (UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD)
- target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500)
- endif()
-
-+if (WIN32)
-+ add_compile_options(/wd4068)
-+endif()
-+
- aws_add_sanitizers(${CMAKE_PROJECT_NAME} BLACKLIST "sanitizer-blacklist.txt")
- target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC ${PLATFORM_LIBS})
-
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 79c66c3..f6639d7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -127,6 +127,10 @@ if (UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD)
+ #this only gets applied to aws-c-common (not its consumers).
+ target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500)
+ endif()
++
++if (WIN32)
++ add_compile_options(/wd4068)
++endif()
+
+ aws_add_sanitizers(${CMAKE_PROJECT_NAME} BLACKLIST "sanitizer-blacklist.txt")
+ target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC ${PLATFORM_LIBS})
diff --git a/ports/aws-c-common/disable-internal-crt-option.patch b/ports/aws-c-common/disable-internal-crt-option.patch
index fccb607cf..cdf24606d 100644
--- a/ports/aws-c-common/disable-internal-crt-option.patch
+++ b/ports/aws-c-common/disable-internal-crt-option.patch
@@ -1,20 +1,20 @@
-diff --git a/cmake/AwsCFlags.cmake b/cmake/AwsCFlags.cmake
-index 0f597d7..1359b8b 100644
---- a/cmake/AwsCFlags.cmake
-+++ b/cmake/AwsCFlags.cmake
-@@ -35,15 +35,6 @@ function(aws_set_common_properties target)
- # /volatile:iso relaxes some implicit memory barriers that MSVC normally applies for volatile accesses
- # Since we want to be compatible with user builds using /volatile:iso, use it for the tests.
- list(APPEND AWS_C_FLAGS /volatile:iso)
--
-- string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE)
-- if(STATIC_CRT)
-- string(REPLACE "/MD" "/MT" _FLAGS "${CMAKE_C_FLAGS_${_CMAKE_BUILD_TYPE}}")
-- else()
-- string(REPLACE "/MT" "/MD" _FLAGS "${CMAKE_C_FLAGS_${_CMAKE_BUILD_TYPE}}")
-- endif()
-- string(REPLACE " " ";" _FLAGS "${_FLAGS}")
-- list(APPEND AWS_C_FLAGS "${_FLAGS}")
-
- else()
- list(APPEND AWS_C_FLAGS -Wall -Werror -Wstrict-prototypes)
+diff --git a/cmake/AwsCFlags.cmake b/cmake/AwsCFlags.cmake
+index 42d146e..813f56d 100644
+--- a/cmake/AwsCFlags.cmake
++++ b/cmake/AwsCFlags.cmake
+@@ -39,15 +39,6 @@ function(aws_set_common_properties target)
+ # Since we want to be compatible with user builds using /volatile:iso, use it for the tests.
+ list(APPEND AWS_C_FLAGS /volatile:iso)
+
+- string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE)
+- if(STATIC_CRT)
+- string(REPLACE "/MD" "/MT" _FLAGS "${CMAKE_C_FLAGS_${_CMAKE_BUILD_TYPE}}")
+- else()
+- string(REPLACE "/MT" "/MD" _FLAGS "${CMAKE_C_FLAGS_${_CMAKE_BUILD_TYPE}}")
+- endif()
+- string(REPLACE " " ";" _FLAGS "${_FLAGS}")
+- list(APPEND AWS_C_FLAGS "${_FLAGS}")
+-
+ else()
+ list(APPEND AWS_C_FLAGS -Wall -Werror -Wstrict-prototypes)
+
diff --git a/ports/aws-c-common/fix-cmake-target-path.patch b/ports/aws-c-common/fix-cmake-target-path.patch
new file mode 100644
index 000000000..d2b5df81d
--- /dev/null
+++ b/ports/aws-c-common/fix-cmake-target-path.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 433b6c5..41874a0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -209,7 +209,7 @@ else()
+ endif()
+
+ install(EXPORT "${CMAKE_PROJECT_NAME}-targets"
+- DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake/${TARGET_DIR}"
++ DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake"
+ NAMESPACE AWS::
+ COMPONENT Development)
+
+diff --git a/cmake/aws-c-common-config.cmake b/cmake/aws-c-common-config.cmake
+index c322b52..6e5daa0 100644
+--- a/cmake/aws-c-common-config.cmake
++++ b/cmake/aws-c-common-config.cmake
+@@ -1,9 +1,5 @@
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+
+-if (BUILD_SHARED_LIBS)
+- include(${CMAKE_CURRENT_LIST_DIR}/shared/@CMAKE_PROJECT_NAME@-targets.cmake)
+-else()
+- include(${CMAKE_CURRENT_LIST_DIR}/static/@CMAKE_PROJECT_NAME@-targets.cmake)
+-endif()
++include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake)
+
diff --git a/ports/aws-c-common/portfile.cmake b/ports/aws-c-common/portfile.cmake
index eed8e1d56..f9881d125 100644
--- a/ports/aws-c-common/portfile.cmake
+++ b/ports/aws-c-common/portfile.cmake
@@ -1,14 +1,13 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO awslabs/aws-c-common
- REF b2e7ca47449571beaca4a507c65ac3ee39d8eefc
- SHA512 c9dc394bf3ef8eb33d36b81bae5a2002a8fccc7d876ad9c631da818aae7d06846615791c2311e8baa6efa7fcd9d565effabfec6f01767ca0099c6fa64d58e2fa
+ REF e3e7ccd35a85f9cd38c67cb1988251f1543b6632 # v0.4.15
+ SHA512 f8be12628bb7503921bf64956697ad60ba1dc10099482515be7157a1f75b14fad716eadcf69af1d77a5f1bbdaf298a7913e678dd143c5b409dd37ce3bf57f023
HEAD_REF master
PATCHES
disable-error-4068.patch # This patch fixes dependency port compilation failure
disable-internal-crt-option.patch # Disable internal crt option because vcpkg contains crt processing flow
+ fix-cmake-target-path.patch # Shared libraries and static libraries are not built at the same time
)
vcpkg_configure_cmake(
@@ -29,9 +28,7 @@ file(REMOVE_RECURSE
vcpkg_copy_pdbs()
-# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-c-common RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/share
-)
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/aws-c-event-stream/CONTROL b/ports/aws-c-event-stream/CONTROL
index 25dd1c936..9b159651c 100644
--- a/ports/aws-c-event-stream/CONTROL
+++ b/ports/aws-c-event-stream/CONTROL
@@ -1,4 +1,4 @@
Source: aws-c-event-stream
-Version: 0.1.1
+Version: 0.1.4
Description: C99 implementation of the vnd.amazon.event-stream content-type.
Build-Depends: aws-c-common, aws-checksums
\ No newline at end of file
diff --git a/ports/aws-c-event-stream/fix-cmake-target-path.patch b/ports/aws-c-event-stream/fix-cmake-target-path.patch
new file mode 100644
index 000000000..f862cb9ab
--- /dev/null
+++ b/ports/aws-c-event-stream/fix-cmake-target-path.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a765be0..4ade373 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -101,7 +101,7 @@ else()
+ endif()
+
+ install(EXPORT "${CMAKE_PROJECT_NAME}-targets"
+- DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake/${TARGET_DIR}/"
++ DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake/"
+ NAMESPACE AWS::
+ COMPONENT Development)
+
+diff --git a/cmake/aws-c-event-stream-config.cmake b/cmake/aws-c-event-stream-config.cmake
+index 7bd3cfc..cb817e4 100644
+--- a/cmake/aws-c-event-stream-config.cmake
++++ b/cmake/aws-c-event-stream-config.cmake
+@@ -2,9 +2,5 @@ include(CMakeFindDependencyMacro)
+ find_dependency(aws-c-common)
+ find_dependency(aws-checksums)
+
+-if (BUILD_SHARED_LIBS)
+- include(${CMAKE_CURRENT_LIST_DIR}/shared/@CMAKE_PROJECT_NAME@-targets.cmake)
+-else()
+- include(${CMAKE_CURRENT_LIST_DIR}/static/@CMAKE_PROJECT_NAME@-targets.cmake)
+-endif()
++include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake)
+
diff --git a/ports/aws-c-event-stream/portfile.cmake b/ports/aws-c-event-stream/portfile.cmake
index 8d1b0ec70..8a641a19d 100644
--- a/ports/aws-c-event-stream/portfile.cmake
+++ b/ports/aws-c-event-stream/portfile.cmake
@@ -1,11 +1,10 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO awslabs/aws-c-event-stream
- REF v0.1.1
- SHA512 974311cdface59bb5a95c7c249ad31cf694ebefd5c7b25f280f6817c6dc8d9ab1fdc8f75030099efe573be41a93676f199fda797d2a7bb41533f7e15f05de120
+ REF 32713d30b479690d199b3f02163a832b09b309a5 #v0.1.4
+ SHA512 c1f776b708cd4a68afbcc60e046dcfa3f7c1d378e7bf49ba7f93b3db3a248218316e5037254709320cd50efd6486996aa09678f41499fcea810adea16463ff4b
HEAD_REF master
+ PATCHES fix-cmake-target-path.patch
)
vcpkg_configure_cmake(
@@ -27,9 +26,7 @@ file(REMOVE_RECURSE
vcpkg_copy_pdbs()
-# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-c-event-stream RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/share
-)
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/aws-checksums/CONTROL b/ports/aws-checksums/CONTROL
index 19eb511f3..edbf6a40d 100644
--- a/ports/aws-checksums/CONTROL
+++ b/ports/aws-checksums/CONTROL
@@ -1,3 +1,3 @@
Source: aws-checksums
-Version: 0.1.3
+Version: 0.1.5
Description: Cross-Platform HW accelerated CRC32c and CRC32 with fallback to efficient SW implementations.
diff --git a/ports/aws-checksums/fix-cmake-target-path.patch b/ports/aws-checksums/fix-cmake-target-path.patch
new file mode 100644
index 000000000..ee740a688
--- /dev/null
+++ b/ports/aws-checksums/fix-cmake-target-path.patch
@@ -0,0 +1,25 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2ae2229..c4d0c2d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,7 +138,7 @@ else()
+ endif()
+
+ install(EXPORT "${CMAKE_PROJECT_NAME}-targets"
+- DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake/${TARGET_DIR}/"
++ DESTINATION "${LIBRARY_DIRECTORY}/${CMAKE_PROJECT_NAME}/cmake/"
+ NAMESPACE AWS::)
+
+ configure_file("cmake/${CMAKE_PROJECT_NAME}-config.cmake"
+diff --git a/cmake/aws-checksums-config.cmake b/cmake/aws-checksums-config.cmake
+index f0785bf..1b9b2d2 100644
+--- a/cmake/aws-checksums-config.cmake
++++ b/cmake/aws-checksums-config.cmake
+@@ -1,6 +1 @@
+-if (BUILD_SHARED_LIBS)
+- include(${CMAKE_CURRENT_LIST_DIR}/shared/@CMAKE_PROJECT_NAME@-targets.cmake)
+-else()
+- include(${CMAKE_CURRENT_LIST_DIR}/static/@CMAKE_PROJECT_NAME@-targets.cmake)
+-endif()
+-
++include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake)
diff --git a/ports/aws-checksums/portfile.cmake b/ports/aws-checksums/portfile.cmake
index 4ac746d7f..081278ea8 100644
--- a/ports/aws-checksums/portfile.cmake
+++ b/ports/aws-checksums/portfile.cmake
@@ -1,11 +1,10 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO awslabs/aws-checksums
- REF v0.1.3
- SHA512 79bf71a6c4c268b27efe8a6a3c4b90281da4ce7f6e4c1c62fce80b11a4756ecfd4dc2b19624ace3f54137113d0cb56a517de0b91dd6338ee8ca069756bca13f4
+ REF 519d6d9093819b6cf89ffff589a27ef8f83d0f65 # v0.1.5
+ SHA512 3079786d106b98ba3b8c254c26ec4d9accf5fba5bcc13aed30ffa897e17ea7d701e6b6e903b37534e32e1cf0cac3e9a6ff46e1340ed7c530c2fc6262b245e05c
HEAD_REF master
+ PATCHES fix-cmake-target-path.patch
)
if (VCPKG_CRT_LINKAGE STREQUAL static)
@@ -32,9 +31,7 @@ file(REMOVE_RECURSE
vcpkg_copy_pdbs()
-# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-checksums RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(REMOVE_RECURSE
- ${CURRENT_PACKAGES_DIR}/debug/share
-)
\ No newline at end of file
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
\ No newline at end of file
diff --git a/ports/aws-lambda-cpp/CONTROL b/ports/aws-lambda-cpp/CONTROL
index 53d7a917f..cf5b776aa 100644
--- a/ports/aws-lambda-cpp/CONTROL
+++ b/ports/aws-lambda-cpp/CONTROL
@@ -1,4 +1,4 @@
Source: aws-lambda-cpp
-Version: 0.1.0-2
+Version: 0.2.4
Build-Depends: curl
Description: C++ Runtime for AWS Lambda.
diff --git a/ports/aws-lambda-cpp/portfile.cmake b/ports/aws-lambda-cpp/portfile.cmake
index 7ba33e8f1..e80079026 100644
--- a/ports/aws-lambda-cpp/portfile.cmake
+++ b/ports/aws-lambda-cpp/portfile.cmake
@@ -1,15 +1,10 @@
-include(vcpkg_common_functions)
-
-vcpkg_fail_port_install(MESSAGE "aws-lambda-cpp currently only supports Linux and Mac platforms" ON_TARGET "Windows")
-#if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-# message(FATAL_ERROR "aws-lambda-cpp currently only supports Linux and Mac platforms")
-#endif()
+vcpkg_fail_port_install(ON_TARGET "Windows" "OSX")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO awslabs/aws-lambda-cpp
- REF v0.1.0
- SHA512 78b1ad1dcd88176a954c03b38cbb962c77488da6c75acb37a8b64cde147c030b02c6e51f0a974edb042e59c3c969d110d181ad097ef76f43255500b272a94454
+ REF 681652d9410bb4adb66e5afa9e8a3662a5f7b606 # v0.2.4
+ SHA512 c29ea2b8fb8b99a5d0a49f601406e14682e5133deeb871a750baa792becc91f22dac00c0ee3d8c056871a1f5035cdcd1a3bba3d9464dfa84e1ec00a270a9abd6
HEAD_REF master
)
@@ -25,5 +20,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_copy_pdbs()
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-lambda-cpp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL
index 987812ea5..93be6843d 100644
--- a/ports/aws-sdk-cpp/CONTROL
+++ b/ports/aws-sdk-cpp/CONTROL
@@ -1,5 +1,5 @@
Source: aws-sdk-cpp
-Version: 1.7.142-1
+Version: 1.7.214-1
Homepage: https://github.com/aws/aws-sdk-cpp
Description: AWS SDK for C++
Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows), aws-c-event-stream
@@ -51,7 +51,7 @@ Description: C++ SDK for the AWS autoscaling service
Feature: autoscaling-plans
Description: C++ SDK for the AWS autoscaling-plans service
-Feature: AWSMigrationHub
+Feature: awsmigrationhub
Description: C++ SDK for the AWS AWSMigrationHub service
Feature: awstransfer
diff --git a/ports/aws-sdk-cpp/compute_build_only.cmake b/ports/aws-sdk-cpp/compute_build_only.cmake
index 66576f241..ba9bcb26d 100644
--- a/ports/aws-sdk-cpp/compute_build_only.cmake
+++ b/ports/aws-sdk-cpp/compute_build_only.cmake
@@ -44,7 +44,7 @@ endif()
if("autoscaling-plans" IN_LIST FEATURES)
list(APPEND BUILD_ONLY autoscaling-plans)
endif()
-if("AWSMigrationHub" IN_LIST FEATURES)
+if("awsmigrationhub" IN_LIST FEATURES)
list(APPEND BUILD_ONLY AWSMigrationHub)
endif()
if("awstransfer" IN_LIST FEATURES)
diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake
index c39e3391e..9fa6b2f5f 100644
--- a/ports/aws-sdk-cpp/portfile.cmake
+++ b/ports/aws-sdk-cpp/portfile.cmake
@@ -1,12 +1,10 @@
-include(vcpkg_common_functions)
-
vcpkg_buildpath_length_warning(37)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO aws/aws-sdk-cpp
- REF d3ee022fea02e8e7e02f3cdd77904dc4c39ab79a
- SHA512 6f146830f15864bb3770ad50a6ebcbc478235e9c2c59aa044353bbfc297bf26437e07b77b970974cc294782809aaa837a3407cbc846426b04e97447cd7f9e3cf
+ REF e8a7e7263e900983921e95363026efaa494622ab # 1.7.214
+ SHA512 dc4e003ffaebf21410d8d360f8a4602dda99d3ee0c0ab7fb61c97fe8b5f0b38438ed5315fb85d3a435cd5a99724e43c5cf569a7cb365ed8137caeac32c619a86
HEAD_REF master
)
@@ -16,14 +14,11 @@ set(BUILD_ONLY core)
include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake)
-if(CMAKE_HOST_WIN32)
- string(REPLACE ";" "\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
-else()
- string(REPLACE ";" "\\\\\\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
-endif()
+string(REPLACE ";" "\\\\\\\\\\\;" BUILD_ONLY "${BUILD_ONLY}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
OPTIONS
-DENABLE_UNITY_BUILD=ON
@@ -83,4 +78,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endif()
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-sdk-cpp RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL
index 42ace4276..7e313e72f 100644
--- a/ports/azure-c-shared-utility/CONTROL
+++ b/ports/azure-c-shared-utility/CONTROL
@@ -1,5 +1,5 @@
Source: azure-c-shared-utility
-Version: 2019-10-07.2-1
+Version: 2020-01-22-1
Description: Azure C SDKs common code
Build-Depends: curl (linux), openssl (linux), azure-macro-utils-c, umock-c
diff --git a/ports/azure-c-shared-utility/fix-utilityFunctions-conditions-preview.patch b/ports/azure-c-shared-utility/fix-utilityFunctions-conditions-preview.patch
new file mode 100644
index 000000000..c89d92f58
--- /dev/null
+++ b/ports/azure-c-shared-utility/fix-utilityFunctions-conditions-preview.patch
@@ -0,0 +1,248 @@
+diff --git a/configs/azure_c_shared_utilityFunctions.cmake b/configs/azure_c_shared_utilityFunctions.cmake
+index e85defa..7f450ab 100644
+--- a/configs/azure_c_shared_utilityFunctions.cmake
++++ b/configs/azure_c_shared_utilityFunctions.cmake
+@@ -2,11 +2,11 @@
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+ function(target_link_libraries_with_arg_prefix arg_prefix whatIsBuilding lib)
+- if(${arg_prefix} STREQUAL "debug")
++ if(arg_prefix STREQUAL "debug")
+ target_link_libraries(${whatIsBuilding} debug ${lib})
+- elseif(${arg_prefix} STREQUAL "optimized")
++ elseif(arg_prefix STREQUAL "optimized")
+ target_link_libraries(${whatIsBuilding} optimized ${lib})
+- elseif(${arg_prefix} STREQUAL "general")
++ elseif(arg_prefix STREQUAL "general")
+ target_link_libraries(${whatIsBuilding} general ${lib})
+ else()
+ target_link_libraries(${whatIsBuilding} ${lib})
+@@ -43,13 +43,13 @@ function(windows_unittests_add_dll whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -57,7 +57,7 @@ function(windows_unittests_add_dll whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -90,13 +90,13 @@ function(windows_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -104,7 +104,7 @@ function(windows_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -150,14 +150,14 @@ function(linux_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ set(skip_to_next TRUE)
+ #also unset all the other states
+
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -165,7 +165,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -184,7 +184,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $)
+@@ -307,13 +307,13 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -321,7 +321,7 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -369,13 +369,13 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -383,7 +383,7 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -429,13 +429,13 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -443,7 +443,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -462,7 +462,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --gen-suppressions=all --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $)
+@@ -546,29 +546,29 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+ if (${use_cppunittest})
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_dll)
+ compileTargetAsC99(${whatIsBuilding}_testsonly_lib)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_dll)
+ compileTargetAsC11(${whatIsBuilding}_testsonly_lib)
+ endif()
+ endif()
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+ if(
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${nuget_e2e_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+@@ -581,10 +581,10 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${run_e2e_tests}) OR
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ endif()
+@@ -641,8 +641,8 @@ function(set_platform_files c_shared_dir)
+ set(CONDITION_C_FILE ${c_shared_dir}/adapters/condition_win32.c PARENT_SCOPE)
+ endif()
+ if(use_etw)
+- if(${use_etw} OR (${use_etw} STREQUAL "ON_WITH_CONSOLE"))
+- if (${use_etw} STREQUAL "ON_WITH_CONSOLE")
++ if(use_etw OR (use_etw STREQUAL "ON_WITH_CONSOLE"))
++ if (use_etw STREQUAL "ON_WITH_CONSOLE")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE)
+ set(LOGGING_RC_FILE ${c_shared_dir}/res/etwlogger.rc CACHE INTERNAL "")
diff --git a/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch b/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch
new file mode 100644
index 000000000..7b60af94b
--- /dev/null
+++ b/ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch
@@ -0,0 +1,256 @@
+diff --git a/configs/azure_c_shared_utilityFunctions.cmake b/configs/azure_c_shared_utilityFunctions.cmake
+index 6c2f415..e6133af 100644
+--- a/configs/azure_c_shared_utilityFunctions.cmake
++++ b/configs/azure_c_shared_utilityFunctions.cmake
+@@ -2,11 +2,11 @@
+ #Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+ function(target_link_libraries_with_arg_prefix arg_prefix whatIsBuilding lib)
+- if(${arg_prefix} STREQUAL "debug")
++ if(arg_prefix STREQUAL "debug")
+ target_link_libraries(${whatIsBuilding} debug ${lib})
+- elseif(${arg_prefix} STREQUAL "optimized")
++ elseif(arg_prefix STREQUAL "optimized")
+ target_link_libraries(${whatIsBuilding} optimized ${lib})
+- elseif(${arg_prefix} STREQUAL "general")
++ elseif(arg_prefix STREQUAL "general")
+ target_link_libraries(${whatIsBuilding} general ${lib})
+ else()
+ target_link_libraries(${whatIsBuilding} ${lib})
+@@ -43,13 +43,13 @@ function(windows_unittests_add_dll whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -57,7 +57,7 @@ function(windows_unittests_add_dll whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -90,13 +90,13 @@ function(windows_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -104,7 +104,7 @@ function(windows_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -150,14 +150,14 @@ function(linux_unittests_add_exe whatIsBuilding)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ set(skip_to_next TRUE)
+ #also unset all the other states
+
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -165,7 +165,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -184,7 +184,7 @@ function(linux_unittests_add_exe whatIsBuilding)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $)
+@@ -307,13 +307,13 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -321,7 +321,7 @@ function(c_windows_unittests_add_dll whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f})
+@@ -369,13 +369,13 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -383,7 +383,7 @@ function(c_windows_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -429,13 +429,13 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+ set(ARG_PREFIX "none")
+ foreach(f ${ARGN})
+ set(skip_to_next FALSE)
+- if(${f} STREQUAL "ADDITIONAL_LIBS")
++ if(f STREQUAL "ADDITIONAL_LIBS")
+ SET(PARSING_ADDITIONAL_LIBS ON)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF)
+ set(ARG_PREFIX "none")
+ #also unset all the other states
+ set(skip_to_next TRUE)
+- elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
++ elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE")
+ SET(PARSING_ADDITIONAL_LIBS OFF)
+ SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON)
+ set(skip_to_next TRUE)
+@@ -443,7 +443,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(NOT skip_to_next)
+ if(PARSING_ADDITIONAL_LIBS)
+- if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general"))
++ if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general"))
+ SET(ARG_PREFIX ${f})
+ else()
+ target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f})
+@@ -462,7 +462,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder)
+
+ if(${run_valgrind})
+ find_program(VALGRIND_FOUND NAMES valgrind)
+- if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND)
++ if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND)
+ message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind")
+ else()
+ add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --gen-suppressions=all --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $)
+@@ -546,29 +546,29 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+ if (${use_cppunittest})
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_dll)
+ compileTargetAsC99(${whatIsBuilding}_testsonly_lib)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_dll)
+ compileTargetAsC11(${whatIsBuilding}_testsonly_lib)
+ endif()
+ endif()
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+ if(
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${nuget_e2e_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ else()
+@@ -581,10 +581,10 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat)
+ (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${run_e2e_tests}) OR
+ (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests})
+ )
+- if(${compileAsWhat} STREQUAL "C99")
++ if(compileAsWhat STREQUAL "C99")
+ compileTargetAsC99(${whatIsBuilding}_exe)
+ endif()
+- if(${compileAsWhat} STREQUAL "C11")
++ if(compileAsWhat STREQUAL "C11")
+ compileTargetAsC11(${whatIsBuilding}_exe)
+ endif()
+ endif()
+@@ -641,15 +641,15 @@ function(set_platform_files c_shared_dir)
+ set(CONDITION_C_FILE ${c_shared_dir}/adapters/condition_win32.c PARENT_SCOPE)
+ endif()
+
+- if(${use_etw} STREQUAL "OFF")
++ if(use_etw STREQUAL "OFF")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/xlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE)
+- elseif(${use_etw} STREQUAL "TRACELOGGING")
++ elseif(use_etw STREQUAL "TRACELOGGING")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h PARENT_SCOPE)
+- elseif(${use_etw} STREQUAL "TRACELOGGING_WITH_CONSOLE")
++ elseif(use_etw STREQUAL "TRACELOGGING_WITH_CONSOLE")
+ set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE)
+ set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE)
+ set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE)
diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake
index 4ae236b53..2e0e779be 100644
--- a/ports/azure-c-shared-utility/portfile.cmake
+++ b/ports/azure-c-shared-utility/portfile.cmake
@@ -9,14 +9,18 @@ if("public-preview" IN_LIST FEATURES)
REF 42574842914591aadc77701aac72f18cc72319ad
SHA512 dfe6ccede4bebdb3a39fbfea1dc55ddca57cced0d2656ee4bed1a5e5c9c434e1f2d892eb4e29bbb424cb9a02f2374a95fb9a020442bea580d39c242efad1b789
HEAD_REF master
+ PATCHES
+ fix-utilityFunctions-conditions-preview.patch
)
else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-c-shared-utility
- REF 42574842914591aadc77701aac72f18cc72319ad
- SHA512 dfe6ccede4bebdb3a39fbfea1dc55ddca57cced0d2656ee4bed1a5e5c9c434e1f2d892eb4e29bbb424cb9a02f2374a95fb9a020442bea580d39c242efad1b789
+ REF 48f7a556865731f0e96c47eb5e9537361f24647c
+ SHA512 c20074707e8601e090ee8daac1d96fdfb4f60ac60fd9c824dad81aa4c2f22b04733c82c01c1ae92110c26871b81674e8771d9ed65081f1c0c197a362275a28f1
HEAD_REF master
+ PATCHES
+ fix-utilityFunctions-conditions.patch
)
endif()
diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL
index f13b4d20e..bf2734357 100644
--- a/ports/azure-iot-sdk-c/CONTROL
+++ b/ports/azure-iot-sdk-c/CONTROL
@@ -1,5 +1,5 @@
Source: azure-iot-sdk-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson, azure-uhttp-c, azure-macro-utils-c, umock-c
Description: A C99 SDK for connecting devices to Microsoft Azure IoT services
diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake
index 83f637114..08b3574b3 100644
--- a/ports/azure-iot-sdk-c/portfile.cmake
+++ b/ports/azure-iot-sdk-c/portfile.cmake
@@ -15,8 +15,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-iot-sdk-c
- REF f8d260df190f90c04114ca8ff7d83dd03d4dd80d
- SHA512 111331293cfbdbdac4a6460d293ec8650bee31940829852c27afc88cc6e742e96f71c996aa275dc5ed1f13e9fe19452d7b2685dde47bb7d6c135ebee58c50d21
+ REF a8a71c2d120c571a2d2ab6149863c2b075e7bea9
+ SHA512 bc9cae705bef7d9c5c33b80c1d564566058ae4e6bcd343d94df9d139d9f71e620da940c5dcf7ccdc16e75388a03ff3393b40fe603201938c7a37d60b938ca874
HEAD_REF master
PATCHES improve-external-deps.patch
)
diff --git a/ports/azure-kinect-sensor-sdk/CONTROL b/ports/azure-kinect-sensor-sdk/CONTROL
index 015a3118f..11bbb08bb 100644
--- a/ports/azure-kinect-sensor-sdk/CONTROL
+++ b/ports/azure-kinect-sensor-sdk/CONTROL
@@ -1,5 +1,5 @@
Source: azure-kinect-sensor-sdk
-Version: 1.4.0-alpha.0-1
+Version: 1.4.0-alpha.0-2
Homepage: https://github.com/microsoft/Azure-Kinect-Sensor-SDK
Description: Azure Kinect SDK is a cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device.
Build-Depends: azure-c-shared-utility, glfw3, gtest, imgui, libusb, spdlog, cjson, ebml, libjpeg-turbo, matroska, libsoundio, libyuv
diff --git a/ports/azure-kinect-sensor-sdk/fix-components-path.patch b/ports/azure-kinect-sensor-sdk/fix-components-path.patch
deleted file mode 100644
index a8aa0773e..000000000
--- a/ports/azure-kinect-sensor-sdk/fix-components-path.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/record/sdk/CMakeLists.txt b/src/record/sdk/CMakeLists.txt
-index 4be0697..d30c6de 100644
---- a/src/record/sdk/CMakeLists.txt
-+++ b/src/record/sdk/CMakeLists.txt
-@@ -81,7 +81,7 @@ install(
- development
- RUNTIME
- DESTINATION
-- ${CMAKE_INSTALL_BINDIR}
-+ tools
- COMPONENT
- runtime
- )
-diff --git a/src/sdk/CMakeLists.txt b/src/sdk/CMakeLists.txt
-index 3616f40..a5019cb 100644
---- a/src/sdk/CMakeLists.txt
-+++ b/src/sdk/CMakeLists.txt
-@@ -90,7 +90,7 @@ install(
- development
- RUNTIME
- DESTINATION
-- ${CMAKE_INSTALL_BINDIR}
-+ tools
- COMPONENT
- runtime
- )
diff --git a/ports/azure-kinect-sensor-sdk/portfile.cmake b/ports/azure-kinect-sensor-sdk/portfile.cmake
index 3c94f7dc3..1fb30271a 100644
--- a/ports/azure-kinect-sensor-sdk/portfile.cmake
+++ b/ports/azure-kinect-sensor-sdk/portfile.cmake
@@ -7,7 +7,6 @@ vcpkg_from_github(
PATCHES
fix-builds.patch
disable-c4275.patch
- fix-components-path.patch
)
vcpkg_find_acquire_program(PYTHON3)
diff --git a/ports/azure-macro-utils-c/CONTROL b/ports/azure-macro-utils-c/CONTROL
index 519824497..103887c2d 100644
--- a/ports/azure-macro-utils-c/CONTROL
+++ b/ports/azure-macro-utils-c/CONTROL
@@ -1,5 +1,5 @@
Source: azure-macro-utils-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Description: A library of macros for the Azure IoT SDK Suite
Build-Depends:
diff --git a/ports/azure-macro-utils-c/portfile.cmake b/ports/azure-macro-utils-c/portfile.cmake
index 1758d13db..2f9e5829c 100644
--- a/ports/azure-macro-utils-c/portfile.cmake
+++ b/ports/azure-macro-utils-c/portfile.cmake
@@ -14,8 +14,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-macro-utils-c
- REF 7523af934fc4d9423111e358f49b19314ec9c3e3
- SHA512 b53765096654fff9c5670004e4e107bffa81dd07e63eeac687c9e2b7e5ea2e1f26b6ae025c05c45f5c28152a457922f08c7f8d3303fa4d3b9194c34ba59533d5
+ REF 5926caf4e42e98e730e6d03395788205649a3ada
+ SHA512 97621f276657af976c4022c9600540ecae2287b3b386b9e097d661828a62c120348d354b3f86f3ef4d49f3c54830887662d3910ed5cec4a634949fa389b4ad55
HEAD_REF master
)
endif()
diff --git a/ports/azure-storage-cpp/CONTROL b/ports/azure-storage-cpp/CONTROL
index 3fc857f95..66a402f8f 100644
--- a/ports/azure-storage-cpp/CONTROL
+++ b/ports/azure-storage-cpp/CONTROL
@@ -1,6 +1,7 @@
Source: azure-storage-cpp
-Version: 7.1.0
-Build-Depends: cpprestsdk[core], atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp&!osx), gettext
+Version: 7.1.0-1
+Build-Depends: cpprestsdk[core], atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp&!osx), gettext (osx)
Description: Microsoft Azure Storage Client SDK for C++
A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client.
Homepage: https://blogs.msdn.com/b/windowsazurestorage/
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake
index 6f6b4b39f..442afec74 100644
--- a/ports/azure-storage-cpp/portfile.cmake
+++ b/ports/azure-storage-cpp/portfile.cmake
@@ -1,8 +1,4 @@
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- message(FATAL_ERROR "${PORT} does not currently support UWP")
-endif()
-
-include(vcpkg_common_functions)
+vcpkg_fail_port_install(ON_TARGET "UWP")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
@@ -19,7 +15,10 @@ vcpkg_configure_cmake(
-DCMAKE_FIND_FRAMEWORK=LAST
-DBUILD_TESTS=OFF
-DBUILD_SAMPLES=OFF
- -DGETTEXT_LIB_DIR=${CURRENT_INSTALLED_DIR}/include
+ OPTIONS_RELEASE
+ -DGETTEXT_LIB_DIR=${CURRENT_INSTALLED_DIR}/lib
+ OPTIONS_DEBUG
+ -DGETTEXT_LIB_DIR=${CURRENT_INSTALLED_DIR}/debug/lib
)
vcpkg_install_cmake()
diff --git a/ports/azure-uamqp-c/CONTROL b/ports/azure-uamqp-c/CONTROL
index f67f773cd..cc18d253c 100644
--- a/ports/azure-uamqp-c/CONTROL
+++ b/ports/azure-uamqp-c/CONTROL
@@ -1,5 +1,5 @@
Source: azure-uamqp-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Build-Depends: azure-c-shared-utility, azure-macro-utils-c, umock-c
Description: AMQP library for C
diff --git a/ports/azure-uamqp-c/portfile.cmake b/ports/azure-uamqp-c/portfile.cmake
index e40436a46..b8ce4b0bb 100644
--- a/ports/azure-uamqp-c/portfile.cmake
+++ b/ports/azure-uamqp-c/portfile.cmake
@@ -14,8 +14,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-uamqp-c
- REF 065ffdeeb47313ddbbc2a8e84ad52ab033e2e8d2
- SHA512 bade6fae2d5479b7690632dbcc58bda5dd871eb0aa63d6a56cb35e81630121b5148309cd3414e6339c1218ec59fc12ac318b4964d295b579f7a0cacf5593b7ba
+ REF 142cfab9d66c6f81ea0cceb635f31e00cfa51c77
+ SHA512 80f95bc969c2e50124622561b5f939e981a8d317e3e9514e52ce020f0f20a125622bf914f16927edafc7ff3c878fb1d6a28f4f5e66bda52dcc8aa2dc34761f73
HEAD_REF master
)
endif()
diff --git a/ports/azure-uhttp-c/CONTROL b/ports/azure-uhttp-c/CONTROL
index f485c0a4e..dc30fd350 100644
--- a/ports/azure-uhttp-c/CONTROL
+++ b/ports/azure-uhttp-c/CONTROL
@@ -1,5 +1,5 @@
Source: azure-uhttp-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Build-Depends: azure-c-shared-utility, azure-macro-utils-c, umock-c
Description: Azure HTTP Library written in C
diff --git a/ports/azure-uhttp-c/portfile.cmake b/ports/azure-uhttp-c/portfile.cmake
index 3ca220822..d943e811d 100644
--- a/ports/azure-uhttp-c/portfile.cmake
+++ b/ports/azure-uhttp-c/portfile.cmake
@@ -14,8 +14,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-uhttp-c
- REF d84a20609a2b5a555920389451fb3c9a2ed3656c
- SHA512 4eadd7e120082cc3bcf696d6cd16bc7ee8e1082380dd7583fba7fad1bb95109f3456890495e25ae7675e656ef721fa12eff22eeb96d8a4cf359be5c96889cbd6
+ REF b67a6bfa0d018a8a23176ee214e46c208fc323c3
+ SHA512 75fafe242324bb2fc72befdd06427350e6f99aec9496fdf38b9660e7965fad89276ee543f36c3ba3360fc99b8301e74e2c1723d17f39e8471beee3e32cacb348
HEAD_REF master
)
endif()
diff --git a/ports/azure-umqtt-c/CONTROL b/ports/azure-umqtt-c/CONTROL
index 985959aee..2a0b9e4bc 100644
--- a/ports/azure-umqtt-c/CONTROL
+++ b/ports/azure-umqtt-c/CONTROL
@@ -1,5 +1,5 @@
Source: azure-umqtt-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Build-Depends: azure-c-shared-utility, azure-macro-utils-c, umock-c
Description: General purpose library for communication over the mqtt protocol
diff --git a/ports/azure-umqtt-c/portfile.cmake b/ports/azure-umqtt-c/portfile.cmake
index d55ec7d2f..0d070bf16 100644
--- a/ports/azure-umqtt-c/portfile.cmake
+++ b/ports/azure-umqtt-c/portfile.cmake
@@ -14,8 +14,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-umqtt-c
- REF 7557db6de094b67818d3c410dc95a3cf07cd86a6
- SHA512 f2577379f711e2576fdd6dfecbc4d8a0b26c7670a77bc468238e8dd5fa43f208db85eddd06dd570fde4219ba19304338c712f671c059c6cc10abb4892d58ae40
+ REF 65cdd1013715fb9d208c42f957eb353fbe22bafb
+ SHA512 8cd33dcde966132e2aa0c6d931e75f9bcdc5734d57d8f6bb8a922711b0b63c2f0e58d379fe92371886387dfbb0b8c117b512873363eb76cf22fa985dbf11d52e
HEAD_REF master
)
endif()
diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL
index 27c4c8256..d82040748 100644
--- a/ports/benchmark/CONTROL
+++ b/ports/benchmark/CONTROL
@@ -2,3 +2,4 @@ Source: benchmark
Version: 1.5
Homepage: https://github.com/google/benchmark
Description: A library to support the benchmarking of functions, similar to unit-tests.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/berkeleydb/CONTROL b/ports/berkeleydb/CONTROL
index 7d93c230c..75c856c08 100644
--- a/ports/berkeleydb/CONTROL
+++ b/ports/berkeleydb/CONTROL
@@ -2,3 +2,4 @@ Source: berkeleydb
Version: 4.8.30-3
Homepage: https://download.oracle.com/
Description: BDB - A high-performance embedded database for key/value data.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/c-ares/CONTROL b/ports/c-ares/CONTROL
index c8a5f4854..4898ec5de 100644
--- a/ports/c-ares/CONTROL
+++ b/ports/c-ares/CONTROL
@@ -2,3 +2,4 @@ Source: c-ares
Version: 2019-5-2-1
Homepage: https://github.com/c-ares/c-ares
Description: A C library for asynchronous DNS requests
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/caffe2/CONTROL b/ports/caffe2/CONTROL
index 4d72fb764..e9bb4dbd7 100644
--- a/ports/caffe2/CONTROL
+++ b/ports/caffe2/CONTROL
@@ -3,3 +3,4 @@ Version: 0.8.1-3
Build-Depends: lmdb, gflags, glog, eigen3, protobuf
Homepage: https://github.com/caffe2/caffe2
Description: Caffe2 is a lightweight, modular, and scalable deep learning framework.
+Supports: !x86
\ No newline at end of file
diff --git a/ports/capnproto/CONTROL b/ports/capnproto/CONTROL
index 02cc080f1..cb1258c97 100644
--- a/ports/capnproto/CONTROL
+++ b/ports/capnproto/CONTROL
@@ -3,3 +3,4 @@ Version: 0.7.0-3
Description: Data interchange format and capability-based RPC system
Homepage: https://capnproto.org/
Build-Depends: zlib
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/cgal/CONTROL b/ports/cgal/CONTROL
index 3f71a911a..ab427a7dc 100644
--- a/ports/cgal/CONTROL
+++ b/ports/cgal/CONTROL
@@ -1,5 +1,5 @@
Source: cgal
-Version: 5.0
+Version: 5.0.1
Build-Depends: mpfr, mpir, zlib, boost-format, boost-container, boost-ptr-container, boost-iterator, boost-variant, boost-any, boost-unordered, boost-random, boost-foreach, boost-graph, boost-heap, boost-logic, boost-multiprecision
Homepage: https://github.com/CGAL/cgal
Description: The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry.
diff --git a/ports/cgal/portfile.cmake b/ports/cgal/portfile.cmake
index d351af738..2e57e7689 100644
--- a/ports/cgal/portfile.cmake
+++ b/ports/cgal/portfile.cmake
@@ -5,8 +5,8 @@ vcpkg_buildpath_length_warning(37)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO CGAL/cgal
- REF releases/CGAL-5.0
- SHA512 c7462f1f5ca1ef154a3a20ce4c1b63e544ad7e62ea0afb9aee99872402362fa2001a52740d62ac779e75f1354ad9c955a895f3cad12186e3b75d91f0f3452847
+ REF releases/CGAL-5.0.1
+ SHA512 656e207bdc7003dd2e3e4b31b33f9ac3af5074e4892dda645f67fccdc0ac22982d8bf3c62f9c556847ba0447c14f79923712fc6320f8c10ea77e17bf77eb3e2f
HEAD_REF master
)
diff --git a/ports/civetweb/CONTROL b/ports/civetweb/CONTROL
index b24a4ffec..07b7306f1 100644
--- a/ports/civetweb/CONTROL
+++ b/ports/civetweb/CONTROL
@@ -1,3 +1,4 @@
Source: civetweb
Version: 2019-07-05
Description: Easy to use, powerful, C/C++ embeddable web server.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/coroutine/CONTROL b/ports/coroutine/CONTROL
index 184891fdc..c716f2585 100644
--- a/ports/coroutine/CONTROL
+++ b/ports/coroutine/CONTROL
@@ -1,4 +1,5 @@
Source: coroutine
-Version: 1.4.3
+Version: 2020-01-13
Build-Depends: ms-gsl
Description: C++ coroutine helper/example library
+Supports: !x86
\ No newline at end of file
diff --git a/ports/coroutine/portfile.cmake b/ports/coroutine/portfile.cmake
index da9430d8c..a38911f3c 100644
--- a/ports/coroutine/portfile.cmake
+++ b/ports/coroutine/portfile.cmake
@@ -4,12 +4,11 @@ if(${VCPKG_TARGET_ARCHITECTURE} MATCHES x86)
message(FATAL_ERROR "This library doesn't support x86 arch. Please use x64 instead. If it is critical, create an issue at the repo: github.com/luncliff/coroutine")
endif()
-# changed to 1.4.2
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO luncliff/coroutine
- REF 74467cb470a6bf8b9559a56ebdcb68ff915d871e
- SHA512 5d61a23c5fe33c544943659dedecff487bb20f288f9c99f137f37bb777317672f299599b740e53cae42c355595fdfdffe183ade39e828b1f3b4aa821a47cb50e
+ REF fcd970807e9a47c250c1a4e06c7dc6d93079b684
+ SHA512 517f1c1726e4adc36cd34379c545324c99861d7cb5ebd3cebe0b7132fe5b61969a00e405bc106bb8f089f37d3a7ca9b1bcdc665a5cd6dfcaaf6856be37bec5b0
HEAD_REF master
)
diff --git a/ports/cpp-netlib/CONTROL b/ports/cpp-netlib/CONTROL
index 845a89e66..70c70b13f 100644
--- a/ports/cpp-netlib/CONTROL
+++ b/ports/cpp-netlib/CONTROL
@@ -3,3 +3,4 @@ Version: 0.13.0-3
Homepage: https://cpp-netlib.org/
Build-Depends: boost
Description: A collection of network-related routines/implementations geared towards providing a robust cross-platform networking library
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/cppfs/CONTROL b/ports/cppfs/CONTROL
index d94532e8a..c97527ff4 100644
--- a/ports/cppfs/CONTROL
+++ b/ports/cppfs/CONTROL
@@ -1,6 +1,7 @@
Source: cppfs
Version: 1.2.0-1
Description: Cross-platform C++ file system library supporting multiple backends
+Supports: !uwp
Feature: ssh
Description: SSH backend for cppfs
diff --git a/ports/cppitertools/CONTROL b/ports/cppitertools/CONTROL
index 8c5f387ec..579a85a69 100644
--- a/ports/cppitertools/CONTROL
+++ b/ports/cppitertools/CONTROL
@@ -1,4 +1,4 @@
Source: cppitertools
-Version: 2019-04-14-2
+Version: 2019-04-14-3
Description: Range-based for loop add-ons inspired by the Python builtins and itertools library
Build-Depends: boost-optional
diff --git a/ports/cppitertools/portfile.cmake b/ports/cppitertools/portfile.cmake
index f19069a3b..26b6ee93b 100644
--- a/ports/cppitertools/portfile.cmake
+++ b/ports/cppitertools/portfile.cmake
@@ -1,7 +1,3 @@
-# header-only library
-
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ryanhaining/cppitertools
@@ -13,8 +9,8 @@ vcpkg_from_github(
file(GLOB INCLUDE_FILES ${SOURCE_PATH}/*.hpp)
file(GLOB INCLUDE_INTERNAL_FILES ${SOURCE_PATH}/internal/*.hpp)
-file(COPY ${INCLUDE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(COPY ${INCLUDE_INTERNAL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/internal)
+file(COPY ${INCLUDE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/cppitertools)
+file(COPY ${INCLUDE_INTERNAL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/cppitertools/internal)
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
diff --git a/ports/cudnn/CONTROL b/ports/cudnn/CONTROL
index cc8019b5b..4ab7c941b 100644
--- a/ports/cudnn/CONTROL
+++ b/ports/cudnn/CONTROL
@@ -2,3 +2,4 @@ Source: cudnn
Version: 7.6
Description: NVIDIA's cuDNN deep neural network acceleration library
Build-Depends: cuda
+Supports: (windows|linux)&x64
diff --git a/ports/darknet/CONTROL b/ports/darknet/CONTROL
index 3665fa069..66bcbb76b 100644
--- a/ports/darknet/CONTROL
+++ b/ports/darknet/CONTROL
@@ -2,6 +2,7 @@ Source: darknet
Version: 0.2.5.1-1
Description: Darknet is an open source neural network framework written in C and CUDA. You only look once (YOLO) is a state-of-the-art, real-time object detection system, best example of darknet functionalities.
Build-Depends: pthreads (windows), stb
+Supports: !(arm|uwp)
Feature: cuda
Build-Depends: cuda
diff --git a/ports/dirent/portfile.cmake b/ports/dirent/portfile.cmake
index 80aab02f0..945f6017a 100644
--- a/ports/dirent/portfile.cmake
+++ b/ports/dirent/portfile.cmake
@@ -3,7 +3,6 @@ if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStor
return()
endif()
-include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO tronkko/dirent
@@ -14,3 +13,5 @@ vcpkg_from_github(
file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/dirent RENAME copyright)
vcpkg_copy_pdbs()
+
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
diff --git a/ports/dlfcn-win32/portfile.cmake b/ports/dlfcn-win32/portfile.cmake
index e2376ab63..1e1fdccb1 100644
--- a/ports/dlfcn-win32/portfile.cmake
+++ b/ports/dlfcn-win32/portfile.cmake
@@ -1,4 +1,3 @@
-include(vcpkg_common_functions)
set(SOURCE_VERSION 1.1.1)
vcpkg_from_github(
@@ -27,3 +26,5 @@ vcpkg_copy_pdbs()
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
+
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
diff --git a/ports/dmlc/CONTROL b/ports/dmlc/CONTROL
index 24d639ce3..673862144 100644
--- a/ports/dmlc/CONTROL
+++ b/ports/dmlc/CONTROL
@@ -3,6 +3,7 @@ Version: 2019-08-12-1
Homepage: https://github.com/dmlc/dmlc-core
Description: DMLC-Core is the backbone library to support all DMLC projects, offers the bricks to build efficient and scalable distributed machine learning libraries.
Default-Features: openmp
+Supports: !uwp
Feature: openmp
Description: Build with openmp
\ No newline at end of file
diff --git a/ports/dpdk/CONTROL b/ports/dpdk/CONTROL
index 056800d29..53d79f7e6 100644
--- a/ports/dpdk/CONTROL
+++ b/ports/dpdk/CONTROL
@@ -1,4 +1,4 @@
Source: dpdk
Version: 19.02
Description: A set of libraries and drivers for fast packet processing
-
+Supports: linux
diff --git a/ports/easyhook/CONTROL b/ports/easyhook/CONTROL
index a47eb803d..077a5fb53 100644
--- a/ports/easyhook/CONTROL
+++ b/ports/easyhook/CONTROL
@@ -1,4 +1,5 @@
Source: easyhook
Version: 2.7.6789.0
Homepage: https://github.com/EasyHook/EasyHook
-Description: This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10.
\ No newline at end of file
+Description: This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10.
+Supports: windows
\ No newline at end of file
diff --git a/ports/ebml/CONTROL b/ports/ebml/CONTROL
index 0b2aac432..9af9cc865 100644
--- a/ports/ebml/CONTROL
+++ b/ports/ebml/CONTROL
@@ -2,3 +2,4 @@ Source: ebml
Version: 1.3.9
Homepage: https://github.com/Matroska-Org/libebml
Description: a C++ libary to parse EBML files
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/eigen3/CONTROL b/ports/eigen3/CONTROL
index 9eb611541..b612dc881 100644
--- a/ports/eigen3/CONTROL
+++ b/ports/eigen3/CONTROL
@@ -1,4 +1,4 @@
Source: eigen3
-Version: 3.3.7-3
-Homepage: https://bitbucket.org/eigen/eigen
+Version: 3.3.7-4
+Homepage: http://eigen.tuxfamily.org
Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
diff --git a/ports/eigen3/portfile.cmake b/ports/eigen3/portfile.cmake
index b9a77701d..ad8779e75 100644
--- a/ports/eigen3/portfile.cmake
+++ b/ports/eigen3/portfile.cmake
@@ -2,11 +2,12 @@ include(vcpkg_common_functions)
vcpkg_buildpath_length_warning(37)
-vcpkg_from_github(
+vcpkg_from_gitlab(
+ GITLAB_URL https://gitlab.com
OUT_SOURCE_PATH SOURCE_PATH
- REPO eigenteam/eigen-git-mirror
+ REPO libeigen/eigen
REF 3.3.7
- SHA512 270ab9b5c22e09aa0e70d1a26995523c5c21fb0f09da45c137c11ab4c7700fe2bdb2b343c1e063bea4be5ae61d2313ff29ebbcad519dc355a568792b4a6e9e48
+ SHA512 4cc3717b9cbe78335e05f724919497214edd482d4812aeb1a9fd6da5b3f6d1b194bb93ed0dab9e734b4334a5b88e8f8c339c43c1b2044332286ef5e758f9ecf4
HEAD_REF master
)
diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL
index 68629eb2d..9007da6cd 100644
--- a/ports/expat/CONTROL
+++ b/ports/expat/CONTROL
@@ -2,3 +2,4 @@ Source: expat
Version: 2.2.7
Homepage: https://github.com/libexpat/libexpat
Description: XML parser library written in C
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/fftw3/aligned_malloc.patch b/ports/fftw3/aligned_malloc.patch
new file mode 100644
index 000000000..447ded62b
--- /dev/null
+++ b/ports/fftw3/aligned_malloc.patch
@@ -0,0 +1,38 @@
+diff --git a/cmake.config.h.in b/cmake.config.h.in
+index 1f4c505..fd763cc 100644
+--- a/cmake.config.h.in
++++ b/cmake.config.h.in
+@@ -112,6 +112,10 @@
+ you don't. */
+ #cmakedefine01 HAVE_DECL_POSIX_MEMALIGN
+
++/* Define to 1 if you have the declaration of `_aligned_malloc', and to 0 if you
++ don't. */
++#cmakedefine01 HAVE_DECL_ALIGNED_MALLOC
++
+ /* Define to 1 if you have the declaration of `sinl', and to 0 if you don't.
+ */
+ #cmakedefine01 HAVE_DECL_SINL
+@@ -184,6 +188,9 @@
+ /* Define to 1 if you have the `memalign' function. */
+ #cmakedefine HAVE_MEMALIGN 1
+
++/* Define to 1 if you have the `_aligned_malloc' function. */
++#cmakedefine HAVE_ALIGNED_MALLOC 1
++
+ /* Define to 1 if you have the `memmove' function. */
+ #cmakedefine HAVE_MEMMOVE 1
+
+diff --git a/kernel/kalloc.c b/kernel/kalloc.c
+index e42f6f3..ffc2257 100644
+--- a/kernel/kalloc.c
++++ b/kernel/kalloc.c
+@@ -103,7 +103,7 @@ void *X(kernel_malloc)(size_t n)
+ # undef real_free
+ # define real_free _mm_free
+
+-# elif defined(_MSC_VER)
++# elif defined(_MSC_VER) || defined (HAVE_ALIGNED_MALLOC)
+ /* MS Visual C++ 6.0 with a "Processor Pack" supports SIMD
+ and _aligned_malloc/free (uses malloc.h) */
+ p = (void *) _aligned_malloc(n, MIN_ALIGNMENT);
diff --git a/ports/fftw3/fftw3_arch_fix.patch b/ports/fftw3/fftw3_arch_fix.patch
index 922d86b97..0f1a7e5ae 100644
--- a/ports/fftw3/fftw3_arch_fix.patch
+++ b/ports/fftw3/fftw3_arch_fix.patch
@@ -2,6 +2,23 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95bd537a..245acc8f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
+@@ -66,6 +66,8 @@
+ check_prototype_definition (sinl "long double sinl( long double arg )" "0" math.h HAVE_DECL_SINL)
+ check_prototype_definition (memalign "void *memalign(size_t alignment, size_t size)" "0" malloc.h HAVE_DECL_MEMALIGN)
+ check_prototype_definition (posix_memalign "int posix_memalign(void **memptr, size_t alignment, size_t size)" "0" stdlib.h HAVE_DECL_POSIX_MEMALIGN)
++check_prototype_definition (_aligned_malloc "void* __cdecl _aligned_malloc(size_t _Size, size_t _Alignment)" "0" malloc.h HAVE_DECL_ALIGNED_MALLOC)
++
+
+ include (CheckSymbolExists)
+ check_symbol_exists (clock_gettime time.h HAVE_CLOCK_GETTIME)
+@@ -75,6 +77,7 @@
+ check_symbol_exists (srand48 stdlib.h HAVE_SRAND48)
+ check_symbol_exists (memalign malloc.h HAVE_MEMALIGN)
+ check_symbol_exists (posix_memalign stdlib.h HAVE_POSIX_MEMALIGN)
++check_symbol_exists (_aligned_malloc malloc.h HAVE_ALIGNED_MALLOC)
+ check_symbol_exists (mach_absolute_time mach/mach_time.h HAVE_MACH_ABSOLUTE_TIME)
+ check_symbol_exists (alloca alloca.h HAVE_ALLOCA)
+ if (NOT HAVE_ALLOCA)
@@ -131,6 +131,7 @@ endif ()
include (CheckCCompilerFlag)
diff --git a/ports/fftw3/portfile.cmake b/ports/fftw3/portfile.cmake
index 91f8f34a6..5132c9574 100644
--- a/ports/fftw3/portfile.cmake
+++ b/ports/fftw3/portfile.cmake
@@ -13,50 +13,19 @@ vcpkg_extract_source_archive_ex(
omp_test.patch
patch_targets.patch
fftw3_arch_fix.patch
+ aligned_malloc.patch
)
-if ("openmp" IN_LIST FEATURES)
- set(ENABLE_OPENMP ON)
-else()
- set(ENABLE_OPENMP OFF)
-endif()
-
-if ("avx" IN_LIST FEATURES)
- set(HAVE_AVX ON)
- set(HAVE_SSE ON)
- set(HAVE_SSE2 ON)
-else()
- set(HAVE_AVX OFF)
-endif()
-
-if ("avx2" IN_LIST FEATURES)
- set(HAVE_AVX2 ON)
- set(HAVE_FMA ON)
- set(HAVE_SSE ON)
- set(HAVE_SSE2 ON)
-else()
- set(HAVE_AVX2 OFF)
- set(HAVE_FMA OFF)
-endif()
-
-if ("sse" IN_LIST FEATURES)
- set(HAVE_SSE ON)
-else()
- set(HAVE_SSE OFF)
-endif()
-
-if ("sse2" IN_LIST FEATURES)
- set(HAVE_SSE2 ON)
- set(HAVE_SSE ON)
-else()
- set(HAVE_SSE2 OFF)
-endif()
-
-if ("threads" IN_LIST FEATURES)
- set(HAVE_THREADS ON)
-else()
- set(HAVE_THREADS OFF)
-endif()
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ openmp ENABLE_OPENMP
+ threads ENABLE_THREADS
+ threads WITH_COMBINED_THREADS
+ avx2 ENABLE_AVX2
+ avx ENABLE_AVX
+ sse2 ENABLE_SSE2
+ sse ENABLE_SSE
+)
set(ENABLE_FLOAT_CMAKE fftw3f)
set(ENABLE_LONG_DOUBLE_CMAKE fftw3l)
@@ -80,14 +49,7 @@ foreach(PRECISION ENABLE_FLOAT ENABLE_LONG_DOUBLE ENABLE_DEFAULT_PRECISION)
PREFER_NINJA
OPTIONS
-D${PRECISION}=ON
- -DENABLE_OPENMP=${ENABLE_OPENMP}
- -DHAVE_SSE=${HAVE_SSE}
- -DHAVE_SSE2=${HAVE_SSE2}
- -DHAVE_AVX=${HAVE_AVX}
- -DHAVE_AVX2=${HAVE_AVX2}
- -DHAVE_FMA=${HAVE_FMA}
- -DENABLE_THREADS=${HAVE_THREADS}
- -DWITH_COMBINED_THREADS=${HAVE_THREADS}
+ ${FEATURE_OPTIONS}
-DBUILD_TESTS=OFF
)
endif()
diff --git a/ports/field3d/CONTROL b/ports/field3d/CONTROL
index 487075eb4..c65ac02c5 100644
--- a/ports/field3d/CONTROL
+++ b/ports/field3d/CONTROL
@@ -3,3 +3,4 @@ Version: 1.7.2
Homepage: https://github.com/imageworks/Field3D
Description: An open source library for storing voxel data. It provides C++ classes that handle in-memory storage and a file format based on HDF5 that allows the C++ objects to be written to and read from disk.
Build-Depends: hdf5, boost-regex, boost-thread, boost-program-options, boost-system, openexr, boost-foreach, boost-test, boost-timer, boost-format
+Supports: !(windows|arm|uwp)
\ No newline at end of file
diff --git a/ports/fizz/CONTROL b/ports/fizz/CONTROL
index 86dbc6da6..ddce58fbb 100644
--- a/ports/fizz/CONTROL
+++ b/ports/fizz/CONTROL
@@ -1,4 +1,4 @@
Source: fizz
-Version: 2019.10.28.00
-Build-Depends: folly, openssl, libsodium, zlib
-Description: a TLS 1.3 implementation by Facebook
+Version: 2020.01.20.00
+Build-Depends: folly, openssl, libsodium, zlib, fmt
+Description: a TLS 1.3 implementation by Facebook
\ No newline at end of file
diff --git a/ports/fizz/fix-build_error.patch b/ports/fizz/fix-build_error.patch
index e85f16c6e..c6bafbb15 100644
--- a/ports/fizz/fix-build_error.patch
+++ b/ports/fizz/fix-build_error.patch
@@ -1,13 +1,13 @@
-diff --git a/fizz/CMakeLists.txt b/fizz/CMakeLists.txt
-index 7f8769a..debac4e 100644
---- a/fizz/CMakeLists.txt
-+++ b/fizz/CMakeLists.txt
-@@ -81,7 +81,7 @@ if(TARGET event)
- message(STATUS "Found libevent from package config")
- list(APPEND FIZZ_SHINY_DEPENDENCIES event)
- else()
-- find_package(Libevent MODULE REQUIRED)
-+ find_package(Libevent CONFIG REQUIRED)
- list(APPEND FIZZ_LINK_LIBRARIES ${LIBEVENT_LIB})
- list(APPEND FIZZ_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR})
- endif()
+diff --git a/fizz/CMakeLists.txt b/fizz/CMakeLists.txt
+index ccbbbb6..ee10c90 100644
+--- a/fizz/CMakeLists.txt
++++ b/fizz/CMakeLists.txt
+@@ -86,7 +86,7 @@ if(TARGET event)
+ message(STATUS "Found libevent from package config")
+ list(APPEND FIZZ_SHINY_DEPENDENCIES event)
+ else()
+- find_package(Libevent MODULE REQUIRED)
++ find_package(Libevent CONFIG REQUIRED)
+ list(APPEND FIZZ_LINK_LIBRARIES ${LIBEVENT_LIB})
+ list(APPEND FIZZ_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR})
+ endif()
diff --git a/ports/fizz/portfile.cmake b/ports/fizz/portfile.cmake
index 1647eb1ef..17a9093bd 100644
--- a/ports/fizz/portfile.cmake
+++ b/ports/fizz/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO facebookincubator/fizz
- REF 3e933cff04c27c97d0fb0b899ed0c883b4e02e3b # v2019.10.28.00
- SHA512 522b677f9e6cb0dd7ce2dad226efd831877ce12352efa6a34e743d1ec7a02ba65e7425472a57e88832f68fa4503206d9846580e305da6a0843034455e510b68d
+ REF b5c90de055e58e53b4137e0593f5bdbca172bcb2 # v2020.01.20.00
+ SHA512 1fdc8fd1d48671de30e4e67d260b13045dbc4436d2afa571bbb60e446d7d47cb68b9536dfef3621c0dd104abb7ec24647e0e0fad42b0134c5047772b7a9b2384
HEAD_REF master
PATCHES
find-zlib.patch
@@ -44,4 +44,4 @@ file(REMOVE_RECURSE
)
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fizz RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
\ No newline at end of file
diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL
index 1ec16d009..77c75a702 100644
--- a/ports/folly/CONTROL
+++ b/ports/folly/CONTROL
@@ -4,6 +4,7 @@ Homepage: https://github.com/facebook/folly
Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows
Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread, boost-smart-ptr
Default-Features: zlib
+Supports: x64
Feature: zlib
Build-Depends: zlib
diff --git a/ports/forge/CONTROL b/ports/forge/CONTROL
index d791f8ad6..3aa7608d0 100644
--- a/ports/forge/CONTROL
+++ b/ports/forge/CONTROL
@@ -2,3 +2,4 @@ Source: forge
Version: 1.0.4-2
Description: Helps with high performance visualizations involving OpenGL-CUDA/OpenCL interop.
Build-Depends: glfw3, glm, glbinding, freetype, boost-functional, freeimage, fontconfig (!windows)
+Supports: x64
\ No newline at end of file
diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake
index e46afcf9b..eec5b3096 100644
--- a/ports/freeglut/portfile.cmake
+++ b/ports/freeglut/portfile.cmake
@@ -49,8 +49,12 @@ vcpkg_install_cmake()
# Rename static lib (otherwise it's incompatible with FindGLUT.cmake)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/lib/freeglut.lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut_staticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freeglutd.lib)
+ if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freeglut_static.lib ${CURRENT_PACKAGES_DIR}/lib/freeglut.lib)
+ endif()
+ if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freeglut_staticd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freeglutd.lib)
+ endif()
endif()
vcpkg_replace_string(
diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL
index 05dbe5060..b5f5d0ef8 100644
--- a/ports/freetype/CONTROL
+++ b/ports/freetype/CONTROL
@@ -1,5 +1,18 @@
Source: freetype
-Version: 2.10.1-2
-Build-Depends: zlib, bzip2, libpng
+Version: 2.10.1-3
+Build-Depends: zlib
Homepage: https://www.freetype.org/
Description: A library to render fonts.
+Default-Features: bzip2, png
+
+Feature: bzip2
+Build-Depends: bzip2
+Description: Support bzip2 compressed fonts.
+
+Feature: harfbuzz
+Build-Depends: harfbuzz
+Description: Improve auto-hinting of OpenType fonts.
+
+Feature: png
+Build-Depends: libpng
+Description: Support PNG compressed OpenType embedded bitmaps.
diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake
index f8f740eab..1b8756a75 100644
--- a/ports/freetype/portfile.cmake
+++ b/ports/freetype/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
set(FT_VERSION 2.10.1)
vcpkg_download_distfile(ARCHIVE
URLS "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.xz" "https://downloads.sourceforge.net/project/freetype/freetype2/${FT_VERSION}/freetype-${FT_VERSION}.tar.xz"
@@ -8,20 +6,31 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive_ex(
-OUT_SOURCE_PATH SOURCE_PATH
-ARCHIVE ${ARCHIVE}
-REF ${FT_VERSION}
-PATCHES
- 0001-Fix-install-command.patch
- 0002-Add-CONFIG_INSTALL_PATH-option.patch
- 0003-Fix-UWP.patch
- 0005-Fix-DLL-EXPORTS.patch
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ REF ${FT_VERSION}
+ PATCHES
+ 0001-Fix-install-command.patch
+ 0002-Add-CONFIG_INSTALL_PATH-option.patch
+ 0003-Fix-UWP.patch
+ 0005-Fix-DLL-EXPORTS.patch
)
-
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ bzip2 FT_WITH_BZIP2
+ harfbuzz FT_WITH_HARFBUZZ
+ png FT_WITH_PNG
+ INVERTED_FEATURES
+ bzip2 CMAKE_DISABLE_FIND_PACKAGE_BZip2
+ harfbuzz CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz
+ png CMAKE_DISABLE_FIND_PACKAGE_PNG
+)
+
if(NOT ${VCPKG_LIBRARY_LINKAGE} STREQUAL "dynamic")
- set(ENABLE_DLL_EXPORT OFF)
+ set(ENABLE_DLL_EXPORT OFF)
else()
- set(ENABLE_DLL_EXPORT ON)
+ set(ENABLE_DLL_EXPORT ON)
endif()
vcpkg_configure_cmake(
@@ -29,11 +38,8 @@ vcpkg_configure_cmake(
PREFER_NINJA
OPTIONS
-DCONFIG_INSTALL_PATH=share/freetype
- -DFT_WITH_ZLIB=ON
- -DFT_WITH_BZIP2=ON
- -DFT_WITH_PNG=ON
- -DFT_WITH_HARFBUZZ=OFF
- -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
+ -DFT_WITH_ZLIB=ON # Force system zlib.
+ ${FEATURE_OPTIONS}
-DENABLE_DLL_EXPORT=${ENABLE_DLL_EXPORT}
)
@@ -78,5 +84,13 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/share/freetype/LICENSE.TXT ${CURRENT_PACKAGE
vcpkg_copy_pdbs()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/freetype)
+ if("bzip2" IN_LIST FEATURES)
+ set(USE_BZIP2 ON)
+ endif()
+
+ if("png" IN_LIST FEATURES)
+ set(USE_PNG ON)
+ endif()
+
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/freetype/vcpkg-cmake-wrapper.cmake @ONLY)
endif()
diff --git a/ports/freetype/vcpkg-cmake-wrapper.cmake b/ports/freetype/vcpkg-cmake-wrapper.cmake
index c08499f2d..01da0b1dc 100644
--- a/ports/freetype/vcpkg-cmake-wrapper.cmake
+++ b/ports/freetype/vcpkg-cmake-wrapper.cmake
@@ -1,10 +1,35 @@
_find_package(${ARGS})
+
find_package(ZLIB)
-find_package(PNG)
-find_package(BZip2)
+
+if(@USE_BZIP2@)
+ find_package(BZip2)
+endif()
+
+if(@USE_PNG@)
+ find_package(PNG)
+endif()
+
if(TARGET Freetype::Freetype)
- set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2 PNG::PNG ZLIB::ZLIB)
+ set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
+
+ if(@USE_BZIP2@)
+ set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2)
+ endif()
+
+ if(@USE_PNG@)
+ set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG)
+ endif()
endif()
+
if(FREETYPE_LIBRARIES)
- list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
+ list(APPEND FREETYPE_LIBRARIES ${ZLIB_LIBRARIES})
+
+ if(@USE_BZIP2@)
+ list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES})
+ endif()
+
+ if(@USE_PNG@)
+ list(APPEND FREETYPE_LIBRARIES ${PNG_LIBRARIES})
+ endif()
endif()
diff --git a/ports/ftgl/01_disable_doxygen.patch b/ports/ftgl/01_disable_doxygen.patch
new file mode 100644
index 000000000..5443554e7
--- /dev/null
+++ b/ports/ftgl/01_disable_doxygen.patch
@@ -0,0 +1,30 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 303fcae..718ae88 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,15 +35,16 @@ ENDIF(BUILD_SHARED_LIBS)
+
+ ADD_CUSTOM_TARGET(doc)
+
+-FIND_PACKAGE(Doxygen)
+-IF(DOXYGEN_FOUND)
+- ADD_CUSTOM_TARGET(doxygen
+- ${DOXYGEN_EXECUTABLE}
+- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+- COMMENT "Doxygen ...")
+- ADD_DEPENDENCIES(doc doxygen)
+-
+-ENDIF(DOXYGEN_FOUND)
++IF (WIN32) # doxygen only have windows package in vcpkg now.
++ FIND_PACKAGE(Doxygen)
++ IF(DOXYGEN_FOUND)
++ ADD_CUSTOM_TARGET(doxygen
++ ${DOXYGEN_EXECUTABLE}
++ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
++ COMMENT "Doxygen ...")
++ ADD_DEPENDENCIES(doc doxygen)
++ ENDIF(DOXYGEN_FOUND)
++ENDIF()
+
+ SUBDIRS(src)
+
diff --git a/ports/ftgl/02_enable-cpp11-std.patch b/ports/ftgl/02_enable-cpp11-std.patch
new file mode 100644
index 000000000..37ae283af
--- /dev/null
+++ b/ports/ftgl/02_enable-cpp11-std.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 718ae88..e53e0da 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,9 @@
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+ PROJECT(FTGL)
++set(CMAKE_CXX_STANDARD 11)
++set(CMAKE_CXX_STANDARD_REQUIRED ON)
++
+ SET(CMAKE_MODULE_PATH ${FTGL_SOURCE_DIR})
+
+ SET(VERSION_SERIES 2)
diff --git a/ports/ftgl/CONTROL b/ports/ftgl/CONTROL
index b8e652144..221bf10e6 100644
--- a/ports/ftgl/CONTROL
+++ b/ports/ftgl/CONTROL
@@ -1,6 +1,7 @@
-Source: ftgl
-Version: 2.4.0-1
-Description: FTGL is a free open source library to enable developers to use arbitrary fonts in their OpenGL (www.opengl.org) applications.
- Unlike other OpenGL font libraries FTGL uses standard font file formats so doesn't need a preprocessing step to convert the high quality font data into a lesser quality, proprietary format.
- FTGL uses the Freetype (www.freetype.org) font library to open and 'decode' the fonts. It then takes that output and stores it in a format most efficient for OpenGL rendering.
-Build-Depends: freetype, opengl
+Source: ftgl
+Version: 2.4.0-2
+Homepage: https://github.com/frankheckenbach/ftgl
+Description: FTGL is a free open source library to enable developers to use arbitrary fonts in their OpenGL (www.opengl.org) applications.
+ Unlike other OpenGL font libraries FTGL uses standard font file formats so doesn't need a preprocessing step to convert the high quality font data into a lesser quality, proprietary format.
+ FTGL uses the Freetype (www.freetype.org) font library to open and 'decode' the fonts. It then takes that output and stores it in a format most efficient for OpenGL rendering.
+Build-Depends: freetype, opengl
diff --git a/ports/ftgl/portfile.cmake b/ports/ftgl/portfile.cmake
index 65df89b20..9208cb086 100644
--- a/ports/ftgl/portfile.cmake
+++ b/ports/ftgl/portfile.cmake
@@ -1,25 +1,32 @@
-include(vcpkg_common_functions)
-vcpkg_find_acquire_program(DOXYGEN)
-
-vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO frankheckenbach/ftgl
+if (VCPKG_TARGET_IS_WINDOWS)
+ # doxygen only have windows package in vcpkg now.
+ vcpkg_find_acquire_program(DOXYGEN)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO frankheckenbach/ftgl
REF 483639219095ad080538e07ceb5996de901d4e74
- SHA512 d5bf95db8db6a5c9f710bd274cb9bb82e3e67569e8f3ec55b36e068636a09252e6f191e36d8279e61b5d12408c065ce51829fc38d4d7afe5bda724752d2f084f
- HEAD_REF master
- PATCHES Fix-headersFilePath.patch
-)
-
-vcpkg_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
-)
-
-vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
-vcpkg_test_cmake(PACKAGE_NAME FTGL)
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/ftgl)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/ftgl/COPYING ${CURRENT_PACKAGES_DIR}/share/ftgl/copyright)
+ SHA512 d5bf95db8db6a5c9f710bd274cb9bb82e3e67569e8f3ec55b36e068636a09252e6f191e36d8279e61b5d12408c065ce51829fc38d4d7afe5bda724752d2f084f
+ HEAD_REF master
+ PATCHES
+ Fix-headersFilePath.patch
+ 01_disable_doxygen.patch
+ 02_enable-cpp11-std.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+else ()
+ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/getopt-win32/CONTROL b/ports/getopt-win32/CONTROL
index ba14d4909..5de151a79 100644
--- a/ports/getopt-win32/CONTROL
+++ b/ports/getopt-win32/CONTROL
@@ -2,3 +2,4 @@ Source: getopt-win32
Version: 0.1
Description: An implementation of getopt.
Homepage: https://github.com/libimobiledevice-win32
+Supports: windows
\ No newline at end of file
diff --git a/ports/getopt-win32/portfile.cmake b/ports/getopt-win32/portfile.cmake
index 50ffc2b88..780cb1c5f 100644
--- a/ports/getopt-win32/portfile.cmake
+++ b/ports/getopt-win32/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
if(VCPKG_CMAKE_SYSTEM_NAME)
message(FATAL_ERROR "getopt-win32 only supports building on Windows Desktop")
endif()
@@ -22,3 +20,5 @@ vcpkg_install_msbuild(
# Copy header
file(COPY ${SOURCE_PATH}/getopt.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
+
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
diff --git a/ports/getopt/CONTROL b/ports/getopt/CONTROL
index bae137bbd..d2b9c2930 100644
--- a/ports/getopt/CONTROL
+++ b/ports/getopt/CONTROL
@@ -2,3 +2,4 @@ Source: getopt
Version: 0
Description: The getopt and getopt_long functions automate some of the chore involved in parsing typical unix command line options.
Build-Depends: getopt-win32 (windows)
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/gettext/0003-Fix-win-unicode-paths.patch b/ports/gettext/0003-Fix-win-unicode-paths.patch
new file mode 100644
index 000000000..f86c52c86
--- /dev/null
+++ b/ports/gettext/0003-Fix-win-unicode-paths.patch
@@ -0,0 +1,60 @@
+diff --git "a/gettext-runtime/intl/loadmsgcat.c" "b/gettext-runtime/intl/loadmsgcat.c"
+index 63351523..c078de3f 100644
+--- a/gettext-runtime/intl/loadmsgcat.c
++++ b/gettext-runtime/intl/loadmsgcat.c
+@@ -477,6 +477,55 @@ char *alloca ();
+ # define munmap(addr, len) __munmap (addr, len)
+ #endif
+
++#ifdef _WIN32
++/* Provide wrapper of "open" for Windows that supports UTF-8 filenames. */
++# ifndef WIN32_LEAN_AND_MEAN
++# define WIN32_LEAN_AND_MEAN
++# endif
++# ifndef WIN32_EXTRA_LEAN
++# define WIN32_EXTRA_LEAN
++# endif
++# undef NOMINMAX
++# define NOMINMAX
++# include // For: MultiByteToWideChar
++# include
++# include
++
++int _open_utf8_windows_wrapper(
++ const char *filename,
++ int flags
++)
++{
++ int wstr_len = -1;
++ wchar_t* pUtf16FileName = NULL;
++ int fh = -1;
++
++ // on Windows, convert the filename from UTF-8 to UTF-16
++ wstr_len = MultiByteToWideChar(CP_UTF8, 0, filename, -1, NULL, 0);
++ if (wstr_len <= 0)
++ {
++ // MultiByteToWideChar failed
++ errno = ENOENT;
++ return -1;
++ }
++ pUtf16FileName = malloc(wstr_len * sizeof(wchar_t));
++ if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, pUtf16FileName, wstr_len) == 0)
++ {
++ // MultiByteToWideChar failed
++ free(pUtf16FileName);
++ errno = ENOENT;
++ return -1;
++ }
++
++ // and call _wopen
++ fh = _wopen(pUtf16FileName, flags);
++
++ free(pUtf16FileName);
++ return fh;
++}
++# define open(name, flags) _open_utf8_windows_wrapper(name, flags)
++#endif // #ifdef _WIN32
++
+ /* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+ #ifdef HAVE_ALLOCA
diff --git a/ports/gettext/CMakeLists.txt b/ports/gettext/CMakeLists.txt
index 67e1d05f7..57d5a14e5 100644
--- a/ports/gettext/CMakeLists.txt
+++ b/ports/gettext/CMakeLists.txt
@@ -120,13 +120,13 @@ if(NOT WIN32)
target_link_libraries(libintl PRIVATE Threads::Threads)
endif()
if (WIN32)
- target_link_libraries(libintl PRIVATE Advapi32.lib)
+ target_link_libraries(libintl PRIVATE kernel32.lib Advapi32.lib)
endif()
install(TARGETS libintl
EXPORT unofficial-gettext-targets
RUNTIME DESTINATION bin
- LIBRARY DESTINATION bin
+ LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
diff --git a/ports/gettext/CONTROL b/ports/gettext/CONTROL
index a2876ee99..5cfa7b0d7 100644
--- a/ports/gettext/CONTROL
+++ b/ports/gettext/CONTROL
@@ -1,5 +1,5 @@
Source: gettext
-Version: 0.19-12
+Version: 0.19-14
Homepage: https://www.gnu.org/software/gettext/
Description: The GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages. Provides libintl.
Build-Depends: libiconv
diff --git a/ports/gettext/portfile.cmake b/ports/gettext/portfile.cmake
index a9ab3d2e7..988c2f439 100644
--- a/ports/gettext/portfile.cmake
+++ b/ports/gettext/portfile.cmake
@@ -1,16 +1,16 @@
-if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+if(VCPKG_TARGET_IS_LINUX)
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
if (NOT EXISTS "/usr/include/libintl.h")
message(FATAL_ERROR "Please use command \"sudo apt-get install gettext\" to install gettext on linux.")
endif()
file(COPY ${CMAKE_CURRENT_LIST_DIR}/unofficial-gettext-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/unofficial-gettext)
return()
+else()
+ set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
endif()
#Based on https://github.com/winlibs/gettext
-include(vcpkg_common_functions)
-
set(GETTEXT_VERSION 0.19)
vcpkg_download_distfile(ARCHIVE
@@ -25,6 +25,7 @@ vcpkg_extract_source_archive_ex(
PATCHES
0001-Fix-macro-definitions.patch
0002-Fix-uwp-build.patch
+ 0003-Fix-win-unicode-paths.patch
)
file(COPY
diff --git a/ports/gflags/CONTROL b/ports/gflags/CONTROL
index 4cd423293..f2b930778 100644
--- a/ports/gflags/CONTROL
+++ b/ports/gflags/CONTROL
@@ -2,3 +2,4 @@ Source: gflags
Version: 2.2.2-1
Homepage: https://github.com/gflags/gflags
Description: A C++ library that implements commandline flags processing
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/glfw3/CONTROL b/ports/glfw3/CONTROL
index e51362d2a..45b452b1f 100644
--- a/ports/glfw3/CONTROL
+++ b/ports/glfw3/CONTROL
@@ -1,4 +1,4 @@
Source: glfw3
-Version: 3.3.1
+Version: 3.3.2
Homepage: https://github.com/glfw/glfw
Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.
diff --git a/ports/glfw3/portfile.cmake b/ports/glfw3/portfile.cmake
index fef1bdf2e..393ecdd03 100644
--- a/ports/glfw3/portfile.cmake
+++ b/ports/glfw3/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO glfw/glfw
- REF 3.3.1
- SHA512 f9376002314eae5518ca63738cf1558433007dbf628fb6093a6f54c330f72d85e0ac30049877c50bc99f029e3eb6f69e69508f412d1ec9bdde0ac721dbbeba1e
+ REF 3.3.2
+ SHA512 f5af749d33b5b900ccf07988ad0bf51bd766a18e4cf2bc2a76020c88e98a2528ff1b965224184fe0d290cfe34b1af1e6f633600660d81194fe354078e2f35c56
HEAD_REF master
)
diff --git a/ports/glib/CONTROL b/ports/glib/CONTROL
index cdf5441fe..871f98d86 100644
--- a/ports/glib/CONTROL
+++ b/ports/glib/CONTROL
@@ -3,6 +3,7 @@ Version: 2.52.3-14-5
Homepage: https://developer.gnome.org/glib/
Description: Portable, general-purpose utility library.
Build-Depends: zlib, pcre, libffi, gettext, libiconv
+Supports: !uwp
Feature: selinux
Description: Build with selinux support.
\ No newline at end of file
diff --git a/ports/glibmm/CONTROL b/ports/glibmm/CONTROL
index 941735feb..aefaf7b83 100644
--- a/ports/glibmm/CONTROL
+++ b/ports/glibmm/CONTROL
@@ -2,4 +2,5 @@ Source: glibmm
Version: 2.52.1-11
Description: This is glibmm, a C++ API for parts of glib that are useful for C++.
Homepage: https://www.gtkmm.org.
-Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
\ No newline at end of file
+Build-Depends: zlib, pcre, libffi, gettext, libiconv, glib, libsigcpp
+Supports: !uwp
diff --git a/ports/gmmlib/CONTROL b/ports/gmmlib/CONTROL
index 4d043f870..b17937635 100644
--- a/ports/gmmlib/CONTROL
+++ b/ports/gmmlib/CONTROL
@@ -1,3 +1,4 @@
Source: gmmlib
Version: 19.2.3
Description: intel's graphics memory management library
+Supports: linux
\ No newline at end of file
diff --git a/ports/googleapis/CONTROL b/ports/googleapis/CONTROL
index ac633e51b..d89aa8cd4 100644
--- a/ports/googleapis/CONTROL
+++ b/ports/googleapis/CONTROL
@@ -3,3 +3,4 @@ Version: 0.1.5
Build-Depends: grpc, protobuf
Description: C++ Proto Libraries for Google APIs.
Homepage: https://github.com/googleapis/cpp-cmakefiles
+Supports: !uwp
diff --git a/ports/grpc/00008-uwp_upb_disable_C4146_error.patch b/ports/grpc/00008-uwp_upb_disable_C4146_error.patch
deleted file mode 100644
index e2259e294..000000000
--- a/ports/grpc/00008-uwp_upb_disable_C4146_error.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/third_party/upb/upb/msg.c b/third_party/upb/upb/msg.c
-index a77da5665c..399e8753ba 100644
---- a/third_party/upb/upb/msg.c
-+++ b/third_party/upb/upb/msg.c
-@@ -33,17 +33,26 @@ static size_t upb_msg_sizeof(const upb_msglayout *l) {
- }
-
- static upb_msg_internal *upb_msg_getinternal(upb_msg *msg) {
-+#pragma warning(push)
-+#pragma warning(disable : 4146)
- return VOIDPTR_AT(msg, -sizeof(upb_msg_internal));
-+#pragma warning(pop)
- }
-
- static const upb_msg_internal *upb_msg_getinternal_const(const upb_msg *msg) {
-+#pragma warning(push)
-+#pragma warning(disable : 4146)
- return VOIDPTR_AT(msg, -sizeof(upb_msg_internal));
-+#pragma warning(pop)
- }
-
- static upb_msg_internal_withext *upb_msg_getinternalwithext(
- upb_msg *msg, const upb_msglayout *l) {
- UPB_ASSERT(l->extendable);
-+#pragma warning(push)
-+#pragma warning(disable : 4146)
- return VOIDPTR_AT(msg, -sizeof(upb_msg_internal_withext));
-+#pragma warning(pop)
- }
-
- upb_msg *upb_msg_new(const upb_msglayout *l, upb_arena *a) {
diff --git a/ports/grpc/00009-use-system-upb.patch b/ports/grpc/00009-use-system-upb.patch
new file mode 100644
index 000000000..515238b9a
--- /dev/null
+++ b/ports/grpc/00009-use-system-upb.patch
@@ -0,0 +1,118 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b535f10..0fcb682 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1530,7 +1530,7 @@ target_link_libraries(grpc
+ ${_gRPC_UPB_LIBRARIES}
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+ if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
+ target_link_libraries(grpc "-framework CoreFoundation")
+@@ -1941,7 +1941,7 @@ target_link_libraries(grpc_cronet
+ ${_gRPC_UPB_LIBRARIES}
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+ if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
+ target_link_libraries(grpc_cronet "-framework CoreFoundation")
+@@ -2283,7 +2283,7 @@ target_link_libraries(grpc_test_util
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+ grpc
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+ if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
+ target_link_libraries(grpc_test_util "-framework CoreFoundation")
+@@ -2626,7 +2626,7 @@ target_link_libraries(grpc_test_util_unsecure
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+ grpc_unsecure
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+ if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
+ target_link_libraries(grpc_test_util_unsecure "-framework CoreFoundation")
+@@ -3017,7 +3017,7 @@ target_link_libraries(grpc_unsecure
+ ${_gRPC_UPB_LIBRARIES}
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+ if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
+ target_link_libraries(grpc_unsecure "-framework CoreFoundation")
+@@ -3553,7 +3553,7 @@ target_link_libraries(grpc++
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ grpc
+ gpr
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+
+ foreach(_hdr
+@@ -4817,7 +4817,7 @@ target_link_libraries(grpc++_unsecure
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ gpr
+ grpc_unsecure
+- upb
++ ${_gRPC_UPB_LIBRARIES}
+ )
+
+ foreach(_hdr
+@@ -5848,7 +5848,7 @@ if(gRPC_INSTALL)
+ endif()
+
+ endif()
+-
++if(0)
+ add_library(upb
+ third_party/upb/upb/decode.c
+ third_party/upb/upb/encode.c
+@@ -5888,10 +5888,10 @@ target_include_directories(upb
+ target_link_libraries(upb
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+ )
++endif()
+
+
+-
+-if(gRPC_INSTALL)
++if(gRPC_INSTALL AND 0)
+ install(TARGETS upb EXPORT gRPCTargets
+ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in
+index 504d5a7..e2a3122 100644
+--- a/cmake/gRPCConfig.cmake.in
++++ b/cmake/gRPCConfig.cmake.in
+@@ -3,6 +3,7 @@
+ @_gRPC_FIND_PROTOBUF@
+ @_gRPC_FIND_SSL@
+ @_gRPC_FIND_CARES@
++find_package(upb CONFIG)
+
+ # Targets
+ include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
+diff --git a/cmake/upb.cmake b/cmake/upb.cmake
+index 2c0ab84..746e067 100644
+--- a/cmake/upb.cmake
++++ b/cmake/upb.cmake
+@@ -12,9 +12,9 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+
+-set(UPB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/upb)
++find_package(upb REQUIRED)
++set(_gRPC_UPB_INCLUDE_DIR)
+
+-set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}")
+ set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated")
+
+-set(_gRPC_UPB_LIBRARIES upb)
++set(_gRPC_UPB_LIBRARIES upb::upb)
diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL
index 4f5652a8b..790e19e8d 100644
--- a/ports/grpc/CONTROL
+++ b/ports/grpc/CONTROL
@@ -1,5 +1,5 @@
Source: grpc
-Version: 1.26.0
-Build-Depends: zlib, openssl, protobuf, c-ares (!uwp)
+Version: 1.26.0-1
+Build-Depends: zlib, openssl, protobuf, c-ares (!uwp), upb
Homepage: https://github.com/grpc/grpc
Description: An RPC library and framework
diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake
index 9e925898c..e156ea4d5 100644
--- a/ports/grpc/portfile.cmake
+++ b/ports/grpc/portfile.cmake
@@ -1,15 +1,7 @@
-include(vcpkg_common_functions)
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
+if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
endif()
-# This snippet is a workaround for users who are upgrading from an extremely old version of this
-# port, which cloned directly into `src\`
-if(EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO grpc/grpc
@@ -23,28 +15,19 @@ vcpkg_from_github(
00004-link-gdi32-on-windows.patch
00005-fix-uwp-error.patch
00006-crypt32.patch
- 00008-uwp_upb_disable_C4146_error.patch
+ 00009-use-system-upb.patch
)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+if(VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(gRPC_BUILD_CODEGEN OFF)
else()
set(gRPC_BUILD_CODEGEN ON)
endif()
-if(VCPKG_CRT_LINKAGE STREQUAL "static")
- set(gRPC_MSVC_STATIC_RUNTIME ON)
-else()
- set(gRPC_MSVC_STATIC_RUNTIME OFF)
-endif()
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" gRPC_MSVC_STATIC_RUNTIME)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" gRPC_STATIC_LINKING)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- set(gRPC_STATIC_LINKING ON)
-else()
- set(gRPC_STATIC_LINKING OFF)
-endif()
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+if(VCPKG_TARGET_IS_UWP)
set(cares_CARES_PROVIDER OFF)
else()
set(cares_CARES_PROVIDER "package")
diff --git a/ports/gsl-lite/CONTROL b/ports/gsl-lite/CONTROL
index 37711d364..d575f9bc5 100644
--- a/ports/gsl-lite/CONTROL
+++ b/ports/gsl-lite/CONTROL
@@ -1,4 +1,4 @@
-Source: gsl-lite
-Version: 0.34.0
-Homepage: https://github.com/martinmoene/gsl-lite
-Description: A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later
+Source: gsl-lite
+Version: 0.36.0
+Description: A single-file header-only implementation of ISO C++ Guidelines Support Library (GSL) for C++98, C++11 and later.
+Homepage: https://github.com/gsl-lite/gsl-lite/
diff --git a/ports/gsl-lite/portfile.cmake b/ports/gsl-lite/portfile.cmake
index ae8dedd92..03280d024 100644
--- a/ports/gsl-lite/portfile.cmake
+++ b/ports/gsl-lite/portfile.cmake
@@ -1,18 +1,28 @@
-include(vcpkg_common_functions)
-
-set(GSL_LITE_VERSION v0.34.0)
-
-vcpkg_download_distfile(HEADER
- URLS "https://github.com/martinmoene/gsl-lite/raw/${GSL_LITE_VERSION}/include/gsl/gsl-lite.hpp"
- FILENAME "gsl-lite-${GSL_LITE_VERSION}.hpp"
- SHA512 e8463ced48fb4c5aae9bab4e9bdf3deb8a6f17d6f712fd9e3855788f6f43c70ad689738f099735071e2e411b285d9b60312bbfc4f99fc0250bdc2ca0f38493d8
-)
-
-vcpkg_download_distfile(LICENSE
- URLS "https://github.com/martinmoene/gsl-lite/raw/${GSL_LITE_VERSION}/LICENSE"
- FILENAME "gsl-lite-LICENSE-${GSL_LITE_VERSION}.txt"
- SHA512 1feff12bda27a5ec52440a7624de54d841faf3e254fff04ab169b7f312e685f4bfe71236de8b8ef759111ae95bdb69e05f2e8318773b0aff4ba24ea9568749bb
-)
-
-file(INSTALL ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME gsl-lite.hpp)
-file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/gsl-lite RENAME copyright)
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gsl-lite/gsl-lite
+ REF 0190c0e40ca65e7d30dab51bee512ccd29f48bc1
+ SHA512 7ae9bb37bcbc83be3667b504271c209fea97e235fe50b754c3d420a7e97bbe2dd1df17a164dca536fb1455a19c26162d0bc27055d7c1ac495fb77956ec0f4e6d
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/gsl-lite")
+
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/gsl-lite.hpp "#ifndef GSL_LITE_HPP_VCPKG_COMPAT_HEADER_INCLUDED
+#define GSL_LITE_HPP_VCPKG_COMPAT_HEADER_INCLUDED
+#pragma message(\"The header is deprecated and provided only for compatibility; please include instead.\")
+#include
+#endif // GSL_LITE_HPP_VCPKG_COMPAT_HEADER_INCLUDED")
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/lib"
+ "${CURRENT_PACKAGES_DIR}/debug"
+)
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/ports/gtkmm/CONTROL b/ports/gtkmm/CONTROL
index b346cd699..ecdab2cc3 100644
--- a/ports/gtkmm/CONTROL
+++ b/ports/gtkmm/CONTROL
@@ -3,3 +3,4 @@ Version: 3.22.2-2
Homepage: https://www.gtkmm.org/
Description: gtkmm is the official C++ interface for the popular GUI library GTK+.
Build-Depends: glib, atk, gtk, gdk-pixbuf, pango, cairo, libepoxy, gettext, glibmm, atkmm, cairomm, pangomm
+Supports: !uwp
diff --git a/ports/hdf5/CONTROL b/ports/hdf5/CONTROL
index a8d27e029..6a74b2da9 100644
--- a/ports/hdf5/CONTROL
+++ b/ports/hdf5/CONTROL
@@ -1,8 +1,9 @@
Source: hdf5
-Version: 1.10.5-9
+Version: 1.10.5-10
Homepage: https://www.hdfgroup.org/downloads/hdf5/
Description: HDF5 is a data model, library, and file format for storing and managing data
Default-Features: szip, zlib
+Supports: !uwp
Feature: parallel
Description: parallel support for HDF5
diff --git a/ports/hwloc/CONTROL b/ports/hwloc/CONTROL
index f754a0fd8..eeb7421f3 100644
--- a/ports/hwloc/CONTROL
+++ b/ports/hwloc/CONTROL
@@ -3,3 +3,4 @@ Version: 1.11.7-3
Homepage: https://github.com/open-mpi/hwloc
Description: Portable Hardware Locality (hwloc)
The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/hyperscan/CONTROL b/ports/hyperscan/CONTROL
index 2f04703a9..ad761ba3a 100644
--- a/ports/hyperscan/CONTROL
+++ b/ports/hyperscan/CONTROL
@@ -1,4 +1,4 @@
Source: hyperscan
-Version: 5.0.1-2
+Version: 5.1.0-3
Description: A regular expression library with O(length of input) match times that takes advantage of Intel hardware to provide blazing speed.
-Build-Depends: boost-array, boost-chrono, boost-config, boost-core, boost-detail, boost-functional, boost-regex, boost-system, boost-thread, boost-type-traits, boost-unordered, boost-utility, boost-dynamic-bitset, boost-random, boost-graph, boost-multi-array, boost-icl, boost-ptr-container, python3, ragel
\ No newline at end of file
+Build-Depends: boost-array, boost-chrono, boost-config, boost-core, boost-detail, boost-functional, boost-regex, boost-system, boost-thread, boost-type-traits, boost-unordered, boost-utility, boost-dynamic-bitset, boost-random, boost-graph, boost-multi-array, boost-icl, boost-ptr-container, python3, ragel
diff --git a/ports/hyperscan/portfile.cmake b/ports/hyperscan/portfile.cmake
index 2b48087ba..f9778cb73 100644
--- a/ports/hyperscan/portfile.cmake
+++ b/ports/hyperscan/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
set(HYPERSCAN_VERSION 5.1.0)
@@ -13,11 +11,8 @@ vcpkg_from_github(
)
vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON_PATH ${PYTHON3} DIRECTORY)
-vcpkg_add_to_path(PREPEND ${PYTHON_PATH})
-vcpkg_add_to_path(${CURRENT_INSTALLED_DIR}/bin)
-vcpkg_add_to_path(${CURRENT_INSTALLED_DIR}/debug/bin)
-vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY)
+vcpkg_add_to_path(${PYTHON3_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -26,5 +21,6 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL
index 4fccc8622..06d902e19 100644
--- a/ports/icu/CONTROL
+++ b/ports/icu/CONTROL
@@ -2,3 +2,4 @@ Source: icu
Version: 61.1-8
Homepage: http://icu-project.org/apiref/icu4c/
Description: Mature and widely used Unicode and localization library.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/jinja2cpplight/CONTROL b/ports/jinja2cpplight/CONTROL
index 57334bc42..f918eb28f 100644
--- a/ports/jinja2cpplight/CONTROL
+++ b/ports/jinja2cpplight/CONTROL
@@ -1,4 +1,5 @@
Source: jinja2cpplight
Version: 2018-05-08
Homepage: https://github.com/hughperkins/Jinja2CppLight
-Description: (very) lightweight version of Jinja2 for C++, Lightweight templating engine for C++, based on Jinja2.
\ No newline at end of file
+Description: (very) lightweight version of Jinja2 for C++, Lightweight templating engine for C++, based on Jinja2.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/jsoncpp/CONTROL b/ports/jsoncpp/CONTROL
index f0d4b66a3..fb5951d60 100644
--- a/ports/jsoncpp/CONTROL
+++ b/ports/jsoncpp/CONTROL
@@ -1,4 +1,4 @@
Source: jsoncpp
-Version: 1.9.1
+Version: 1.9.2
Homepage: https://github.com/open-source-parsers/jsoncpp
Description: jsoncpp is an implementation of a JSON reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format that it is easy to parse and redeable for human.
diff --git a/ports/jsoncpp/allow-disable-examples.patch b/ports/jsoncpp/allow-disable-examples.patch
new file mode 100644
index 000000000..83413db90
--- /dev/null
+++ b/ports/jsoncpp/allow-disable-examples.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8a7d3ef..4e06331 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -82,6 +82,7 @@ option(JSONCPP_WITH_WARNING_AS_ERROR "Force compilation to fail if a warning occ
+ option(JSONCPP_WITH_STRICT_ISO "Issue all the warnings demanded by strict ISO C and ISO C++" ON)
+ option(JSONCPP_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
+ option(JSONCPP_WITH_CMAKE_PACKAGE "Generate and install cmake package files" ON)
++option(JSONCPP_WITH_EXAMPLE "Compile JsonCpp example" OFF)
+ option(BUILD_SHARED_LIBS "Build jsoncpp_lib as a shared library." OFF)
+
+ # Enable runtime search path support for dynamic libraries on OSX
+@@ -228,4 +229,6 @@ add_subdirectory( src )
+ add_subdirectory( include )
+
+ #install the example
+-add_subdirectory( example )
++if(JSONCPP_WITH_EXAMPLE)
++ add_subdirectory( example )
++endif()
diff --git a/ports/jsoncpp/portfile.cmake b/ports/jsoncpp/portfile.cmake
index 3e00476d2..3324ab985 100644
--- a/ports/jsoncpp/portfile.cmake
+++ b/ports/jsoncpp/portfile.cmake
@@ -1,28 +1,29 @@
-include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO open-source-parsers/jsoncpp
- REF 1.9.1
- SHA512 4a8352e1d32c0ba8a0aea4df1663279cb2256b334643c5b62be37dfb5951e06900ba38c010d1201511fcf7de09137d6a4b886edbb2b99160d2f62b5f4679f766
+ REF 1.9.2
+ SHA512 7c7188199d62ae040d458d507ba62f0370c53f39c580760ee5485cae5c08e5ced0c9aea7c14f54dfd041999a7291e4d0f67f8ccd8b1030622c85590774688640
HEAD_REF master
+ PATCHES
+ allow-disable-examples.patch
)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(JSONCPP_STATIC OFF)
- set(JSONCPP_DYNAMIC ON)
-else()
+if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(JSONCPP_STATIC ON)
- set(JSONCPP_DYNAMIC OFF)
+else()
+ set(JSONCPP_STATIC OFF)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- DISABLE_PARALLEL_CONFIGURE
- OPTIONS -DJSONCPP_WITH_CMAKE_PACKAGE:BOOL=ON
- -DBUILD_STATIC_LIBS:BOOL=${JSONCPP_STATIC}
- -DJSONCPP_WITH_PKGCONFIG_SUPPORT:BOOL=OFF
- -DJSONCPP_WITH_TESTS:BOOL=OFF
+ OPTIONS
+ -DJSONCPP_WITH_CMAKE_PACKAGE=ON
+ -DBUILD_STATIC_LIBS=${JSONCPP_STATIC}
+ -DJSONCPP_WITH_PKGCONFIG_SUPPORT=OFF
+ -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF
+ -DJSONCPP_WITH_TESTS=OFF
+ -DJSONCPP_WITH_EXAMPLE=OFF
)
vcpkg_install_cmake()
diff --git a/ports/jsonnet/0003-use-upstream-nlohmann-json.patch b/ports/jsonnet/0003-use-upstream-nlohmann-json.patch
new file mode 100644
index 000000000..a2e1105b7
--- /dev/null
+++ b/ports/jsonnet/0003-use-upstream-nlohmann-json.patch
@@ -0,0 +1,13 @@
+diff --git a/core/vm.cpp b/core/vm.cpp
+index 0cf06fa..d65a6d7 100644
+--- a/core/vm.cpp
++++ b/core/vm.cpp
+@@ -23,7 +23,7 @@ limitations under the License.
+
+ #include "desugarer.h"
+ #include "json.h"
+-#include "json.hpp"
++#include "nlohmann/json.hpp"
+ #include "md5.h"
+ #include "parser.h"
+ #include "state.h"
diff --git a/ports/jsonnet/002-fix-dependency-and-install.patch b/ports/jsonnet/002-fix-dependency-and-install.patch
index cccdc9439..7c7b5da77 100644
--- a/ports/jsonnet/002-fix-dependency-and-install.patch
+++ b/ports/jsonnet/002-fix-dependency-and-install.patch
@@ -24,7 +24,7 @@ index 82fb7c2..a94b4ff 100644
endif()
+
+
-+install(FILES ${LIBJSONNET_HEADERS} DESTINATION include)
++install(FILES ${LIB_HEADER} DESTINATION include)
\ No newline at end of file
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index bf349df..6ed1442 100644
diff --git a/ports/jsonnet/CONTROL b/ports/jsonnet/CONTROL
index 2f6e669ef..78542024c 100644
--- a/ports/jsonnet/CONTROL
+++ b/ports/jsonnet/CONTROL
@@ -1,4 +1,5 @@
Source: jsonnet
-Version: 0.14.0
+Version: 0.14.0-1
Homepage: https://github.com/google/jsonnet
Description: Jsonnet - The data templating language
+Build-Depends: nlohmann-json
diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake
index 2840f513f..6b4a30a11 100644
--- a/ports/jsonnet/portfile.cmake
+++ b/ports/jsonnet/portfile.cmake
@@ -11,9 +11,10 @@ vcpkg_from_github(
PATCHES
001-enable-msvc.patch
002-fix-dependency-and-install.patch
+ 0003-use-upstream-nlohmann-json.patch
)
-if (VCPKG_TARGET_IS_WINDOWS)
+if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_execute_required_process(
COMMAND Powershell -Command "((Get-Content -AsByteStream \"${SOURCE_PATH}/stdlib/std.jsonnet\") -join ',') + ',0' | Out-File -Encoding Ascii \"${SOURCE_PATH}/core/std.jsonnet.h\""
WORKING_DIRECTORY "${SOURCE_PATH}"
@@ -27,7 +28,7 @@ else()
)
endif()
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(BUILD_SHARED ON)
set(BUILD_STATIC OFF)
else()
@@ -44,6 +45,7 @@ vcpkg_configure_cmake(
-DBUILD_JSONNET=OFF
-DBUILD_JSONNETFMT=OFF
-DBUILD_TESTS=OFF
+ -DUSE_SYSTEM_JSON=ON
)
vcpkg_install_cmake()
diff --git a/ports/kinectsdk1/CONTROL b/ports/kinectsdk1/CONTROL
index 9764fb69a..d4cd1d273 100644
--- a/ports/kinectsdk1/CONTROL
+++ b/ports/kinectsdk1/CONTROL
@@ -1,3 +1,4 @@
Source: kinectsdk1
Version: 1.8-2
Description: Kinect for Windows SDK for Kinect v1 sensor.
+Supports: !arm
\ No newline at end of file
diff --git a/ports/kinectsdk2/CONTROL b/ports/kinectsdk2/CONTROL
index 4fc290d0f..d92784df4 100644
--- a/ports/kinectsdk2/CONTROL
+++ b/ports/kinectsdk2/CONTROL
@@ -1,3 +1,4 @@
Source: kinectsdk2
Version: 2.0-2
Description: Kinect for Windows SDK for Kinect v2 sensor.
+Supports: !arm
\ No newline at end of file
diff --git a/ports/lastools/CONTROL b/ports/lastools/CONTROL
index cb908a8d4..311130373 100644
--- a/ports/lastools/CONTROL
+++ b/ports/lastools/CONTROL
@@ -1,4 +1,5 @@
Source: lastools
Version: 2019-07-10
Homepage: https://github.com/LAStools/LAStools
-Description: LAStools: award-winning software for efficient LiDAR processing (with LASzip)
\ No newline at end of file
+Description: LAStools: award-winning software for efficient LiDAR processing (with LASzip)
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/leveldb/CONTROL b/ports/leveldb/CONTROL
index aa0b2bc3e..1b1302f97 100644
--- a/ports/leveldb/CONTROL
+++ b/ports/leveldb/CONTROL
@@ -2,3 +2,4 @@ Source: leveldb
Version: 1.22-1
Homepage: https://github.com/bitcoin-core/leveldb
Description: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/libarchive/CONTROL b/ports/libarchive/CONTROL
index 73760e887..6678faacc 100644
--- a/ports/libarchive/CONTROL
+++ b/ports/libarchive/CONTROL
@@ -4,6 +4,7 @@ Homepage: https://github.com/libarchive/libarchive
Description: Library for reading and writing streaming archives
Build-Depends: zlib
Default-Features: bzip2, libxml2, lz4, lzma, lzo, openssl
+Supports: !uwp
Feature: bzip2
Build-Depends: bzip2
diff --git a/ports/libevent/CONTROL b/ports/libevent/CONTROL
index 64067f15c..4df532990 100644
--- a/ports/libevent/CONTROL
+++ b/ports/libevent/CONTROL
@@ -1,7 +1,8 @@
Source: libevent
-Version: 2.1.11-4
+Version: 2.1.11-5
Homepage: https://github.com/libevent/libevent
Description: An event notification library
+Supports: !uwp
Default-Features: thread
Feature: openssl
diff --git a/ports/libexif/CONTROL b/ports/libexif/CONTROL
index e37d0960e..f3e4e4105 100644
--- a/ports/libexif/CONTROL
+++ b/ports/libexif/CONTROL
@@ -2,3 +2,4 @@ Source: libexif
Version: 0.6.21-2
Homepage: https://libexif.github.io/
Description: a library for parsing, editing, and saving EXIF data
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL
index 4492dbce1..2bc4a093a 100644
--- a/ports/libffi/CONTROL
+++ b/ports/libffi/CONTROL
@@ -2,3 +2,4 @@ Source: libffi
Version: 3.1-7
Homepage: https://github.com/libffi/libffi
Description: Portable, high level programming interface to various calling conventions
+Supports: !arm
\ No newline at end of file
diff --git a/ports/libgit2/CONTROL b/ports/libgit2/CONTROL
index d4050188c..0c320dd40 100644
--- a/ports/libgit2/CONTROL
+++ b/ports/libgit2/CONTROL
@@ -3,3 +3,4 @@ Version: 0.28.4
Homepage: https://github.com/libgit2/libgit2
Build-Depends: openssl (!windows&&!uwp)
Description: Git linkable library
+Supports: !uwp
diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake
index 9027e2acf..5f184079f 100644
--- a/ports/libiconv/portfile.cmake
+++ b/ports/libiconv/portfile.cmake
@@ -40,3 +40,5 @@ vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
vcpkg_test_cmake(PACKAGE_NAME unofficial-iconv)
+
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
diff --git a/ports/libmysql/CONTROL b/ports/libmysql/CONTROL
index fb236147e..1195fecc2 100644
--- a/ports/libmysql/CONTROL
+++ b/ports/libmysql/CONTROL
@@ -3,3 +3,4 @@ Version: 8.0.4-5
Homepage: https://github.com/mysql/mysql-server
Build-Depends: boost-algorithm, boost-geometry, boost-optional, boost-functional, boost-graph, openssl, icu, libevent, liblzma, lz4, zlib
Description: A MySQL client library for C development.
+Supports: !(windows&x86)&!uwp
\ No newline at end of file
diff --git a/ports/libodb-sqlite/CMakeLists.txt b/ports/libodb-sqlite/CMakeLists.txt
index 79f9bc2bf..8a62ab9a8 100644
--- a/ports/libodb-sqlite/CMakeLists.txt
+++ b/ports/libodb-sqlite/CMakeLists.txt
@@ -2,8 +2,7 @@ cmake_minimum_required(VERSION 3.0)
project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX)
find_package(odb 2.4.0 REQUIRED COMPONENTS libodb)
find_package(sqlite3 CONFIG)
-configure_file(config.unix.h.in
- ${CMAKE_CURRENT_SOURCE_DIR}/odb/sqlite/details/config.h COPYONLY)
+configure_file(config.unix.h.in odb/sqlite/details/config.h COPYONLY)
set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)")
file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False
@@ -15,7 +14,7 @@ target_include_directories(libodb-sqlite
PUBLIC
$
$
-
+ $
)
target_link_libraries(libodb-sqlite PRIVATE odb::libodb sqlite3)
@@ -35,14 +34,22 @@ install(TARGETS libodb-sqlite EXPORT odb_sqliteConfig
RUNTIME DESTINATION bin
)
if(LIBODB_INSTALL_HEADERS)
-install(DIRECTORY odb DESTINATION include/
+ install(
+ DIRECTORY odb
+ DESTINATION include/
COMPONENT sqlite
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.hxx"
PATTERN "*.ixx"
PATTERN "*.txx"
-)
+ )
+ install(
+ FILES config.unix.h.in
+ DESTINATION include/odb/sqlite/detail
+ COMPONENT sqlite
+ RENAME config.h
+ )
endif()
install(EXPORT odb_sqliteConfig NAMESPACE odb:: COMPONENT sqlite DESTINATION share/odb)
export(TARGETS libodb-sqlite NAMESPACE odb:: FILE odb_sqliteConfig.cmake)
\ No newline at end of file
diff --git a/ports/libodb-sqlite/CONTROL b/ports/libodb-sqlite/CONTROL
index 0c87a6fc8..e7afd76e0 100644
--- a/ports/libodb-sqlite/CONTROL
+++ b/ports/libodb-sqlite/CONTROL
@@ -1,5 +1,5 @@
Source: libodb-sqlite
-Version: 2.4.0-5
+Version: 2.4.0-6
Homepage: https://www.codesynthesis.com/products/odb/
Description: Sqlite support for the ODB ORM library
Build-Depends: libodb, sqlite3
diff --git a/ports/libodb/portfile.cmake b/ports/libodb/portfile.cmake
index 18dc60f73..d616f1b35 100644
--- a/ports/libodb/portfile.cmake
+++ b/ports/libodb/portfile.cmake
@@ -20,6 +20,7 @@ file(COPY
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
OPTIONS_DEBUG
-DLIBODB_INSTALL_HEADERS=OFF
)
diff --git a/ports/libopenmpt/CONTROL b/ports/libopenmpt/CONTROL
index 32fa988d1..be431f49e 100644
--- a/ports/libopenmpt/CONTROL
+++ b/ports/libopenmpt/CONTROL
@@ -3,3 +3,4 @@ Version: 2017-01-28-cf2390140
Homepage: https://github.com/OpenMPT/openmpt
Description: a library to render tracker music
Build-Depends: zlib, mpg123, libogg, libvorbis, portaudio, libflac
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/libopusenc/CONTROL b/ports/libopusenc/CONTROL
index 844b22d49..7e52b1353 100644
--- a/ports/libopusenc/CONTROL
+++ b/ports/libopusenc/CONTROL
@@ -3,3 +3,4 @@ Version: 0.2.1
Homepage: https://github.com/xiph/libopusenc
Description: Library for encoding .opus audio files and live streams.
Build-Depends: opus
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/libosip2/CONTROL b/ports/libosip2/CONTROL
index 693a9d73e..2fe1f8b16 100644
--- a/ports/libosip2/CONTROL
+++ b/ports/libosip2/CONTROL
@@ -1,4 +1,5 @@
Source: libosip2
Version: 5.1.0-3
Homepage: https://www.gnu.org/software/osip/
-Description: oSIP is an LGPL implementation of SIP. It's stable, portable, flexible and compliant! -may be more-! It is used mostly with eXosip2 stack (GPL) which provides simpler API for User-Agent implementation.
\ No newline at end of file
+Description: oSIP is an LGPL implementation of SIP. It's stable, portable, flexible and compliant! -may be more-! It is used mostly with eXosip2 stack (GPL) which provides simpler API for User-Agent implementation.
+Supports: !(windows|uwp)
\ No newline at end of file
diff --git a/ports/libp7-baical/CONTROL b/ports/libp7-baical/CONTROL
index 698334f58..80037450b 100644
--- a/ports/libp7-baical/CONTROL
+++ b/ports/libp7-baical/CONTROL
@@ -2,3 +2,4 @@ Source: libp7-baical
Version: 4.4-4
Homepage: https://baical.net/
Description: P7 is a library for high-speed sending telemetry & trace data from application
+Supports: !(arm|uwp)
\ No newline at end of file
diff --git a/ports/libp7client/CONTROL b/ports/libp7client/CONTROL
index 0069877d4..f7020b6f1 100644
--- a/ports/libp7client/CONTROL
+++ b/ports/libp7client/CONTROL
@@ -1,3 +1,4 @@
Source: libp7client
Version: 5.2-1
Description: Open source, cross-platform, fastest library for sending logs, telemetry & trace data from your application.
+Supports: x86|x64
\ No newline at end of file
diff --git a/ports/libpq/CONTROL b/ports/libpq/CONTROL
index 724d9acd8..359481816 100644
--- a/ports/libpq/CONTROL
+++ b/ports/libpq/CONTROL
@@ -1,6 +1,7 @@
Source: libpq
Version: 12.0
Build-Depends: libpq[bonjour] (osx)
+Supports: !uwp
Homepage: https://www.postgresql.org/
Description: The official database access API of postgresql
Default-Features: zlib, openssl
@@ -79,4 +80,4 @@ Build-Depends: libxslt
Description: Build with libxslt (--with-libxslt)
Feature: client
-Description: Build all client tools and libraries.
\ No newline at end of file
+Description: Build all client tools and libraries.
diff --git a/ports/libpqxx/CMakeLists.txt b/ports/libpqxx/CMakeLists.txt
index d8b9ce4f5..a3e6ae3f4 100644
--- a/ports/libpqxx/CMakeLists.txt
+++ b/ports/libpqxx/CMakeLists.txt
@@ -67,6 +67,7 @@ install(DIRECTORY include/ DESTINATION include
PATTERN "*.am" EXCLUDE
PATTERN "*.in" EXCLUDE
PATTERN "*.template" EXCLUDE
+ PATTERN "CMakeLists.txt" EXCLUDE
)
install(DIRECTORY ${CMAKE_BINARY_DIR}/pqxx/ DESTINATION include/pqxx
CONFIGURATIONS Release
diff --git a/ports/libpqxx/CONTROL b/ports/libpqxx/CONTROL
index 1742189b9..9acdf8146 100644
--- a/ports/libpqxx/CONTROL
+++ b/ports/libpqxx/CONTROL
@@ -1,5 +1,5 @@
Source: libpqxx
-Version: 6.4.5-1
+Version: 6.4.5-2
Homepage: https://github.com/jtv/libpqxx
Description: The official C++ client API for PostgreSQL
-Build-Depends: libpq
+Build-Depends: libpq[core]
diff --git a/ports/libpqxx/portfile.cmake b/ports/libpqxx/portfile.cmake
index e9fbdbc98..85e9cedb7 100644
--- a/ports/libpqxx/portfile.cmake
+++ b/ports/libpqxx/portfile.cmake
@@ -6,8 +6,8 @@ vcpkg_from_github(
REF a6b1d60e74c1427c8ac2324b85cd4a0dc2068332
SHA512 990083f738322283dc9c98b138a676e5ba04ab77794d5a51d672557e0562d2366b5085ad5571dd91af8ba4dea56baa94e8c1e4e6fe571341c95e92eb28d2b15a
HEAD_REF master
- PATCHES
- fix-deprecated-bug.patch
+ PATCHES
+ fix-deprecated-bug.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/libressl/CONTROL b/ports/libressl/CONTROL
index 2cb09fb6c..a5dfd10c7 100644
--- a/ports/libressl/CONTROL
+++ b/ports/libressl/CONTROL
@@ -1,6 +1,7 @@
Source: libressl
Version: 2.9.1-2
Description: LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with goals of modernizing the codebase, improving security, and applying best practice development processes.
+Supports: !(uwp|arm)
Feature: tools
Description: Build openssl and ocspcheck executables
diff --git a/ports/libsoundio/CONTROL b/ports/libsoundio/CONTROL
index 52ab4845f..d8abcf070 100644
--- a/ports/libsoundio/CONTROL
+++ b/ports/libsoundio/CONTROL
@@ -1,4 +1,5 @@
Source: libsoundio
-Version: 2.0.0-1
+Version: 2.0.0-3
Description: libsoundio is C library providing cross-platform audio input and output.
Homepage: http://libsound.io/
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/libsoundio/fix_cmakelists.patch b/ports/libsoundio/fix_cmakelists.patch
index 225c4cff3..ffe00adff 100644
--- a/ports/libsoundio/fix_cmakelists.patch
+++ b/ports/libsoundio/fix_cmakelists.patch
@@ -1,184 +1,49 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 6541f1b..058bf3b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,4 @@
- cmake_minimum_required(VERSION 2.8.5)
--project(libsoundio C)
--set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
-
- if(CMAKE_VERSION VERSION_LESS 3.0.0)
- set(CMAKE_INSTALL_LIBDIR "lib" CACHE PATH "library install dir (lib)")
-@@ -11,6 +9,11 @@ else()
- cmake_policy(SET CMP0046 NEW)
- include(GNUInstallDirs)
- endif()
-+cmake_policy(SET CMP0022 NEW)
-+
-+project(libsoundio C)
-+set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
-+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
-
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
-@@ -27,8 +30,7 @@ if(NOT SOUNDIO_STATIC_LIBNAME)
- set(SOUNDIO_STATIC_LIBNAME soundio)
- endif()
-
--option(BUILD_STATIC_LIBS "Build static libraries" ON)
--option(BUILD_DYNAMIC_LIBS "Build dynamic libraries" ON)
-+option(BUILD_SHARED_LIBS "Build dynamic libraries" ON)
- option(BUILD_EXAMPLE_PROGRAMS "Build example programs" ON)
- option(BUILD_TESTS "Build tests" ON)
- option(ENABLE_JACK "Enable JACK backend" ON)
-@@ -203,7 +205,7 @@ if(MSVC)
- set(EXAMPLE_CFLAGS "/W4")
- set(TEST_CFLAGS "${LIB_CFLAGS}")
- set(TEST_LDFLAGS " ")
-- set(LIBM " ")
-+ set(LIBM "")
- else()
- set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror -pedantic")
- set(LIB_CFLAGS "-std=c11 -fvisibility=hidden -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L -Wno-missing-braces")
-@@ -223,32 +225,33 @@ configure_file(
- ${DOXYGEN_CONF_FILE}
- )
-
--if(BUILD_DYNAMIC_LIBS)
-- add_library(libsoundio_shared SHARED ${LIBSOUNDIO_SOURCES})
-- set_target_properties(libsoundio_shared PROPERTIES
-+if(BUILD_SHARED_LIBS)
-+ add_library(libsoundio SHARED ${LIBSOUNDIO_SOURCES})
-+ set_target_properties(libsoundio PROPERTIES PUBLIC_HEADER "${LIBSOUNDIO_HEADERS}")
-+ set_target_properties(libsoundio PROPERTIES
- OUTPUT_NAME soundio
- SOVERSION ${LIBSOUNDIO_VERSION_MAJOR}
- VERSION ${LIBSOUNDIO_VERSION}
- COMPILE_FLAGS ${LIB_CFLAGS}
- LINKER_LANGUAGE C
- )
-- target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS})
-- install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
--endif()
--
--if(BUILD_STATIC_LIBS)
-- add_library(libsoundio_static STATIC ${LIBSOUNDIO_SOURCES})
-- set_target_properties(libsoundio_static PROPERTIES
-- OUTPUT_NAME ${SOUNDIO_STATIC_LIBNAME}
-+ target_link_libraries(libsoundio LINK_PUBLIC ${LIBSOUNDIO_LIBS})
-+ install(TARGETS libsoundio EXPORT libsoundio-export LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+else()
-+ add_library(libsoundio STATIC ${LIBSOUNDIO_SOURCES})
-+ set_target_properties(libsoundio PROPERTIES PUBLIC_HEADER "${LIBSOUNDIO_HEADERS}")
-+ set_target_properties(libsoundio PROPERTIES
-+ OUTPUT_NAME soundio
- COMPILE_FLAGS ${LIB_CFLAGS}
- LINKER_LANGUAGE C
- )
-- install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ target_link_libraries(libsoundio LINK_PUBLIC ${LIBSOUNDIO_LIBS})
-+ target_compile_definitions(libsoundio PUBLIC SOUNDIO_STATIC_LIBRARY)
-+ install(TARGETS libsoundio EXPORT libsoundio-export LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
- endif()
-
--install(FILES
-- ${LIBSOUNDIO_HEADERS}
-- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundio")
-+add_library(libsoundio::libsoundio ALIAS libsoundio)
-+install(EXPORT libsoundio-export FILE libsoundio-config.cmake DESTINATION share/libsoundio/ NAMESPACE ${PROJECT_NAME}:: EXPORT_LINK_INTERFACE_LIBRARIES)
-
- # Example Programs
-
-@@ -257,44 +260,28 @@ if(BUILD_EXAMPLE_PROGRAMS)
- set_target_properties(sio_sine PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(sio_sine libsoundio_shared ${LIBM})
-- else()
-- target_link_libraries(sio_sine libsoundio_static ${LIBSOUNDIO_LIBS} ${LIBM})
-- endif()
-+ target_link_libraries(sio_sine libsoundio::libsoundio ${LIBM})
- install(TARGETS sio_sine DESTINATION ${CMAKE_INSTALL_BINDIR})
-
- add_executable(sio_list_devices example/sio_list_devices.c)
- set_target_properties(sio_list_devices PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(sio_list_devices libsoundio_shared)
-- else()
-- target_link_libraries(sio_list_devices libsoundio_static ${LIBSOUNDIO_LIBS})
-- endif()
-+ target_link_libraries(sio_list_devices libsoundio::libsoundio)
- install(TARGETS sio_list_devices DESTINATION ${CMAKE_INSTALL_BINDIR})
-
- add_executable(sio_microphone example/sio_microphone.c)
- set_target_properties(sio_microphone PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(sio_microphone libsoundio_shared)
-- else()
-- target_link_libraries(sio_microphone libsoundio_static ${LIBSOUNDIO_LIBS})
-- endif()
-+ target_link_libraries(sio_microphone libsoundio::libsoundio)
- install(TARGETS sio_microphone DESTINATION ${CMAKE_INSTALL_BINDIR})
-
- add_executable(sio_record example/sio_record.c)
- set_target_properties(sio_record PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(sio_record libsoundio_shared)
-- else()
-- target_link_libraries(sio_record libsoundio_static ${LIBSOUNDIO_LIBS})
-- endif()
-+ target_link_libraries(sio_record libsoundio::libsoundio)
- install(TARGETS sio_record DESTINATION ${CMAKE_INSTALL_BINDIR})
- endif()
-
-@@ -308,7 +295,7 @@ if(BUILD_TESTS)
- )
-
- add_executable(latency "${libsoundio_SOURCE_DIR}/test/latency.c" ${LIBSOUNDIO_SOURCES})
-- target_link_libraries(latency LINK_PUBLIC ${LIBSOUNDIO_LIBS} ${LIBM})
-+ target_link_libraries(latency LINK_PUBLIC libsoundio::libsoundio ${LIBM})
- set_target_properties(latency PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${LIB_CFLAGS}
-@@ -318,31 +305,19 @@ if(BUILD_TESTS)
- set_target_properties(underflow PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(underflow libsoundio_shared ${LIBM})
-- else()
-- target_link_libraries(underflow libsoundio_static ${LIBSOUNDIO_LIBS} ${LIBM})
-- endif()
-+ target_link_libraries(underflow libsoundio::libsoundio ${LIBM})
-
- add_executable(backend_disconnect_recover test/backend_disconnect_recover.c)
- set_target_properties(backend_disconnect_recover PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(backend_disconnect_recover libsoundio_shared)
-- else()
-- target_link_libraries(backend_disconnect_recover libsoundio_static ${LIBSOUNDIO_LIBS})
-- endif()
-+ target_link_libraries(backend_disconnect_recover libsoundio::libsoundio)
-
- add_executable(overflow test/overflow.c)
- set_target_properties(overflow PROPERTIES
- LINKER_LANGUAGE C
- COMPILE_FLAGS ${EXAMPLE_CFLAGS})
-- if(BUILD_DYNAMIC_LIBS)
-- target_link_libraries(overflow libsoundio_shared)
-- else()
-- target_link_libraries(overflow libsoundio_static ${LIBSOUNDIO_LIBS})
-- endif()
-+ target_link_libraries(overflow libsoundio::libsoundio)
-
-
-
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6541f1b..e81bdce 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,5 @@
+-cmake_minimum_required(VERSION 2.8.5)
++cmake_minimum_required(VERSION 3.14)
++cmake_policy(SET CMP0022 NEW)
+ project(libsoundio C)
+ set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
+
+@@ -233,7 +234,8 @@ if(BUILD_DYNAMIC_LIBS)
+ LINKER_LANGUAGE C
+ )
+ target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS})
+- install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ target_include_directories(libsoundio_shared PUBLIC $)
++ install(TARGETS libsoundio_shared EXPORT libsoundio-export)
+ endif()
+
+ if(BUILD_STATIC_LIBS)
+@@ -243,9 +245,26 @@ if(BUILD_STATIC_LIBS)
+ COMPILE_FLAGS ${LIB_CFLAGS}
+ LINKER_LANGUAGE C
+ )
+- install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
++ target_link_libraries(libsoundio_static PUBLIC ${LIBSOUNDIO_LIBS})
++ target_include_directories(libsoundio_static PUBLIC $)
++ install(TARGETS libsoundio_static EXPORT libsoundio-export)
+ endif()
+
++add_library(libsoundio INTERFACE)
++if(BUILD_DYNAMIC_LIBS)
++ target_link_libraries(libsoundio INTERFACE libsoundio_shared)
++else()
++ target_link_libraries(libsoundio INTERFACE libsoundio_static)
++endif()
++install(TARGETS libsoundio EXPORT libsoundio-export)
++install(
++ EXPORT libsoundio-export
++ FILE libsoundio-config.cmake
++ DESTINATION share/libsoundio/
++ NAMESPACE ${PROJECT_NAME}::
++ EXPORT_LINK_INTERFACE_LIBRARIES
++)
++
+ install(FILES
+ ${LIBSOUNDIO_HEADERS}
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundio")
diff --git a/ports/libsoundio/portfile.cmake b/ports/libsoundio/portfile.cmake
index 0e1b7f561..e28aa40c6 100644
--- a/ports/libsoundio/portfile.cmake
+++ b/ports/libsoundio/portfile.cmake
@@ -1,8 +1,5 @@
-include(vcpkg_common_functions)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- message(FATAL_ERROR "WindowsStore not supported")
-endif()
+vcpkg_fail_port_install(ON_TARGET "UWP")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
@@ -14,15 +11,22 @@ vcpkg_from_github(
fix_cmakelists.patch
)
-string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBS)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
+ -DBUILD_DYNAMIC_LIBS=${BUILD_DYNAMIC_LIBS}
+ -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-DBUILD_EXAMPLE_PROGRAMS=OFF
-DBUILD_TESTS=OFF
+ -DENABLE_JACK=OFF
+ -DENABLE_PULSEAUDIO=OFF
+ -DENABLE_ALSA=OFF
+ -DENABLE_COREAUDIO=${VCPKG_TARGET_IS_OSX}
+ -DENABLE_WASAPI=${VCPKG_TARGET_IS_WINDOWS}
)
vcpkg_install_cmake()
diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL
index c12fb8f8f..443940653 100644
--- a/ports/libssh/CONTROL
+++ b/ports/libssh/CONTROL
@@ -3,6 +3,7 @@ Version: 0.9.0
Homepage: https://www.libssh.org/
Description: libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side
Build-Depends: openssl
+Supports: !uwp
Feature: zlib
Description: libssh with zlib
diff --git a/ports/libusb-win32/CONTROL b/ports/libusb-win32/CONTROL
index 6904f7066..bea5b9092 100644
--- a/ports/libusb-win32/CONTROL
+++ b/ports/libusb-win32/CONTROL
@@ -2,3 +2,4 @@ Source: libusb-win32
Version: 1.2.6.0-3
Homepage: https://sourceforge.net/projects/libusb-win32
Description: Allows user space applications to access many USB device on Windows.
+Supports: windows
\ No newline at end of file
diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL
index e5dc0c0b4..2d46a8307 100644
--- a/ports/libuuid/CONTROL
+++ b/ports/libuuid/CONTROL
@@ -1,3 +1,4 @@
Source: libuuid
Version: 1.0.3-3
Description: Universally unique id library
+Supports: linux|osx
\ No newline at end of file
diff --git a/ports/llgl/CONTROL b/ports/llgl/CONTROL
index 476ccd8c2..fcba2d2d4 100644
--- a/ports/llgl/CONTROL
+++ b/ports/llgl/CONTROL
@@ -2,6 +2,7 @@ Source: llgl
Version: 2019-08-15
Homepage: https://github.com/LukasBanana/LLGL
Description: Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal.
+Supports: !uwp
Feature: opengl
Description: Support for opengl
diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL
index e1569bdee..2eb184a84 100644
--- a/ports/llvm/CONTROL
+++ b/ports/llvm/CONTROL
@@ -3,6 +3,7 @@ Version: 8.0.0-3
Homepage: https://llvm.org/
Description: The LLVM Compiler Infrastructure
Build-Depends: atlmfc (windows)
+Supports: !uwp
Default-Features: tools, utils
Feature: tools
@@ -15,4 +16,4 @@ Feature: example
Description: Generate build targets for the LLVM examples
Feature: test
-Description: Generate build targets for the LLVM unit tests.
\ No newline at end of file
+Description: Generate build targets for the LLVM unit tests.
diff --git a/ports/log4cpp/CONTROL b/ports/log4cpp/CONTROL
index 11c37843b..ec84f4065 100644
--- a/ports/log4cpp/CONTROL
+++ b/ports/log4cpp/CONTROL
@@ -2,4 +2,4 @@ Source: log4cpp
Version: 2.9.1-2
Homepage: https://github.com/orocos-toolchain/log4cpp
Description: Log4cpp is library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. It is modeled after the Log4j Java library, staying as close to their API as is reasonable.
-
+Supports: !uwp
diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt
new file mode 100644
index 000000000..3688e1121
--- /dev/null
+++ b/ports/loguru/CMakeLists.txt
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 3.12)
+
+project(loguru CXX)
+set(CMAKE_CXX_STANDARD 11)
+
+option(INSTALL_HEADERS "Install header files" ON)
+
+set(loguru_headers
+ loguru.hpp
+)
+set(loguru_sources
+ loguru.cpp
+)
+
+add_library(loguru ${loguru_sources})
+target_include_directories(loguru PUBLIC
+ $
+ $)
+
+if(UNIX)
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+ target_link_libraries(loguru PUBLIC Threads::Threads ${CMAKE_DL_LIBS})
+endif()
+
+set(LOGURU_INCLUDE_INSTALL_DIR include/loguru CACHE PATH "Install directory for headers")
+if(INSTALL_HEADERS)
+ install(FILES ${loguru_headers} DESTINATION ${LOGURU_INCLUDE_INSTALL_DIR})
+endif()
+
+set(INCLUDE_INSTALL_DIR ${LOGURU_INCLUDE_INSTALL_DIR})
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(loguruConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/loguruConfig.cmake
+ INSTALL_DESTINATION share/loguru
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+ PATH_VARS INCLUDE_INSTALL_DIR)
+
+install(TARGETS loguru
+ EXPORT loguruTargets
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/loguruConfig.cmake DESTINATION share/loguru)
+install(EXPORT loguruTargets DESTINATION share/loguru)
diff --git a/ports/loguru/CONTROL b/ports/loguru/CONTROL
index baa9503b0..056f08529 100644
--- a/ports/loguru/CONTROL
+++ b/ports/loguru/CONTROL
@@ -1,4 +1,4 @@
Source: loguru
-Version: v2.0.0
+Version: v2.1.0
+Homepage: https://github.com/emilk/loguru
Description: A lightweight and flexible C++ logging library
-Build-Depends:
\ No newline at end of file
diff --git a/ports/loguru/loguruConfig.cmake.in b/ports/loguru/loguruConfig.cmake.in
new file mode 100644
index 000000000..b75b189e0
--- /dev/null
+++ b/ports/loguru/loguruConfig.cmake.in
@@ -0,0 +1,9 @@
+@PACKAGE_INIT@
+
+if(UNIX)
+ include(CMakeFindDependencyMacro)
+ find_dependency(Threads)
+endif()
+
+set_and_check(loguru_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+include("${CMAKE_CURRENT_LIST_DIR}/loguruTargets.cmake")
diff --git a/ports/loguru/portfile.cmake b/ports/loguru/portfile.cmake
index 80efb0eea..3019c85a3 100644
--- a/ports/loguru/portfile.cmake
+++ b/ports/loguru/portfile.cmake
@@ -1,12 +1,29 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO emilk/loguru
- REF v2.0.0
- SHA512 d6358f843689d10a44dc7bf590305cbfb89727e26d971ca4fe439e5468cdb7bcee2aa858368250e9654fb5ecebf63bca9742451881dae78068fecb18f279d988
+ REF 9c2fea0d4530657f23259be4132f8101c98b579e #v2.1.0
+ SHA512 49eebf8648f9d29273af76dca0a4e49155daa3664e98979df005e64eb0fa9f4eeb4228245327d469772c51076571acbe39a644eba531444d8676d9709a7e3914
HEAD_REF master
)
-file(INSTALL ${SOURCE_PATH}/loguru.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/loguru)
-file(COPY ${CURRENT_PORT_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/loguru)
\ No newline at end of file
+if(VCPKG_TARGET_IS_WINDOWS)
+ file(INSTALL ${SOURCE_PATH}/loguru.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/loguru)
+endif()
+
+if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX)
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt ${SOURCE_PATH}/CMakeLists.txt COPYONLY)
+ configure_file(${CMAKE_CURRENT_LIST_DIR}/loguruConfig.cmake.in ${SOURCE_PATH}/loguruConfig.cmake.in COPYONLY)
+
+ vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DINSTALL_HEADERS=OFF
+ )
+
+ vcpkg_install_cmake()
+ vcpkg_fixup_cmake_targets()
+ vcpkg_copy_pdbs()
+endif()
+
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/luajit/CONTROL b/ports/luajit/CONTROL
index 03b778e9a..f37d4dcbe 100644
--- a/ports/luajit/CONTROL
+++ b/ports/luajit/CONTROL
@@ -2,3 +2,4 @@ Source: luajit
Version: 2.0.5-3
Homepage: https://github.com/LuaJIT/LuaJIT
Description: LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/luajit/portfile.cmake b/ports/luajit/portfile.cmake
index a37b66d67..09b634c16 100644
--- a/ports/luajit/portfile.cmake
+++ b/ports/luajit/portfile.cmake
@@ -34,6 +34,7 @@ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug)
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(COPY ${CURRENT_PACKAGES_DIR}/debug/bin/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools)
endif()
vcpkg_copy_pdbs()
endif()
@@ -56,6 +57,7 @@ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release)
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lua51.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools)
endif()
vcpkg_copy_pdbs()
endif()
diff --git a/ports/lzfse/CONTROL b/ports/lzfse/CONTROL
index f79063ad9..cc4669974 100644
--- a/ports/lzfse/CONTROL
+++ b/ports/lzfse/CONTROL
@@ -2,3 +2,4 @@ Source: lzfse
Version: 1.0-2
Homepage: https://github.com/lzfse/lzfse
Description: Lempel-Ziv style data compressor using Finite State Entropy coding.
+Supports: !arm
\ No newline at end of file
diff --git a/ports/marl/CONTROL b/ports/marl/CONTROL
index f3a24fdcd..16f464135 100644
--- a/ports/marl/CONTROL
+++ b/ports/marl/CONTROL
@@ -2,3 +2,4 @@ Source: marl
Version: 2019-09-13
Description: A hybrid thread/fiber task scheduler written in C++ 11
Homepage: https://github.com/google/marl
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/matroska/CONTROL b/ports/matroska/CONTROL
index 29cef7e80..1a5235db7 100644
--- a/ports/matroska/CONTROL
+++ b/ports/matroska/CONTROL
@@ -3,3 +3,4 @@ Version: 1.5.2
Homepage: https://github.com/Matroska-Org/libmatroska
Description: a C++ libary to parse Matroska files (.mkv and .mka)
Build-Depends: ebml
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/mcpp/CONTROL b/ports/mcpp/CONTROL
new file mode 100644
index 000000000..cc756ae9a
--- /dev/null
+++ b/ports/mcpp/CONTROL
@@ -0,0 +1,4 @@
+Source: mcpp
+Version: 2.7.2.14-1
+Homepage: https://github.com/zeroc-ice/mcpp
+Description: Fork of mcpp, a C/C++ preprocessor
diff --git a/ports/mcpp/portfile.cmake b/ports/mcpp/portfile.cmake
new file mode 100644
index 000000000..11e268f99
--- /dev/null
+++ b/ports/mcpp/portfile.cmake
@@ -0,0 +1,26 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO zeroc-ice/mcpp
+ REF e6abf9a561294b667bb931b80cf749c9be2d1a2f
+ SHA512 131b68401683bcfb947ac4969a59aa4c1683412c30f76c50e9e9c5c952a881b9950127db2ef22c96968d8c90d26bcdb5a90fb1b77d4dda7dee67bfe4a2676b35
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(
+ INSTALL
+ ${SOURCE_PATH}/mcpp_lib.h
+ ${SOURCE_PATH}/mcpp_out.h
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/include
+)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/mdnsresponder/CONTROL b/ports/mdnsresponder/CONTROL
index 66c039dbc..9f97716e8 100644
--- a/ports/mdnsresponder/CONTROL
+++ b/ports/mdnsresponder/CONTROL
@@ -2,3 +2,4 @@ Source: mdnsresponder
Version: 765.30.11-2
Description: The mDNSResponder project is a component of Bonjour, Apple's ease-of-use IP networking initiative.
Homepage: https://developer.apple.com/bonjour/
+Supports: !arm
\ No newline at end of file
diff --git a/ports/mecab/CONTROL b/ports/mecab/CONTROL
index b5b9c8f10..9bf6cec34 100644
--- a/ports/mecab/CONTROL
+++ b/ports/mecab/CONTROL
@@ -1,3 +1,4 @@
Source: mecab
Version: 1.0
Description: A morphological analysis engine based on CRF
+Supports: !(uwp|arm|arm64)
\ No newline at end of file
diff --git a/ports/memorymodule/CONTROL b/ports/memorymodule/CONTROL
new file mode 100644
index 000000000..ffc05ce9f
--- /dev/null
+++ b/ports/memorymodule/CONTROL
@@ -0,0 +1,8 @@
+Source: memorymodule
+Version: 2019-12-31
+Description: Library to load a DLL from memory
+Homepage: https://github.com/fancycode/MemoryModule
+Default-Features: unicode
+
+Feature: unicode
+Description: Compile with UNICODE support
diff --git a/ports/memorymodule/portfile.cmake b/ports/memorymodule/portfile.cmake
new file mode 100644
index 000000000..7c772711d
--- /dev/null
+++ b/ports/memorymodule/portfile.cmake
@@ -0,0 +1,45 @@
+vcpkg_fail_port_install(ON_TARGET "Linux" "OSX" "UWP")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO fancycode/MemoryModule
+ REF 5f83e41c3a3e7c6e8284a5c1afa5a38790809461
+ SHA512 6d42bd80dfeaf7bc662adafe7d6a7d7301eff5ea53bb59fce7e9c1a6ee22d31d2ab5696afc0a92c1501aa4161a60366418bfc3bed7ed2dcb6cae24243f4fa6d4
+ HEAD_REF master
+)
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ unicode UNICODE
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DTESTSUITE=OFF
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_build_cmake(TARGET MemoryModule)
+
+file(INSTALL ${SOURCE_PATH}/MemoryModule.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/MemoryModule.lib)
+ file(INSTALL
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/MemoryModule.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ )
+endif()
+
+if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/MemoryModule.lib)
+ file(INSTALL
+ ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/MemoryModule.lib
+ DESTINATION ${CURRENT_PACKAGES_DIR}/lib
+ )
+endif()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/minhook/CONTROL b/ports/minhook/CONTROL
index 95209891b..0daab0e4c 100644
--- a/ports/minhook/CONTROL
+++ b/ports/minhook/CONTROL
@@ -1,3 +1,4 @@
Source: minhook
Version: 1.3.3
-Description: The Minimalistic x86/x64 API Hooking Library for Windows.
\ No newline at end of file
+Description: The Minimalistic x86/x64 API Hooking Library for Windows.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/minifb/CONTROL b/ports/minifb/CONTROL
index cff3a97c0..5a86f9bbe 100644
--- a/ports/minifb/CONTROL
+++ b/ports/minifb/CONTROL
@@ -2,3 +2,4 @@ Source: minifb
Version: 2019-08-20-1
Homepage: https://github.com/emoon/minifb
Description: MiniFB (Mini FrameBuffer) is a small cross platform library that makes it easy to render (32-bit) pixels in a window.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/minizip/CONTROL b/ports/minizip/CONTROL
index 22ea0c9f3..415a3a82c 100644
--- a/ports/minizip/CONTROL
+++ b/ports/minizip/CONTROL
@@ -3,6 +3,7 @@ Version: 1.2.11-6
Build-Depends: zlib
Homepage: https://github.com/madler/zlib
Description: Zip compression library
+Supports: !uwp
Feature: bzip2
Build-Depends: bzip2
diff --git a/ports/mongoose/CONTROL b/ports/mongoose/CONTROL
index c307982cf..a6c7f8663 100644
--- a/ports/mongoose/CONTROL
+++ b/ports/mongoose/CONTROL
@@ -2,7 +2,8 @@ Source: mongoose
Version: 6.15-2
Description: Embedded web server / embedded networking library
Homepage: https://cesanta.com/
+Supports: !uwp
Feature: ssl
Build-Depends: openssl
-Description: Build with openssl
\ No newline at end of file
+Description: Build with openssl
diff --git a/ports/monkeys-audio/CONTROL b/ports/monkeys-audio/CONTROL
index d265f22d9..abe072f25 100644
--- a/ports/monkeys-audio/CONTROL
+++ b/ports/monkeys-audio/CONTROL
@@ -1,8 +1,9 @@
Source: monkeys-audio
-Version: 5.14
+Version: 5.14-1
Homepage: https://monkeysaudio.com
Description: Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods.
Audio files compressed with it ends with .ape extension.
+Supports: !uwp
Feature: tools
-Description: Build monkeys-audio tools
\ No newline at end of file
+Description: Build monkeys-audio tools
diff --git a/ports/mpir/CONTROL b/ports/mpir/CONTROL
index 12f9d38ea..79238cbb5 100644
--- a/ports/mpir/CONTROL
+++ b/ports/mpir/CONTROL
@@ -2,3 +2,4 @@ Source: mpir
Version: 3.0.0-7
Homepage: https://github.com/wbhart/mpir
Description: Multiple Precision Integers and Rationals.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/mqtt-cpp/CONTROL b/ports/mqtt-cpp/CONTROL
index 30eefb74a..4ea550b99 100644
--- a/ports/mqtt-cpp/CONTROL
+++ b/ports/mqtt-cpp/CONTROL
@@ -1,5 +1,5 @@
Source: mqtt-cpp
-Version: 7.0.1-1
+Version: 7.0.1-2
Description: Header-only MQTT client/server for C++14 based on Boost.Asio.
Homepage: https://github.com/redboltz/mqtt_cpp
Build-Depends: boost-asio, boost-any, boost-multi-index, boost-type-erasure
diff --git a/ports/mqtt-cpp/portfile.cmake b/ports/mqtt-cpp/portfile.cmake
index 13e5e2077..d1b930826 100644
--- a/ports/mqtt-cpp/portfile.cmake
+++ b/ports/mqtt-cpp/portfile.cmake
@@ -1,5 +1,3 @@
-# header-only library
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO redboltz/mqtt_cpp
@@ -14,7 +12,10 @@ vcpkg_configure_cmake(
OPTIONS
-DMQTT_BUILD_EXAMPLES=OFF
-DMQTT_BUILD_TESTS=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
)
-file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
file(INSTALL ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/ms-angle/CONTROL b/ports/ms-angle/CONTROL
index 4fadc5994..4ba095050 100644
--- a/ports/ms-angle/CONTROL
+++ b/ports/ms-angle/CONTROL
@@ -2,3 +2,4 @@ Source: ms-angle
Version: 2018-04-18-2
Description: The UWP version of a conformant OpenGL ES implementation for Windows, Mac and Linux.
The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support.
+Supports: windows|uwp
\ No newline at end of file
diff --git a/ports/ms-gsl/CONTROL b/ports/ms-gsl/CONTROL
index 237bc6859..23baa58ce 100644
--- a/ports/ms-gsl/CONTROL
+++ b/ports/ms-gsl/CONTROL
@@ -1,4 +1,4 @@
Source: ms-gsl
-Version: 2019-07-11
+Version: 2.1.0
Homepage: https://github.com/Microsoft/GSL
-Description: Microsoft implementation of the Guidelines Support Library
\ No newline at end of file
+Description: Microsoft implementation of the Guidelines Support Library
diff --git a/ports/ms-gsl/portfile.cmake b/ports/ms-gsl/portfile.cmake
index bcd2a80db..fbcf66fb3 100644
--- a/ports/ms-gsl/portfile.cmake
+++ b/ports/ms-gsl/portfile.cmake
@@ -1,11 +1,9 @@
#header-only library
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/GSL
- REF 1212beae777dba02c230ece8c0c0ec12790047ea
- SHA512 754d0adf32cea1da759be9adb8a64c301ae1cb8556853411bcea4c400079e8e310f1fb8d03f1f26f81553eab24b75fea24a67b9b51d8d92bb4f266e155938230
+ REF 7e99e76c9761d0d0b0848b91f8648830670ee872
+ SHA512 9a5ea7d22497a56918a83c248d9f707e98544dce90835cf9bf877213df8751cdb350b6343d0205e7b17fc27e234a17906876aff99c177d5f2b96df96d15a215c
HEAD_REF master
)
diff --git a/ports/msmpi/CONTROL b/ports/msmpi/CONTROL
index d21b80c37..baa44b8fe 100644
--- a/ports/msmpi/CONTROL
+++ b/ports/msmpi/CONTROL
@@ -1,3 +1,4 @@
Source: msmpi
Version: 10.0-2
Description: Microsoft MPI
+Supports: windows
\ No newline at end of file
diff --git a/ports/nano-signal-slot/CONTROL b/ports/nano-signal-slot/CONTROL
index 9594e575b..99cee9fec 100644
--- a/ports/nano-signal-slot/CONTROL
+++ b/ports/nano-signal-slot/CONTROL
@@ -2,3 +2,4 @@ Source: nano-signal-slot
Version: 2.0.1
Homepage: https://github.com/NoAvailableAlias/nano-signal-slot
Description: Pure C++17 Signals and Slots
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/nativefiledialog/CONTROL b/ports/nativefiledialog/CONTROL
index 60aca3c45..afe283577 100644
--- a/ports/nativefiledialog/CONTROL
+++ b/ports/nativefiledialog/CONTROL
@@ -2,6 +2,7 @@ Source: nativefiledialog
Version: 2019-08-28
Description: A tiny, neat C library that portably invokes native file open and save dialogs
Homepage: https://github.com/mlabbe/nativefiledialog
+Supports: !uwp
Feature: zenity
Description: Using Zenity backend on Linux
diff --git a/ports/netcdf-c/CONTROL b/ports/netcdf-c/CONTROL
index 1d5b7cb90..d277cd975 100644
--- a/ports/netcdf-c/CONTROL
+++ b/ports/netcdf-c/CONTROL
@@ -1,5 +1,5 @@
Source: netcdf-c
-Version: 4.7.3
+Version: 4.7.3-1
Build-Depends: hdf5, curl
Homepage: https://github.com/Unidata/netcdf-c
Description: a set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
diff --git a/ports/netcdf-c/mpi.patch b/ports/netcdf-c/mpi.patch
new file mode 100644
index 000000000..64027e65c
--- /dev/null
+++ b/ports/netcdf-c/mpi.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 101f97719..b070121b8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1004,6 +1004,8 @@ IF(ENABLE_PARALLEL4 AND ENABLE_NETCDF_4)
+ IF(MSVC)
+ FIND_PACKAGE(MPI REQUIRED)
+ INCLUDE_DIRECTORIES(${MPI_C_INCLUDE_PATH})
++ list(APPEND CMAKE_REQUIRED_LIBRARIES MPI::MPI_C)
++ list(APPEND EXTRA_DEPS MPI::MPI_C)
+ ENDIF()
+ SET(HDF5_PARALLEL ON CACHE BOOL "")
+ SET(USE_PARALLEL ON CACHE BOOL "")
+
diff --git a/ports/netcdf-c/portfile.cmake b/ports/netcdf-c/portfile.cmake
index 61dd1d885..d1af9d9f1 100644
--- a/ports/netcdf-c/portfile.cmake
+++ b/ports/netcdf-c/portfile.cmake
@@ -8,6 +8,7 @@ vcpkg_from_github(
no-install-deps.patch
config-pkg-location.patch
use_targets.patch
+ mpi.patch
)
#Remove outdated find modules
diff --git a/ports/networkdirect-sdk/CONTROL b/ports/networkdirect-sdk/CONTROL
index 3cc939c8e..158183800 100644
--- a/ports/networkdirect-sdk/CONTROL
+++ b/ports/networkdirect-sdk/CONTROL
@@ -1,4 +1,5 @@
Source: networkdirect-sdk
Version: 2.0.1
Description: The Network Direct architecture allows hardware vendors to expose the advanced capabilities of their networking devices.
-Homepage: https://www.nuget.org/packages/NetworkDirect
\ No newline at end of file
+Homepage: https://www.nuget.org/packages/NetworkDirect
+Supports: windows&(x64|x86)
\ No newline at end of file
diff --git a/ports/openal-soft/CONTROL b/ports/openal-soft/CONTROL
index b52d568cd..0833c52c0 100644
--- a/ports/openal-soft/CONTROL
+++ b/ports/openal-soft/CONTROL
@@ -2,3 +2,4 @@ Source: openal-soft
Version: 1.20.0
Homepage: https://github.com/kcat/openal-soft
Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/openexr/CONTROL b/ports/openexr/CONTROL
index 7d8759237..ddf7b0fbd 100644
--- a/ports/openexr/CONTROL
+++ b/ports/openexr/CONTROL
@@ -3,3 +3,4 @@ Version: 2.3.0-5
Homepage: https://www.openexr.com/
Description: OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications
Build-Depends: zlib
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/openmpi/CONTROL b/ports/openmpi/CONTROL
index 6ea5a17c1..86af5ffd5 100644
--- a/ports/openmpi/CONTROL
+++ b/ports/openmpi/CONTROL
@@ -2,3 +2,4 @@ Source: openmpi
Version: 4.0.1
Homepage: https://www.open-mpi.org/
Description: The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.
+Supports: !(windows|uwp)
\ No newline at end of file
diff --git a/ports/openni2/CONTROL b/ports/openni2/CONTROL
index a8fa4a2ac..c1b869a57 100644
--- a/ports/openni2/CONTROL
+++ b/ports/openni2/CONTROL
@@ -3,3 +3,4 @@ Version: 2.2.0.33-11
Build-Depends: kinectsdk1
Homepage: https://github.com/OpenNI/OpenNI2
Description: OpenNI is open source library for access to Natural Interaction (NI) devices such as RGB-D camera.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/openssl-unix/CONTROL b/ports/openssl-unix/CONTROL
index b2a55c187..c56c95dad 100644
--- a/ports/openssl-unix/CONTROL
+++ b/ports/openssl-unix/CONTROL
@@ -1,3 +1,4 @@
Source: openssl-unix
Version: 1.1.1d-1
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Supports: !(windows|uwp)
\ No newline at end of file
diff --git a/ports/openssl-uwp/CONTROL b/ports/openssl-uwp/CONTROL
index a4a8e681a..7e7650fc2 100644
--- a/ports/openssl-uwp/CONTROL
+++ b/ports/openssl-uwp/CONTROL
@@ -1,3 +1,4 @@
Source: openssl-uwp
Version: 1.1.1d-1
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Supports: uwp
\ No newline at end of file
diff --git a/ports/openssl-windows/CONTROL b/ports/openssl-windows/CONTROL
index 9d80476f8..561977fe0 100644
--- a/ports/openssl-windows/CONTROL
+++ b/ports/openssl-windows/CONTROL
@@ -1,3 +1,4 @@
Source: openssl-windows
Version: 1.1.1d-1
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
+Supports: windows
\ No newline at end of file
diff --git a/ports/opentracing/CONTROL b/ports/opentracing/CONTROL
index 62f6dd303..8a5e0625f 100644
--- a/ports/opentracing/CONTROL
+++ b/ports/opentracing/CONTROL
@@ -2,3 +2,4 @@ Source: opentracing
Version: 1.5.1-1
Description: C++ implementation of the OpenTracing API
Homepage: https://opentracing.io
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/openxr-loader/CONTROL b/ports/openxr-loader/CONTROL
index 0088df713..632fadab7 100644
--- a/ports/openxr-loader/CONTROL
+++ b/ports/openxr-loader/CONTROL
@@ -1,6 +1,7 @@
Source: openxr-loader
Version: 1.0.3.0
Description: Khronos API for abstracting VR/MR/AR hardware
+Supports: !(arm|uwp)
Feature: vulkan
Description: Vulkan functionality for OpenXR
diff --git a/ports/opusfile/CONTROL b/ports/opusfile/CONTROL
index 0ba3167a6..80ca95f96 100644
--- a/ports/opusfile/CONTROL
+++ b/ports/opusfile/CONTROL
@@ -3,6 +3,7 @@ Version: 0.11-3
Homepage: https://github.com/xiph/opusfile
Description: Stand-alone decoder library for .opus streams
Build-Depends: libogg, opus
+Supports: !uwp
Feature: opusurl
Description: Support decoding of http(s) streams
diff --git a/ports/osg/CONTROL b/ports/osg/CONTROL
index f677e0284..8df250d7c 100644
--- a/ports/osg/CONTROL
+++ b/ports/osg/CONTROL
@@ -1,8 +1,8 @@
Source: osg
-Version: 3.6.4
+Version: 3.6.4-1
Homepage: https://github.com/openscenegraph/OpenSceneGraph
Description: The OpenSceneGraph is an open source high performance 3D graphics toolkit.
-Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff, fontconfig
+Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff, fontconfig, sdl2, boost-asio (!windows), libxml2 (windows), giflib (windows), freeglut (windows)
Feature: collada
Description: Support for Collada (.dae) files
diff --git a/ports/osg/portfile.cmake b/ports/osg/portfile.cmake
index 8c6b5f299..03520aa9b 100644
--- a/ports/osg/portfile.cmake
+++ b/ports/osg/portfile.cmake
@@ -18,6 +18,18 @@ else()
set(OSG_DYNAMIC ON)
endif()
file(REMOVE ${SOURCE_PATH}/CMakeModules/FindSDL2.cmake)
+
+set(OPTIONS)
+if(NOT "collada" IN_LIST FEATURES)
+ list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_COLLADA=ON)
+endif()
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_FFmpeg=ON)
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_DCMTK=ON)
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_GStreamer=ON)
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_GLIB=ON)
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_SDL=ON)
+list(APPEND OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_LIBLAS=ON)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
diff --git a/ports/pango/CMakeLists.txt b/ports/pango/CMakeLists.txt
index a505a5b65..5fdd730ba 100644
--- a/ports/pango/CMakeLists.txt
+++ b/ports/pango/CMakeLists.txt
@@ -59,6 +59,11 @@ find_library(FREETYPE_LIBRARY freetype${FT_SUFFIX})
find_path(HARFBUZZ_INCLUDE_DIR harfbuzz/hb.h)
find_library(HARFBUZZ_LIBRARY harfbuzz)
+if (APPLE)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+ link_libraries(${COREFOUNDATION_LIBRARY})
+endif()
+
set(FONT_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} ${FONTCONFIG_INCLUDE_DIR} ${HARFBUZZ_INCLUDE_DIR}/harfbuzz)
set(FONT_LIBRARIES ${FREETYPE_LIBRARY} ${FONTCONFIG_LIBRARY} ${HARFBUZZ_LIBRARY})
@@ -151,7 +156,11 @@ if(WIN32)
endif()
pango_add_module(pangocairo ${PANGO_CAIRO_SOURCES})
-target_link_libraries(pangocairo ${CAIRO_LIBRARIES} pango pangowin32 pangoft2 ${FONT_LIBRARIES})
+list(APPEND PANGO_CAIRO_LIBRARIES ${CAIRO_LIBRARIES} pango pangoft2 ${FONT_LIBRARIES})
+if (WIN32)
+ list(APPEND PANGO_CAIRO_LIBRARIES pangowin32)
+endif()
+target_link_libraries(pangocairo ${PANGO_CAIRO_LIBRARIES})
target_include_directories(pangocairo PRIVATE ${CAIRO_INCLUDE_DIR} ${FONT_INCLUDE_DIRS})
diff --git a/ports/pango/CONTROL b/ports/pango/CONTROL
index 62220dbef..98c09ee3f 100644
--- a/ports/pango/CONTROL
+++ b/ports/pango/CONTROL
@@ -1,5 +1,5 @@
Source: pango
-Version: 1.40.11-5
+Version: 1.40.11-6
Homepage: https://ftp.gnome.org/pub/GNOME/sources/pango/
Description: Text and font handling library.
Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz[glib] (!(windows&static))
diff --git a/ports/pbc/CONTROL b/ports/pbc/CONTROL
index b717ac1e5..1577832fd 100644
--- a/ports/pbc/CONTROL
+++ b/ports/pbc/CONTROL
@@ -3,3 +3,4 @@ Version: 0.5.14-2
Build-Depends: mpir (windows)
Homepage: https://crypto.stanford.edu/pbc
Description: Pairing-Based Crypto library provides low-level routines for pairing-based cryptosystems.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/physx/CONTROL b/ports/physx/CONTROL
index 49150dc29..c744a2ae3 100644
--- a/ports/physx/CONTROL
+++ b/ports/physx/CONTROL
@@ -1,3 +1,4 @@
-Source: physx
-Version: 4.1.1-3
-Description: The NVIDIA PhysX SDK is a scalable multi-platform physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs
+Source: physx
+Version: 4.1.1-3
+Description: The NVIDIA PhysX SDK is a scalable multi-platform physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs
+Supports: !uwp
diff --git a/ports/pistache/CONTROL b/ports/pistache/CONTROL
index c1b4408cf..307fe0191 100644
--- a/ports/pistache/CONTROL
+++ b/ports/pistache/CONTROL
@@ -1,4 +1,5 @@
Source: pistache
Version: 2019-08-05
Homepage: https://github.com/oktal/pistache
-Description: Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++11 and provides a clear and pleasant API.
\ No newline at end of file
+Description: Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++11 and provides a clear and pleasant API.
+Supports: linux
\ No newline at end of file
diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL
index c2e5bed30..4b4cac6b2 100644
--- a/ports/pmdk/CONTROL
+++ b/ports/pmdk/CONTROL
@@ -2,3 +2,4 @@ Source: pmdk
Version: 1.7-1
Homepage: https://github.com/pmem/pmdk
Description: Persistent Memory Development Kit
+Supports: !(arm|x86)
\ No newline at end of file
diff --git a/ports/portmidi/CONTROL b/ports/portmidi/CONTROL
index 07ba19c0c..1a9917935 100644
--- a/ports/portmidi/CONTROL
+++ b/ports/portmidi/CONTROL
@@ -2,3 +2,4 @@ Source: portmidi
Version: 0.217.1-1
Homepage: https://sourceforge.net/projects/portmedia/
Description: Free, cross-platform, open-source I/O library for MIDI
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/ptex/CONTROL b/ports/ptex/CONTROL
index 823988f85..501913cf5 100644
--- a/ports/ptex/CONTROL
+++ b/ports/ptex/CONTROL
@@ -3,3 +3,4 @@ Version: 2.3.2-1
Homepage: https://github.com/wdas/ptex
Description: Per-Face Texture Mapping for Production Rendering.
Build-Depends: zlib
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/pthreads/CONTROL b/ports/pthreads/CONTROL
index 43c38ffdb..19e2bd0ac 100644
--- a/ports/pthreads/CONTROL
+++ b/ports/pthreads/CONTROL
@@ -2,3 +2,4 @@ Source: pthreads
Version: 3.0.0-4
Homepage: https://sourceware.org/pub/pthreads-win32/
Description: pthreads for windows
+Supports: !(uwp|arm|arm64)
\ No newline at end of file
diff --git a/ports/pthreads/portfile.cmake b/ports/pthreads/portfile.cmake
index 393fefddc..3abb2d591 100644
--- a/ports/pthreads/portfile.cmake
+++ b/ports/pthreads/portfile.cmake
@@ -1,14 +1,12 @@
-include(vcpkg_common_functions)
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
- message(FATAL_ERROR "${PORT} does not currently support UWP platform nor ARM architectures")
-endif()
-
if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
return()
endif()
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ message(FATAL_ERROR "${PORT} does not currently support UWP platform nor ARM architectures")
+endif()
+
set(PTHREADS4W_VERSION "3.0.0")
vcpkg_download_distfile(ARCHIVE
@@ -98,3 +96,5 @@ file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pt
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/pthread)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/pthreads)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/pthreads_windows)
+
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
diff --git a/ports/qt5-activeqt/CONTROL b/ports/qt5-activeqt/CONTROL
index 4ec2594b3..e4aa3b5c1 100644
--- a/ports/qt5-activeqt/CONTROL
+++ b/ports/qt5-activeqt/CONTROL
@@ -2,3 +2,4 @@ Source: qt5-activeqt
Version: 5.12.5
Description: Qt5 ActiveQt Module - ActiveX components
Build-Depends: qt5-base
+Supports: windows
\ No newline at end of file
diff --git a/ports/qt5-connectivity/CONTROL b/ports/qt5-connectivity/CONTROL
index 0bec2a8b4..245cfa1b1 100644
--- a/ports/qt5-connectivity/CONTROL
+++ b/ports/qt5-connectivity/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-connectivity
Version: 5.12.5-1
Description: Qt5 Connectivity module - Provides access to Bluetooth and NFC hardware
-Build-Depends: qt5-base, qt5-androidextras (android)
+Build-Depends: qt5-base
diff --git a/ports/qt5-macextras/CONTROL b/ports/qt5-macextras/CONTROL
index 21b0ad5fa..6bd46f216 100644
--- a/ports/qt5-macextras/CONTROL
+++ b/ports/qt5-macextras/CONTROL
@@ -2,3 +2,4 @@ Source: qt5-macextras
Version: 5.12.5
Description: Qt5 Mac Extras Module. Provides platform-specific APIs for mac.
Build-Depends: qt5-base
+Supports: osx
\ No newline at end of file
diff --git a/ports/qt5-purchasing/CONTROL b/ports/qt5-purchasing/CONTROL
index f970ba418..f83c48053 100644
--- a/ports/qt5-purchasing/CONTROL
+++ b/ports/qt5-purchasing/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-purchasing
Version: 5.12.5-1
Description: Qt5 Purchasing Module - Enables in-app purchase of products in Qt applications.
-Build-Depends: qt5-base, qt5-declarative, qt5-androidextras (android)
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-winextras/CONTROL b/ports/qt5-winextras/CONTROL
index 5d948ee5c..3f65220bf 100644
--- a/ports/qt5-winextras/CONTROL
+++ b/ports/qt5-winextras/CONTROL
@@ -2,3 +2,4 @@ Source: qt5-winextras
Version: 5.12.5-1
Description: Qt5 Windows Extras Module. Provides platform-specific APIs for Windows.
Build-Depends: qt5-base, atlmfc (windows), qt5-declarative, qt5-multimedia
+Supports: windows
\ No newline at end of file
diff --git a/ports/quaternions/CONTROL b/ports/quaternions/CONTROL
new file mode 100644
index 000000000..cc5fd6554
--- /dev/null
+++ b/ports/quaternions/CONTROL
@@ -0,0 +1,5 @@
+Source: quaternions
+Version: 1.0.0
+Description: A C++11 library to work with quaternions, as a single header file.
+Homepage: https://github.com/ferd36/quaternions
+Build-Depends: boost-mpl
diff --git a/ports/quaternions/portfile.cmake b/ports/quaternions/portfile.cmake
new file mode 100644
index 000000000..2613abed8
--- /dev/null
+++ b/ports/quaternions/portfile.cmake
@@ -0,0 +1,12 @@
+# header-only library
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ferd36/quaternions
+ REF 68fc6c7fb392b1a920779d80bb75879263329ff5
+ SHA512 b7b934a493645e9c9ec04d581d2e5af57298325086919c20fbaa13df264c16cb5a0e380042cf5a0cfddbf142c82e5da63b84e8f2bc90615b1eccad83a1c9df88
+ HEAD_REF master
+)
+
+file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/rabit/CONTROL b/ports/rabit/CONTROL
index 7b07cba7b..64dd8ea8d 100644
--- a/ports/rabit/CONTROL
+++ b/ports/rabit/CONTROL
@@ -3,4 +3,4 @@ Version: 0.1-2
Homepage: https://github.com/dmlc/rabit
Description: rabit is a light weight library that provides a fault tolerant interface of Allreduce and Broadcast. It is designed to support easy implementations of distributed machine learning programs, many of which fall naturally under the Allreduce abstraction.
Build-Depends: dmlc
-
+Supports: !uwp
diff --git a/ports/raylib/CONTROL b/ports/raylib/CONTROL
index 8d50803e6..2113f5760 100644
--- a/ports/raylib/CONTROL
+++ b/ports/raylib/CONTROL
@@ -1,6 +1,7 @@
Source: raylib
Version: 2.5.0
Description: A simple and easy-to-use library to enjoy videogames programming
+Supports: !(arm|uwp)
#Build-Depends: glfw3
Feature: non-audio
diff --git a/ports/readline/CONTROL b/ports/readline/CONTROL
index 4fdb10939..c487f389b 100644
--- a/ports/readline/CONTROL
+++ b/ports/readline/CONTROL
@@ -2,3 +2,4 @@ Source: readline
Version: 0
Description: GNU readline and history libraries
Build-Depends: readline-win32 (windows)
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/restclient-cpp/CONTROL b/ports/restclient-cpp/CONTROL
index 2aac1bbaf..8b3ede796 100644
--- a/ports/restclient-cpp/CONTROL
+++ b/ports/restclient-cpp/CONTROL
@@ -1,4 +1,4 @@
Source: restclient-cpp
-Version: 0.5.1-2
+Version: 0.5.1-3
Build-Depends: curl
Description: Binn is a binary data serialization format designed to be compact, fast and easy to use.
diff --git a/ports/restclient-cpp/portfile.cmake b/ports/restclient-cpp/portfile.cmake
index 6ad2fa7cf..4efcb3ddd 100644
--- a/ports/restclient-cpp/portfile.cmake
+++ b/ports/restclient-cpp/portfile.cmake
@@ -1,4 +1,6 @@
-include(vcpkg_common_functions)
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
@@ -22,12 +24,9 @@ vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/restclient-cpp)
-# Remove includes in debug
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/bin)
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/restclient-cpp)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/restclient-cpp/LICENSE ${CURRENT_PACKAGES_DIR}/share/restclient-cpp/copyright)
-
-# Copy pdb files
-vcpkg_copy_pdbs()
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/restinio/CONTROL b/ports/restinio/CONTROL
index 14a167491..4add14b0f 100644
--- a/ports/restinio/CONTROL
+++ b/ports/restinio/CONTROL
@@ -1,5 +1,5 @@
Source: restinio
-Version: 0.6.2
+Version: 0.6.3
Description: A header-only C++14 library that gives you an embedded HTTP/Websocket server targeted primarily for asynchronous processing of HTTP-requests.
Build-Depends: asio, fmt, http-parser
Homepage: https://github.com/stiffstream/restinio
diff --git a/ports/restinio/portfile.cmake b/ports/restinio/portfile.cmake
index bb1efd49c..b19da7a25 100644
--- a/ports/restinio/portfile.cmake
+++ b/ports/restinio/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO stiffstream/restinio
- REF 086c07eb4aaa59997489e5431d6279211347061a # v.0.6.2
- SHA512 28cf20331749ca5dee75cd318d7b08ea6b7e26e8e59fde2de182683c0a3861e3a6f1957605cd61bf09e2ba9f05a04f08fabcbb140d73ffe72d8b5235b4df7746
+ REF 02507d2c18732045b69f9b6710767de6972f0179 # v.0.6.3
+ SHA512 fc83fc3d378dd4b69900a9fe2f7ba1582c51db42d9171f2f0ca1a248afead7dadcda4aed0e3dcd529bbb6d3faf6d2fb30eeb0971776ffeadbb5d7ef4055985dd
)
vcpkg_configure_cmake(
@@ -14,7 +14,5 @@ vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/restinio)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug)
-
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-
diff --git a/ports/rhash/CONTROL b/ports/rhash/CONTROL
index a2bb52c2f..8b838cc39 100644
--- a/ports/rhash/CONTROL
+++ b/ports/rhash/CONTROL
@@ -2,3 +2,4 @@ Source: rhash
Version: 1.3.8
Homepage: https://github.com/rhash/RHash
Description: C library for computing a wide variety of hash sums
+Supports: !uwp
diff --git a/ports/sciter/CONTROL b/ports/sciter/CONTROL
index 10beb200a..b835b87e1 100644
--- a/ports/sciter/CONTROL
+++ b/ports/sciter/CONTROL
@@ -2,3 +2,4 @@ Source: sciter
Version: 4.2.6.9-2
Homepage: https://github.com/c-smile/sciter-sdk
Description: Sciter is an embeddable HTML/CSS/scripting engine.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/sdl2-gfx/001-lrint-arm64.patch b/ports/sdl2-gfx/001-lrint-arm64.patch
new file mode 100644
index 000000000..50de17973
--- /dev/null
+++ b/ports/sdl2-gfx/001-lrint-arm64.patch
@@ -0,0 +1,26 @@
+diff --git a/SDL2_gfxPrimitives.c b/SDL2_gfxPrimitives.c
+index f81e6da..91817fd 100755
+--- a/SDL2_gfxPrimitives.c
++++ b/SDL2_gfxPrimitives.c
+@@ -1771,8 +1771,20 @@ __declspec(naked) long int
+ __emit(0xE12FFF1E); // bx lr
+ }
+ #pragma warning(pop)
++#elif defined(_M_ARM64)
++#include
++#pragma warning(push)
++#pragma warning(disable: 4716)
++__declspec(naked) long
++ lrint (double f)
++{
++ __emit(0x1e674000); // frintx d0, d0
++ __emit(0x9e780000); // fcvtzs x0, d0
++ __emit(0xd65f03c0); // ret
++}
++#pragma warning(pop)
+ #else
+-#error lrint needed for MSVC on non X86/AMD64/ARM targets.
++#error lrint needed for MSVC on non X86/AMD64/ARM/ARM64 targets.
+ #endif
+ #endif
+
diff --git a/ports/sdl2-gfx/CONTROL b/ports/sdl2-gfx/CONTROL
index de1005b47..bd6b4f6b2 100644
--- a/ports/sdl2-gfx/CONTROL
+++ b/ports/sdl2-gfx/CONTROL
@@ -1,4 +1,4 @@
Source: sdl2-gfx
-Version: 1.0.4-4
+Version: 1.0.4-5
Build-Depends: sdl2
Description: Graphics primitives (line, circle, rectangle etc.) with AA support, rotozoomer and other drawing related support functions wrapped up in a C based add-on library for the Simple Direct Media (SDL) cross-platform API layer.
diff --git a/ports/sdl2-gfx/portfile.cmake b/ports/sdl2-gfx/portfile.cmake
index f547c1edd..802b1a2c5 100644
--- a/ports/sdl2-gfx/portfile.cmake
+++ b/ports/sdl2-gfx/portfile.cmake
@@ -12,6 +12,8 @@ vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF ${VERSION}
+ PATCHES
+ 001-lrint-arm64.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/sdl2-mixer/CMakeLists.txt b/ports/sdl2-mixer/CMakeLists.txt
index 08190988e..57c840ea1 100644
--- a/ports/sdl2-mixer/CMakeLists.txt
+++ b/ports/sdl2-mixer/CMakeLists.txt
@@ -16,8 +16,10 @@ if(SDL_MIXER_ENABLE_MP3)
find_library(MPG123_LIBRARY NAMES libmpg123 mpg123)
list(APPEND SDL_MIXER_INCLUDES ${MPG123_INCLUDE_DIR})
list(APPEND SDL_MIXER_DEFINES MUSIC_MP3_MPG123)
- get_filename_component(MPG123_LIBRARY_NAME "${MPG123_LIBRARY}" NAME_WE)
- list(APPEND SDL_MIXER_LOAD_DEFINES -DMPG123_DYNAMIC="${MPG123_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ if (SDL_DYNAMIC_LOAD)
+ get_filename_component(MPG123_LIBRARY_NAME "${MPG123_LIBRARY}" NAME_WE)
+ list(APPEND SDL_MIXER_LOAD_DEFINES -DMPG123_DYNAMIC="${MPG123_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ endif()
endif()
# FLAC support
@@ -26,8 +28,10 @@ if(SDL_MIXER_ENABLE_FLAC)
find_library(FLAC_LIBRARY FLAC)
list(APPEND SDL_MIXER_INCLUDES ${FLAC_INCLUDE_DIR})
list(APPEND SDL_MIXER_DEFINES MUSIC_FLAC)
- get_filename_component(FLAC_LIBRARY_NAME "${FLAC_LIBRARY}" NAME_WE)
- list(APPEND SDL_MIXER_LOAD_DEFINES -DFLAC_DYNAMIC="${FLAC_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ if (SDL_DYNAMIC_LOAD)
+ get_filename_component(FLAC_LIBRARY_NAME "${FLAC_LIBRARY}" NAME_WE)
+ list(APPEND SDL_MIXER_LOAD_DEFINES -DFLAC_DYNAMIC="${FLAC_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ endif()
endif()
# MOD support
@@ -36,8 +40,10 @@ if(SDL_MIXER_ENABLE_MOD)
find_library(MODPLUG_LIBRARY modplug)
list(APPEND SDL_MIXER_INCLUDES ${MODPLUG_INCLUDE_DIR})
list(APPEND SDL_MIXER_DEFINES MUSIC_MOD_MODPLUG)
- get_filename_component(MODPLUG_LIBRARY_NAME "${MODPLUG_LIBRARY}" NAME_WE)
- list(APPEND SDL_MIXER_LOAD_DEFINES -DMODPLUG_DYNAMIC="${MODPLUG_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ if (SDL_DYNAMIC_LOAD)
+ get_filename_component(MODPLUG_LIBRARY_NAME "${MODPLUG_LIBRARY}" NAME_WE)
+ list(APPEND SDL_MIXER_LOAD_DEFINES -DMODPLUG_DYNAMIC="${MODPLUG_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ endif()
endif()
# Ogg-Vorbis support
@@ -46,8 +52,10 @@ if(SDL_MIXER_ENABLE_OGGVORBIS)
find_library(VORBISFILE_LIBRARY vorbisfile)
list(APPEND SDL_MIXER_INCLUDES ${VORBIS_INCLUDE_DIR})
list(APPEND SDL_MIXER_DEFINES MUSIC_OGG)
- get_filename_component(VORBISFILE_LIBRARY_NAME "${VORBISFILE_LIBRARY}" NAME_WE)
- list(APPEND SDL_MIXER_LOAD_DEFINES -DOGG_DYNAMIC="${VORBISFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ if (SDL_DYNAMIC_LOAD)
+ get_filename_component(VORBISFILE_LIBRARY_NAME "${VORBISFILE_LIBRARY}" NAME_WE)
+ list(APPEND SDL_MIXER_LOAD_DEFINES -DOGG_DYNAMIC="${VORBISFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ endif()
endif()
# Opus support
@@ -56,8 +64,10 @@ if(SDL_MIXER_ENABLE_OPUS)
find_library(OPUSFILE_LIBRARY opusfile)
list(APPEND SDL_MIXER_INCLUDES ${OPUS_INCLUDE_DIR})
list(APPEND SDL_MIXER_DEFINES MUSIC_OPUS)
- get_filename_component(OPUSFILE_LIBRARY_NAME "${OPUSFILE_LIBRARY}" NAME_WE)
- list(APPEND SDL_MIXER_LOAD_DEFINES -DOPUS_DYNAMIC="${OPUSFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ if (SDL_DYNAMIC_LOAD)
+ get_filename_component(OPUSFILE_LIBRARY_NAME "${OPUSFILE_LIBRARY}" NAME_WE)
+ list(APPEND SDL_MIXER_LOAD_DEFINES -DOPUS_DYNAMIC="${OPUSFILE_LIBRARY_NAME}${LIBRARY_SUFFIX}")
+ endif()
endif()
add_library(SDL2_mixer
diff --git a/ports/sdl2-mixer/CONTROL b/ports/sdl2-mixer/CONTROL
index b2f731152..c3c60d942 100644
--- a/ports/sdl2-mixer/CONTROL
+++ b/ports/sdl2-mixer/CONTROL
@@ -1,9 +1,12 @@
Source: sdl2-mixer
-Version: 2.0.4-7
+Version: 2.0.4-8
Homepage: https://www.libsdl.org/projects/SDL_mixer
Description: Multi-channel audio mixer library for SDL.
Build-Depends: sdl2
+Feature: dynamic-load
+Description: Load plugins with dynamic call
+
Feature: libflac
Description: Support for FLAC audio format.
Build-Depends: libflac
diff --git a/ports/sdl2-mixer/portfile.cmake b/ports/sdl2-mixer/portfile.cmake
index 9777f0b90..74037d2f6 100644
--- a/ports/sdl2-mixer/portfile.cmake
+++ b/ports/sdl2-mixer/portfile.cmake
@@ -1,5 +1,5 @@
-include(vcpkg_common_functions)
set(SDL2_MIXER_VERSION 2.0.4)
+
vcpkg_download_distfile(ARCHIVE
URLS "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
FILENAME "SDL2_mixer-${SDL2_MIXER_VERSION}.zip"
@@ -11,15 +11,24 @@ vcpkg_extract_source_archive_ex(
ARCHIVE ${ARCHIVE}
REF ${SDL2_MIXER_VERSION}
)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
- set(LIBRARY_SUFFIX ${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX})
-else()
- set(LIBRARY_SUFFIX ${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX})
+if ("dynamic-load" IN_LIST FEATURES)
+ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ message("Building static library, disable dynamic loading")
+ elseif (NOT "mpg123" IN_LIST FEATURES
+ AND NOT "libflac" IN_LIST FEATURES
+ AND NOT "libmodplug" IN_LIST FEATURES
+ AND NOT "libvorbis" IN_LIST FEATURES
+ AND NOT "opusfile" IN_LIST FEATURES
+ )
+ message("No features selected, dynamic loading will not be enabled")
+ endif()
endif()
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ dynamic-load SDL_DYNAMIC_LOAD
mpg123 SDL_MIXER_ENABLE_MP3
libflac SDL_MIXER_ENABLE_FLAC
libmodplug SDL_MIXER_ENABLE_MOD
@@ -32,7 +41,7 @@ vcpkg_configure_cmake(
PREFER_NINJA
OPTIONS
${FEATURE_OPTIONS}
- -DLIBRARY_SUFFIX=${LIBRARY_SUFFIX}
+ -DLIBRARY_SUFFIX=${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX} # It should always be dynamic suffix
OPTIONS_DEBUG
-DSDL_MIXER_SKIP_HEADERS=ON
)
diff --git a/ports/seal/CONTROL b/ports/seal/CONTROL
new file mode 100644
index 000000000..743ebd30a
--- /dev/null
+++ b/ports/seal/CONTROL
@@ -0,0 +1,4 @@
+Source: seal
+Version: 3.4.5
+Homepage: https://github.com/microsoft/SEAL
+Description: Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.
diff --git a/ports/seal/portfile.cmake b/ports/seal/portfile.cmake
new file mode 100644
index 000000000..8e1ac0604
--- /dev/null
+++ b/ports/seal/portfile.cmake
@@ -0,0 +1,46 @@
+set(SEAL_VERSION_MAJOR 3)
+set(SEAL_VERSION_MINOR 4)
+set(SEAL_VERSION_MICRO 5)
+
+vcpkg_fail_port_install(ON_TARGET "uwp")
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SEAL_BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SEAL_BUILD_STATIC)
+
+if (SEAL_BUILD_STATIC)
+ set(SEAL_LIB_BUILD_TYPE "Static_PIC")
+endif ()
+
+if (SEAL_BUILD_DYNAMIC)
+ set(SEAL_LIB_BUILD_TYPE "Shared")
+endif ()
+
+string(TOUPPER ${PORT} PORT_UPPER)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO microsoft/SEAL
+ REF 9fc376c19488be2bfd213780ee06789754f4b2c2
+ SHA512 198f75371c7b0b88066495a40c687c32725a033fd1b3e3dadde3165da8546d44e9eaa9355366dd5527058ae2171175f757f69189cf7f5255f51eba14c6f38b78
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/native/src
+ PREFER_NINJA
+ OPTIONS
+ -DALLOW_COMMAND_LINE_BUILD=ON
+ -DSEAL_LIB_BUILD_TYPE=${SEAL_LIB_BUILD_TYPE}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT_UPPER}-${SEAL_VERSION_MAJOR}.${SEAL_VERSION_MINOR})
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ ${CURRENT_PACKAGES_DIR}/debug/share)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/septag-sx/CONTROL b/ports/septag-sx/CONTROL
index ee9917e66..a41e214af 100644
--- a/ports/septag-sx/CONTROL
+++ b/ports/septag-sx/CONTROL
@@ -1,3 +1,4 @@
Source: septag-sx
Version: 2019-05-07-2
Description: Portable base library for C programmers, designed for performance and simplicity.
+Supports: !(uwp|arm)
\ No newline at end of file
diff --git a/ports/sfsexp/CMakeLists.txt b/ports/sfsexp/CMakeLists.txt
new file mode 100644
index 000000000..e770b9d6d
--- /dev/null
+++ b/ports/sfsexp/CMakeLists.txt
@@ -0,0 +1,20 @@
+cmake_minimum_required(VERSION 3.13)
+project(sexp)
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
+endif()
+
+file(GLOB sources src/*.c src/*.h)
+include_directories(src/)
+
+add_library(sexp ${sources})
+
+set_target_properties(sexp PROPERTIES PUBLIC_HEADER "src/cstring.h;src/faststack.h;src/sexp.h;src/sexp_errors.h;src/sexp_memory.h;src/sexp_ops.h;src/sexp_vis.h")
+
+install(TARGETS sexp
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+ PUBLIC_HEADER DESTINATION include
+)
\ No newline at end of file
diff --git a/ports/sfsexp/CONTROL b/ports/sfsexp/CONTROL
new file mode 100644
index 000000000..bb6d25a6a
--- /dev/null
+++ b/ports/sfsexp/CONTROL
@@ -0,0 +1,4 @@
+Source: sfsexp
+Version: 1.3
+Homepage: https://github.com/mjsottile/sfsexp
+Description: Small Fast S-Expression Library
diff --git a/ports/sfsexp/portfile.cmake b/ports/sfsexp/portfile.cmake
new file mode 100644
index 000000000..6bc6f2c9d
--- /dev/null
+++ b/ports/sfsexp/portfile.cmake
@@ -0,0 +1,23 @@
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mjsottile/sfsexp
+ REF ad589f9e6e0eca20345320e9c82a3aecc0a5c8aa #v1.3
+ SHA512 cdd469e23de48a5d6cd633b7b97b394cbfcba330ac2c3ae549811d856f2eec0c8558f99313e56a9f1cc9d72d4f17077584b6cf15c87814b91fe44ddd76895a8c
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
\ No newline at end of file
diff --git a/ports/simdjson/CONTROL b/ports/simdjson/CONTROL
index 14f70df1c..fe34d9af3 100644
--- a/ports/simdjson/CONTROL
+++ b/ports/simdjson/CONTROL
@@ -2,3 +2,4 @@ Source: simdjson
Version: 2019-12-27
Description: A extremely fast JSON library that can parse gigabytes of JSON per second
Homepage: https://github.com/lemire/simdjson
+Supports: !(x86|arm|arm64)
\ No newline at end of file
diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL
index 7ce1c2ba6..28b6ac87c 100644
--- a/ports/soundtouch/CONTROL
+++ b/ports/soundtouch/CONTROL
@@ -3,3 +3,4 @@ Version: 2.0.0-4
Homepage: https://www.surina.net/soundtouch
Description: SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files.
Build-Depends: atlmfc (windows)
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/spdk-dpdk/CONTROL b/ports/spdk-dpdk/CONTROL
index 02647149a..61d1415cd 100644
--- a/ports/spdk-dpdk/CONTROL
+++ b/ports/spdk-dpdk/CONTROL
@@ -1,4 +1,4 @@
Source: spdk-dpdk
Version: 20181124
Description: SPDK mirror of DPDK. A set of libraries and drivers for fast packet processing
-
+Supports: linux
diff --git a/ports/spdk-ipsec/CONTROL b/ports/spdk-ipsec/CONTROL
index 3f8e1a034..7adb9c4c9 100644
--- a/ports/spdk-ipsec/CONTROL
+++ b/ports/spdk-ipsec/CONTROL
@@ -1,4 +1,4 @@
Source: spdk-ipsec
Version: 20180711
Description: SPDK mirror of ipsec. Intel(R) Multi-Buffer Crypto for IPsec Library
-
+Supports: x64
diff --git a/ports/spdk-isal/CONTROL b/ports/spdk-isal/CONTROL
index abfbe3de0..1a134ae14 100644
--- a/ports/spdk-isal/CONTROL
+++ b/ports/spdk-isal/CONTROL
@@ -1,4 +1,4 @@
Source: spdk-isal
Version: 20181006
Description: SPDK mirror of isa-l. Intel(R) Intelligent Storage Acceleration Library
-
+Supports: x64
diff --git a/ports/spdk/CONTROL b/ports/spdk/CONTROL
index 5e2cf3ca2..0233395c1 100644
--- a/ports/spdk/CONTROL
+++ b/ports/spdk/CONTROL
@@ -1,4 +1,5 @@
Source: spdk
Version: 19.01.1
Description: Storage Performance Development Kit
-Build-Depends: spdk-dpdk, spdk-ipsec, spdk-isal
\ No newline at end of file
+Build-Depends: spdk-dpdk, spdk-ipsec, spdk-isal
+Supports: linux
\ No newline at end of file
diff --git a/ports/string-theory/CONTROL b/ports/string-theory/CONTROL
index 18e9b1014..4d5e1e824 100644
--- a/ports/string-theory/CONTROL
+++ b/ports/string-theory/CONTROL
@@ -1,4 +1,4 @@
Source: string-theory
-Version: 3.0
+Version: 3.1
Homepage: https://github.com/zrax/string_theory
Description: Flexible modern C++ string library with type-safe formatting.
diff --git a/ports/string-theory/portfile.cmake b/ports/string-theory/portfile.cmake
index a82fec30e..bb3440504 100644
--- a/ports/string-theory/portfile.cmake
+++ b/ports/string-theory/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO zrax/string_theory
- REF 3.0
- SHA512 96e596b908c1b61b67497d8ecea7523b36e1bce0ef41bee90a144de1d98c5dbc51336e22934e6331862741879cfed450b620b89222e774048e5d17ebd11ad2a8
+ REF 3.1
+ SHA512 fb4b5d89126ef65aeb50cd0a636dc938a6b0086d5124c872fd60f48a56752eac8f64956f67e829a3eecb0d4cebd6df442162ab6f0b88c35b93dc8ac5c62f18d2
HEAD_REF master
)
diff --git a/ports/teemo/CONTROL b/ports/teemo/CONTROL
index 2ee045a35..4d96fe5af 100644
--- a/ports/teemo/CONTROL
+++ b/ports/teemo/CONTROL
@@ -1,5 +1,5 @@
Source: teemo
-Version: 1.2
+Version: 1.2-1
Build-Depends: curl[non-http], cpprestsdk
Description: C++ File Download Library, support Multithreading, Breakpoint Transmission, Speed Limit, Real-time Speed.
Homepage: https://github.com/winsoft666/teemo
\ No newline at end of file
diff --git a/ports/teemo/adjust-install-dir.patch b/ports/teemo/adjust-install-dir.patch
new file mode 100644
index 000000000..3ca1dcf56
--- /dev/null
+++ b/ports/teemo/adjust-install-dir.patch
@@ -0,0 +1,22 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 20de97c..0009c8a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -108,7 +108,7 @@ set_target_properties(${LIB_NAME}
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" )
+
+ target_include_directories(${LIB_NAME} INTERFACE
+- $)
++ $)
+
+ install(TARGETS ${LIB_NAME}
+ EXPORT ${LIB_NAME}-target
+@@ -117,7 +117,7 @@ install(TARGETS ${LIB_NAME}
+ ARCHIVE DESTINATION lib)
+
+
+-install(FILES ${HEADER_FILES} DESTINATION include)
++install(FILES ${HEADER_FILES} DESTINATION include/teemo)
+
+
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../CMake/teemo-config.cmake
diff --git a/ports/teemo/portfile.cmake b/ports/teemo/portfile.cmake
index df79626c0..07b5d5a53 100644
--- a/ports/teemo/portfile.cmake
+++ b/ports/teemo/portfile.cmake
@@ -6,6 +6,9 @@ vcpkg_from_github(
REF 15edb1705d18ee78b32516a8ae52d6b10507af62
SHA512 7dbe917d48b1e8c4b004bad33d8a82524e501d8bec6cdeca4e89ebbe8ed79fa484028c3afd365347e31fa83f64a6f0f5a42ea0063baa7c0985824fb3dffcc8f2
HEAD_REF master
+ PATCHES
+ # Installing "slice.h" to the root include directory causes build issues in many other libraries
+ adjust-install-dir.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" TEEMO_STATIC)
@@ -26,13 +29,13 @@ elseif(EXISTS ${CURRENT_PACKAGES_DIR}/share/teemo)
vcpkg_fixup_cmake_targets(CONFIG_PATH share/teemo)
endif()
-file(READ ${CURRENT_PACKAGES_DIR}/include/teemo.h TEEMO_H)
+file(READ ${CURRENT_PACKAGES_DIR}/include/teemo/teemo.h TEEMO_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "#ifdef TEEMO_STATIC" "#if 1" TEEMO_H "${TEEMO_H}")
else()
string(REPLACE "#ifdef TEEMO_STATIC" "#if 0" TEEMO_H "${TEEMO_H}")
endif()
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/teemo.h "${TEEMO_H}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/include/teemo/teemo.h "${TEEMO_H}")
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/telnetpp/CONTROL b/ports/telnetpp/CONTROL
index 049fb9c5a..ffb5ef01a 100644
--- a/ports/telnetpp/CONTROL
+++ b/ports/telnetpp/CONTROL
@@ -1,9 +1,10 @@
Source: telnetpp
-Version: 2.0-2
+Version: 2.0-3
Homepage: https://github.com/KazDragon/telnetpp
Description: Telnet++ is an implementation of the Telnet Session Layer protocol using C++14
-Build-Depends: boost-container, boost-signals2, boost-variant, gtest, gsl-lite, boost-exception
+Build-Depends: boost-container, boost-signals2, boost-variant, gsl-lite, boost-exception
Default-Features: zlib
+Supports: !uwp
Feature: zlib
Description: Zlib support
diff --git a/ports/telnetpp/fix-build-error.patch b/ports/telnetpp/fix-build-error.patch
index 92ad5bd29..d72ced01e 100644
--- a/ports/telnetpp/fix-build-error.patch
+++ b/ports/telnetpp/fix-build-error.patch
@@ -1,18 +1,19 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 09b4f9b..feb3746 100644
+index 09b4f9b..6f72c41 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -22,9 +22,6 @@ message("Building Telnet++ with zlib: ${TELNETPP_WITH_ZLIB}")
+@@ -22,8 +22,8 @@ message("Building Telnet++ with zlib: ${TELNETPP_WITH_ZLIB}")
message("Building Telnet++ with code coverage: ${TELNETPP_COVERAGE}")
message("Building Telnet++ with sanitizers: ${TELNETPP_SANITIZE}")
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
--
++find_package(gsl-lite REQUIRED)
++find_package(Boost REQUIRED COMPONENTS container)
+
# The required C++ Standard for Telnet++ is C++14.
set(CMAKE_CXX_STANDARD 14)
-
-@@ -154,18 +151,24 @@ add_library(telnetpp
+@@ -154,18 +154,24 @@ add_library(telnetpp
${TELNETPP_PRIVATE_INCLUDE_FILES}
)
@@ -28,9 +29,9 @@ index 09b4f9b..feb3746 100644
- CONAN_PKG::boost_container
- CONAN_PKG::boost_signals2
- CONAN_PKG::boost_variant
-+ ${BOOST_CONTAINER_LIBRARY}
-+ ${BOOST_SIGNALS2_LIBRARY}
-+ ${BOOST_VARIANT_LIBRARY}
++ gsl::gsl-lite
++ Boost::boost
++ Boost::container
)
if (TELNETPP_WITH_ZLIB)
@@ -38,21 +39,21 @@ index 09b4f9b..feb3746 100644
target_link_libraries(telnetpp
PRIVATE
- CONAN_PKG::zlib
-+ ${ZLIB_LIBRARIES}
++ ZLIB::ZLIB
)
endif()
-@@ -180,7 +183,8 @@ target_include_directories(telnetpp
+@@ -179,8 +185,7 @@ set_target_properties(telnetpp
+ target_include_directories(telnetpp
PUBLIC
$
- $
+- $
- "${Boost_INCLUDE_DIRS}"
-+ $
-+ $
++ $
)
generate_export_header(telnetpp
-@@ -197,17 +201,19 @@ install(
+@@ -197,17 +202,19 @@ install(
telnetpp
EXPORT
telnetpp-config
@@ -75,7 +76,7 @@ index 09b4f9b..feb3746 100644
)
export(
-@@ -221,7 +227,7 @@ install(
+@@ -221,7 +228,7 @@ install(
EXPORT
telnetpp-config
DESTINATION
@@ -84,7 +85,7 @@ index 09b4f9b..feb3746 100644
)
include(CMakePackageConfigHelpers)
-@@ -236,7 +242,7 @@ install(
+@@ -236,7 +243,7 @@ install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/telnetpp-config-version.cmake"
DESTINATION
@@ -93,24 +94,8 @@ index 09b4f9b..feb3746 100644
)
if (TELNETPP_WITH_TESTS)
-@@ -299,13 +305,13 @@ if (TELNETPP_WITH_TESTS)
- target_link_libraries(telnetpp_tester
- PRIVATE
- telnetpp
-- CONAN_PKG::gtest
-+ GTest::GTest GTest::Main
- )
-
- if (TELNETPP_WITH_ZLIB)
- target_link_libraries(telnetpp_tester
- PRIVATE
-- CONAN_PKG::zlib
-+ ${ZLIB_LIBRARIES}
- )
- endif()
-
diff --git a/include/telnetpp/core.hpp b/include/telnetpp/core.hpp
-index 2362fac..48d340e 100644
+index 2362fac..8710d36 100644
--- a/include/telnetpp/core.hpp
+++ b/include/telnetpp/core.hpp
@@ -1,7 +1,7 @@
@@ -118,35 +103,18 @@ index 2362fac..48d340e 100644
#include "telnetpp/detail/export.hpp"
-#include
-+#include
++#include
#include
#include
-diff --git a/include/telnetpp/subnegotiation.hpp b/include/telnetpp/subnegotiation.hpp
-index a209b72..1f24fc9 100644
---- a/include/telnetpp/subnegotiation.hpp
-+++ b/include/telnetpp/subnegotiation.hpp
-@@ -15,7 +15,11 @@ public:
- //* =====================================================================
- /// \brief Constructor
- //* =====================================================================
-+#if _WIN32
-+ const subnegotiation(option_type option, bytes content) noexcept
-+#else
- constexpr subnegotiation(option_type option, bytes content) noexcept
-+#endif
- : option_(std::move(option)),
- content_(std::move(content))
- {
-@@ -32,7 +36,11 @@ public:
- //* =====================================================================
- /// \brief Returns the content for this subnegotiation.
- //* =====================================================================
-+#if _WIN32
-+ const bytes content() const noexcept
-+#else
- constexpr bytes content() const noexcept
-+#endif
- {
- return content_;
- }
+diff --git a/src/options/msdp/detail/decoder.cpp b/src/options/msdp/detail/decoder.cpp
+index c0b7906..e725693 100644
+--- a/src/options/msdp/detail/decoder.cpp
++++ b/src/options/msdp/detail/decoder.cpp
+@@ -1,5 +1,6 @@
+ #include "telnetpp/options/msdp/detail/decoder.hpp"
+ #include "telnetpp/options/msdp/detail/protocol.hpp"
++#include
+ #include
+ #include
+
diff --git a/ports/telnetpp/portfile.cmake b/ports/telnetpp/portfile.cmake
index 11edf5e05..e71e59f74 100644
--- a/ports/telnetpp/portfile.cmake
+++ b/ports/telnetpp/portfile.cmake
@@ -2,8 +2,6 @@ if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
message(FATAL_ERROR "${PORT} does not currently support UWP")
endif()
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO KazDragon/telnetpp
diff --git a/ports/tensorflow-cc/CONTROL b/ports/tensorflow-cc/CONTROL
index 29f15a376..8bcc1cc35 100644
--- a/ports/tensorflow-cc/CONTROL
+++ b/ports/tensorflow-cc/CONTROL
@@ -2,3 +2,4 @@ Source: tensorflow-cc
Version: 1.14-1
Description: Library for computation using data flow graphs for scalable machine learning
Build-Depends: c-ares
+Supports: !x86
\ No newline at end of file
diff --git a/ports/tgui/portfile.cmake b/ports/tgui/portfile.cmake
index 33e3dd9bf..736946af9 100644
--- a/ports/tgui/portfile.cmake
+++ b/ports/tgui/portfile.cmake
@@ -11,7 +11,7 @@ set(TGUI_TOOLS_PATH ${CURRENT_PACKAGES_DIR}/tools/tgui)
# Enable static build
file(REMOVE "${SOURCE_PATH}/cmake/Modules/FindSFML.cmake")
-string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" TGUI_SHARED_LIBS)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" TGUI_SHARED_LIBS)
# gui-builder
set(BUILD_GUI_BUILDER OFF)
@@ -21,6 +21,7 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
OPTIONS
-DTGUI_BUILD_GUI_BUILDER=${BUILD_GUI_BUILDER}
diff --git a/ports/tinkerforge/CONTROL b/ports/tinkerforge/CONTROL
index 5eb67e96b..da38ec368 100644
--- a/ports/tinkerforge/CONTROL
+++ b/ports/tinkerforge/CONTROL
@@ -1,3 +1,4 @@
Source: tinkerforge
Version: 2.1.25
Description: Tinkerforge C API bindings for bricks and bricklets
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/umock-c/CONTROL b/ports/umock-c/CONTROL
index 3ef51001e..a84f5a7cb 100644
--- a/ports/umock-c/CONTROL
+++ b/ports/umock-c/CONTROL
@@ -1,5 +1,5 @@
Source: umock-c
-Version: 2019-11-27.1
+Version: 2020-01-22
Description: A pure C mocking library
Build-Depends: azure-macro-utils-c
diff --git a/ports/umock-c/portfile.cmake b/ports/umock-c/portfile.cmake
index 5b6d6b32e..815a46547 100644
--- a/ports/umock-c/portfile.cmake
+++ b/ports/umock-c/portfile.cmake
@@ -14,8 +14,8 @@ else()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/umock-c
- REF 87d2214384c886a1e2406ac0756a0b3786add8da
- SHA512 230b6c79a8346727bbc124d1aefaa14da8ecd82b2a56d68b3d2511b8efa5931872da440137a5d266835ba8c5193b83b4bc5ee85abb5242d07904a0706727926c
+ REF 5e3d93112360ee2d4a622b1c48eb70896da3e8c7
+ SHA512 9f5c0ce782f66a41e702e2d54dcff92b07b30e7c2be0ee2c63a56e2bff0c26a1de7f77abcb2a964d668deea817dcb3a4771e328707c2d982c23526465c950608
HEAD_REF master
)
endif()
diff --git a/ports/unicorn/CONTROL b/ports/unicorn/CONTROL
index 74d581487..6dbc5f123 100644
--- a/ports/unicorn/CONTROL
+++ b/ports/unicorn/CONTROL
@@ -2,3 +2,4 @@ Source: unicorn
Version: 2019-07-11
Homepage: https://github.com/unicorn-engine/unicorn
Description: Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework
+Supports: !uwp
diff --git a/ports/upb/CONTROL b/ports/upb/CONTROL
index d42b9e367..cb9b6041d 100644
--- a/ports/upb/CONTROL
+++ b/ports/upb/CONTROL
@@ -1,13 +1,4 @@
Source: upb
-Version: 2019-10-21
+Version: 2019-10-21-1
Homepage: https://github.com/protocolbuffers/upb/
Description: μpb (often written 'upb') is a small protobuf implementation written in C.
-
-Feature: asan
-Description: build with asan support
-
-Feature: ubsan
-Description: build with ubsan support
-
-Feature: tests
-Description: build tests
\ No newline at end of file
diff --git a/ports/upb/add-cmake-install.patch b/ports/upb/add-cmake-install.patch
new file mode 100644
index 000000000..ece6b8db4
--- /dev/null
+++ b/ports/upb/add-cmake-install.patch
@@ -0,0 +1,60 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 836c5ff..6eb8bb5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,7 +8,7 @@ else()
+ cmake_policy(VERSION 3.12)
+ endif()
+
+-cmake_minimum_required (VERSION 3.0)
++cmake_minimum_required (VERSION 3.14)
+ cmake_policy(SET CMP0048 NEW)
+
+ project(upb)
+@@ -59,7 +59,7 @@ elseif(UNIX)
+ endif()
+
+ enable_testing()
+-
++add_library(descriptor_upbproto INTERFACE)
+ add_library(upb
+ upb/decode.c
+ upb/encode.c
+@@ -136,12 +136,35 @@ target_link_libraries(upb_cc_bindings INTERFACE
+ descriptor_upbproto
+ handlers
+ upb)
+-add_library(upb_test
++if(ENABLE_TESTING)
++add_executable(upb_test
+ tests/testmain.cc
+ tests/test_util.h
+ tests/upb_test.h)
+ target_link_libraries(upb_test
+ handlers
+ upb)
++endif()
+
+-
++install(
++ DIRECTORY upb
++ DESTINATION include
++ FILES_MATCHING
++ PATTERN "*.h"
++ PATTERN "*.inc"
++ PATTERN "*.int.h" EXCLUDE
++)
++target_include_directories(upb PUBLIC $)
++install(TARGETS
++ upb
++ upb_cc_bindings
++ upb_json
++ upb_pb
++ table
++ descriptor_upbproto
++ handlers
++ legacy_msg_reflection
++ reflection
++ EXPORT upb-config
++)
++install(EXPORT upb-config NAMESPACE upb:: DESTINATION share/upb)
diff --git a/ports/upb/fix-cmakelists.patch b/ports/upb/fix-cmakelists.patch
deleted file mode 100644
index 4c7ab1413..000000000
--- a/ports/upb/fix-cmakelists.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 836c5ff..6ee66a7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -58,90 +58,148 @@ elseif(UNIX)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id")
- endif()
-
--enable_testing()
-+if (ENABLE_TEST)
-+ enable_testing()
-+endif()
-
-+set(UPB_HDRS
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/generated_util.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/msg.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/table.int.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/port_def.inc
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/port_undef.inc
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/decode.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/encode.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/upb.h
-+)
-+
-+set(UBP_PROJECTS upb)
- add_library(upb
- upb/decode.c
- upb/encode.c
-- upb/generated_util.h
- upb/msg.c
-- upb/msg.h
- upb/port.c
-- upb/port_def.inc
-- upb/port_undef.inc
- upb/table.c
-- upb/table.int.h
- upb/upb.c
-- upb/decode.h
-- upb/encode.h
-- upb/upb.h)
-+ upb/upb.h
-+ ${UPB_HDRS})
-+
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me)
- add_library(generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me INTERFACE)
- target_link_libraries(generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me INTERFACE
- upb)
-+
-+set(REFLECTION_HDRS
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/def.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/msgfactory.h
-+)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} reflection)
- add_library(reflection
- upb/def.c
- upb/msgfactory.c
-- upb/def.h
-- upb/msgfactory.h)
-+ ${REFLECTION_HDRS})
- target_link_libraries(reflection
- descriptor_upbproto
- table
- upb)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} table)
- add_library(table INTERFACE)
- target_link_libraries(table INTERFACE
- upb)
-+
-+set(LEGACY_MSG_HDRS ${CMAKE_CURRENT_LIST_DIR}/upb/legacy_msg_reflection.h)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} legacy_msg_reflection)
- add_library(legacy_msg_reflection
- upb/legacy_msg_reflection.c
-- upb/legacy_msg_reflection.h)
-+ ${LEGACY_MSG_HDRS})
- target_link_libraries(legacy_msg_reflection
- table
- upb)
-+
-+set(HANDLERS_HDRS
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/handlers-inl.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/handlers.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/sink.h
-+)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} handlers)
- add_library(handlers
- upb/handlers.c
-- upb/handlers-inl.h
- upb/sink.c
-- upb/handlers.h
-- upb/sink.h)
-+ ${HANDLERS_HDRS})
- target_link_libraries(handlers
- reflection
- table
- upb)
-+
-+set(UPB_PB_HDRS
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/pb/decoder.int.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/pb/varint.int.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/pb/decoder.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/pb/encoder.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/pb/textprinter.h
-+)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} upb_pb)
- add_library(upb_pb
- upb/pb/compile_decoder.c
- upb/pb/decoder.c
-- upb/pb/decoder.int.h
- upb/pb/encoder.c
- upb/pb/textprinter.c
- upb/pb/varint.c
-- upb/pb/varint.int.h
-- upb/pb/decoder.h
-- upb/pb/encoder.h
-- upb/pb/textprinter.h)
-+ ${UPB_PB_HDRS})
- target_link_libraries(upb_pb
- descriptor_upbproto
- handlers
- reflection
- table
- upb)
-+
-+set(UPB_JSON_HDRS
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/json/parser.h
-+ ${CMAKE_CURRENT_LIST_DIR}/upb/json/printer.h
-+)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} upb_json)
- add_library(upb_json
- generated_for_cmake/upb/json/parser.c
- upb/json/printer.c
-- upb/json/parser.h
-- upb/json/printer.h)
-+ ${UPB_JSON_HDRS})
- target_link_libraries(upb_json
- upb
- upb_pb)
-+
-+set(UBP_PROJECTS ${UBP_PROJECTS} upb_cc_bindings)
- add_library(upb_cc_bindings INTERFACE)
- target_link_libraries(upb_cc_bindings INTERFACE
- descriptor_upbproto
- handlers
- upb)
--add_library(upb_test
-- tests/testmain.cc
-- tests/test_util.h
-- tests/upb_test.h)
--target_link_libraries(upb_test
-- handlers
-- upb)
--
-
-+if (ENABLE_TEST)
-+ set(UBP_PROJECTS ${UBP_PROJECTS} upb_test)
-+ add_library(upb_test
-+ tests/testmain.cc
-+ tests/test_util.h
-+ tests/upb_test.h)
-+ target_link_libraries(upb_test
-+ handlers
-+ upb)
-+endif()
-+
-+install(FILES ${UPB_HDRS} ${REFLECTION_HDRS} ${LEGACY_MSG_HDRS} ${HANDLERS_HDRS} DESTINATION include/upb)
-+install(FILES ${UPB_PB_HDRS} DESTINATION include/upb/pb)
-+install(FILES ${UPB_JSON_HDRS} DESTINATION include/upb/json)
-+
-+foreach(PROJ ${UBP_PROJECTS})
-+ install(
-+ TARGETS ${PROJ}
-+ RUNTIME DESTINATION bin
-+ LIBRARY DESTINATION lib
-+ ARCHIVE DESTINATION lib
-+ )
-+endforeach()
-\ No newline at end of file
diff --git a/ports/upb/portfile.cmake b/ports/upb/portfile.cmake
index 303587cea..b5a46253c 100644
--- a/ports/upb/portfile.cmake
+++ b/ports/upb/portfile.cmake
@@ -1,29 +1,27 @@
-vcpkg_fail_port_install(ON_TARGET "Windows")
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO protocolbuffers/upb
- REF 9effcbcb27f0a665f9f345030188c0b291e32482
- SHA512 416ff26ec21181d53be23e94203205072152ab3a8e4b3b28d16263a601995fd2d2f8afe5d8cfbecdac8543249482287b9fe6129314f7c9a7880660f5508bb85e
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO protocolbuffers/upb
+ REF 9effcbcb27f0a665f9f345030188c0b291e32482
+ SHA512 416ff26ec21181d53be23e94203205072152ab3a8e4b3b28d16263a601995fd2d2f8afe5d8cfbecdac8543249482287b9fe6129314f7c9a7880660f5508bb85e
HEAD_REF master
- PATCHES fix-cmakelists.patch
-)
-
-vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
- asan UPB_ENABLE_ASAN
- ubsan UPB_ENABLE_UBSAN
- tests ENABLE_TEST
+ PATCHES add-cmake-install.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS ${FEATURE_OPTIONS}
)
vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets()
vcpkg_copy_pdbs()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/debug/include
+ # empty folder
+ ${CURRENT_PACKAGES_DIR}/include/upb/bindings/lua/upb
+)
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/ports/uvatlas/CONTROL b/ports/uvatlas/CONTROL
index 0c0cb84b3..e1621c5b5 100644
--- a/ports/uvatlas/CONTROL
+++ b/ports/uvatlas/CONTROL
@@ -1,4 +1,5 @@
Source: uvatlas
Version: dec2019
Homepage: https://github.com/Microsoft/UVAtlas
-Description: UVAtlas isochart texture atlas
\ No newline at end of file
+Description: UVAtlas isochart texture atlas
+Supports: windows
\ No newline at end of file
diff --git a/ports/vectorclass/CONTROL b/ports/vectorclass/CONTROL
index cc3471358..a5110d95c 100644
--- a/ports/vectorclass/CONTROL
+++ b/ports/vectorclass/CONTROL
@@ -2,3 +2,4 @@ Source: vectorclass
Version: 2.00.01
Homepage: https://github.com/vectorclass/version2
Description: C++ class library for using the Single Instruction Multiple Data (SIMD) instructions in modern Microprocessors
+Supports: !(arm|arm64)
\ No newline at end of file
diff --git a/ports/winreg/CONTROL b/ports/winreg/CONTROL
index 6b798d4d0..0e2cc7188 100644
--- a/ports/winreg/CONTROL
+++ b/ports/winreg/CONTROL
@@ -1,4 +1,5 @@
Source: winreg
Version: 1.2.1-1
Homepage: https://github.com/GiovanniDicanio/WinReg
-Description: High-level C++ wrapper around the Windows Registry C API.
\ No newline at end of file
+Description: High-level C++ wrapper around the Windows Registry C API.
+Supports: windows || uwp
\ No newline at end of file
diff --git a/ports/wintoast/CONTROL b/ports/wintoast/CONTROL
index d9d410796..033a5abdf 100644
--- a/ports/wintoast/CONTROL
+++ b/ports/wintoast/CONTROL
@@ -1,3 +1,4 @@
Source: wintoast
Version: 1.2.0
-Description: WinToast is a lightly library written in C++ which brings a complete integration of the modern toast notifications of Windows 8 & Windows 10.
\ No newline at end of file
+Description: WinToast is a lightly library written in C++ which brings a complete integration of the modern toast notifications of Windows 8 & Windows 10.
+Supports: !uwp
\ No newline at end of file
diff --git a/ports/x-plane/CONTROL b/ports/x-plane/CONTROL
index c151e8719..de1217a60 100644
--- a/ports/x-plane/CONTROL
+++ b/ports/x-plane/CONTROL
@@ -1,3 +1,4 @@
Source: x-plane
Version: 3.0.1-1
Description: The X-Plane Plugin SDK.
+Supports: !x86
\ No newline at end of file
diff --git a/ports/x265/CONTROL b/ports/x265/CONTROL
index 0ed00a54d..c94ba6801 100644
--- a/ports/x265/CONTROL
+++ b/ports/x265/CONTROL
@@ -1,4 +1,4 @@
Source: x265
-Version: 3.2-1
+Version: 3.2-3
Homepage: https://bitbucket.org/multicoreware/x265
Description: x265 is a H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream.
diff --git a/ports/xerces-c/CONTROL b/ports/xerces-c/CONTROL
index d4fc58c4c..c5f379cac 100644
--- a/ports/xerces-c/CONTROL
+++ b/ports/xerces-c/CONTROL
@@ -1,5 +1,5 @@
Source: xerces-c
-Version: 3.2.2-12
+Version: 3.2.2-13
Homepage: https://github.com/apache/xerces-c
Description: Xerces-C++ is a XML parser, for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.
diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake
index 4ab19d126..1f24b672a 100644
--- a/ports/xerces-c/portfile.cmake
+++ b/ports/xerces-c/portfile.cmake
@@ -1,9 +1,9 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO apache/xerces-c
- REF 71cc0e831b522933ae58253fcaf4423a166e6bec #3.2.2
- SHA512 5ddaf84552cd1f685068352c12651780a9f4becd961d8efd0f1f6a21006df00ffb1afe9b9dd86a169f8c57c4f8b651d5477e1accfd7140a7a52aea14b23c9aed
- HEAD_REF trunk
+ REF v3.2.2
+ SHA512 e4b2d3499fb4d1d1bcaf991ee858f352112683084b9cc7855c0e52e7fc8cc982a8e3cd548fa30718af6a6dee40e460d82ffcd3480a50f7e7516b462b2c2080c6
+ HEAD_REF master
PATCHES
disable-tests.patch
remove-dll-export-macro.patch
@@ -57,7 +57,7 @@ configure_file(
${CURRENT_PACKAGES_DIR}/share/xercesc
@ONLY
)
-
+
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
diff --git a/ports/yasm/CONTROL b/ports/yasm/CONTROL
index 5cb349270..bdcaaea9f 100644
--- a/ports/yasm/CONTROL
+++ b/ports/yasm/CONTROL
@@ -2,3 +2,4 @@ Source: yasm
Version: 1.3.0
Homepage: https://github.com/yasm/yasm
Description: Yasm is a complete rewrite of the NASM assembler under the “new” BSD License.
+Supports: windows & !uwp & !arm
\ No newline at end of file
diff --git a/ports/yoga/CONTROL b/ports/yoga/CONTROL
index 52e8498a3..5a0c6d260 100644
--- a/ports/yoga/CONTROL
+++ b/ports/yoga/CONTROL
@@ -2,3 +2,4 @@ Source: yoga
Version: 1.16.0-1
Homepage: https://github.com/facebook/yoga
Description: Yoga is a cross-platform layout engine which implements Flexbox
+Supports: !uwp
diff --git a/ports/z3/CONTROL b/ports/z3/CONTROL
index be11a9d7c..866f2cf5f 100644
--- a/ports/z3/CONTROL
+++ b/ports/z3/CONTROL
@@ -1,4 +1,5 @@
Source: z3
Version: 4.8.6
Homepage: https://github.com/Z3Prover/z3
-Description: Z3 is a theorem prover from Microsoft Research.
\ No newline at end of file
+Description: Z3 is a theorem prover from Microsoft Research.
+Supports: !arm64 && !uwp
diff --git a/ports/zfp/CONTROL b/ports/zfp/CONTROL
index eb9505fa4..164bade9d 100644
--- a/ports/zfp/CONTROL
+++ b/ports/zfp/CONTROL
@@ -1,5 +1,5 @@
Source: zfp
-Version: 0.5.5-1
+Version: 0.5.5-2
Homepage: https://github.com/LLNL/zfp
Description: Zfp is an open source C/C++ library for compressed numerical arrays that support high throughput read and write random access. zfp also supports streaming compression of integer and floating-point data, e.g., for applications that read and write large data sets to and from disk. zfp is primarily written in C and C++ but also includes Python and Fortran bindings.
diff --git a/ports/zfp/portfile.cmake b/ports/zfp/portfile.cmake
index 7c9af2547..d189762b7 100644
--- a/ports/zfp/portfile.cmake
+++ b/ports/zfp/portfile.cmake
@@ -31,12 +31,16 @@ vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
+# Rename problematic root include "bitstream.h"; conflicts with x265's private headers
+file(RENAME ${CURRENT_PACKAGES_DIR}/include/bitstream.h ${CURRENT_PACKAGES_DIR}/include/zfp/bitstream.h)
+vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/zfp.h "\"bitstream.h\"" "\"zfp/bitstream.h\"")
+
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
\ No newline at end of file
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake
index e549f3fa1..5b596cba2 100644
--- a/scripts/buildsystems/vcpkg.cmake
+++ b/scripts/buildsystems/vcpkg.cmake
@@ -67,7 +67,7 @@ else()
elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017$")
set(_VCPKG_TARGET_TRIPLET_ARCH x86)
elseif(CMAKE_GENERATOR MATCHES "^Visual Studio 16 2019$")
- set(_VCPKG_TARGET_TRIPLET_ARCH x86)
+ set(_VCPKG_TARGET_TRIPLET_ARCH x64)
else()
find_program(_VCPKG_CL cl)
if(_VCPKG_CL MATCHES "amd64/cl.exe$" OR _VCPKG_CL MATCHES "x64/cl.exe$")
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index e17703b3b..b658bcea3 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -88,6 +88,11 @@ argtable2:x64-uwp=fail
arrow:arm64-windows=fail
arrow:x64-linux=fail
arrow:x86-windows=fail
+asiosdk:x64-linux=fail
+asiosdk:x64-osx=fail
+asiosdk:x64-uwp=fail
+asiosdk:arm64-windows=fail
+asiosdk:arm-uwp=fail
asmjit:arm64-windows=fail
asmjit:arm-uwp=fail
asyncplusplus:arm-uwp=fail
@@ -112,6 +117,7 @@ aws-lambda-cpp:x64-uwp=fail
aws-lambda-cpp:x64-windows=fail
aws-lambda-cpp:x64-windows-static=fail
aws-lambda-cpp:x86-windows=fail
+aws-lambda-cpp:x64-osx=fail
aws-sdk-cpp:x64-linux=ignore
azure-c-shared-utility:arm-uwp=fail
azure-c-shared-utility:x64-uwp=fail
@@ -218,6 +224,9 @@ chakracore:x64-linux=fail
chakracore:x64-osx=fail
chakracore:x64-uwp=fail
chakracore:x64-windows-static=fail
+# DCMTK currently has a vendored copy of libcharls.a, which causes conflicts with charls (TODO: use charls' copy)
+charls:x64-linux=skip
+charls:x64-osx=skip
chartdir:arm64-windows=fail
chartdir:arm-uwp=fail
chartdir:x64-uwp=fail
@@ -486,8 +495,6 @@ fribidi:arm-uwp=fail
fribidi:x64-linux=fail
fribidi:x64-osx=fail
fribidi:x64-uwp=fail
-ftgl:x64-linux=fail
-ftgl:x64-osx=fail
ftgl:x64-uwp=fail
fuzzylite:arm-uwp=fail
fuzzylite:x64-linux=fail
@@ -650,7 +657,6 @@ jemalloc:x64-uwp=fail
jemalloc:x64-windows-static=fail
jinja2cpplight:arm-uwp=fail
jinja2cpplight:x64-uwp=fail
-jsonnet:x64-osx=fail
kd-soap:x64-linux=fail
kd-soap:x64-osx=fail
kd-soap:x64-windows-static=fail
@@ -781,12 +787,15 @@ libmariadb:x64-uwp = skip
libmariadb:x64-windows = skip
libmariadb:x64-windows-static = skip
libmariadb:x86-windows = skip
-libmesh:arm64-windows=fail
-libmesh:arm-uwp=fail
-libmesh:x64-uwp=fail
-libmesh:x64-windows=fail
-libmesh:x64-windows-static=fail
-libmesh:x86-windows=fail
+# libmesh installs tons of problematic files that conflict with other ports (boost, eigen, etc)
+libmesh:arm64-windows=skip
+libmesh:arm-uwp=skip
+libmesh:x64-uwp=skip
+libmesh:x64-windows=skip
+libmesh:x64-windows-static=skip
+libmesh:x86-windows=skip
+libmesh:x64-osx=skip
+libmesh:x64-linux=skip
libmicrohttpd:arm64-windows=fail
libmicrohttpd:arm-uwp=fail
libmicrohttpd:x64-linux=fail
@@ -1016,6 +1025,10 @@ mecab:x64-uwp = skip
mecab:x64-windows = skip
mecab:x64-windows-static = skip
mecab:x86-windows = skip
+memorymodule:arm-uwp=fail
+memorymodule:x64-linux=fail
+memorymodule:x64-osx=fail
+memorymodule:x64-uwp=fail
meschach:arm-uwp=fail
meschach:x64-linux=fail
meschach:x64-osx=fail
@@ -1049,11 +1062,18 @@ minizip:x64-uwp=fail
mlpack:x64-linux=ignore
mman:x64-linux=fail
mman:x64-osx=fail
-mmx:x64-windows=ignore
-mmx:x64-windows-static=ignore
-mmx:x86-windows=ignore
+# mmx installs many problematic headers, such as `json.h` and `sched.h`
+mmx:x64-windows=skip
+mmx:x64-windows-static=skip
+mmx:x86-windows=skip
+mmx:x64-linux=skip
+mmx:x64-osx=skip
+mmx:arm-uwp=skip
+mmx:x64-uwp=skip
+mmx:arm64-windows=skip
mongo-c-driver:arm64-windows=fail
-mongo-c-driver:x64-osx=fail
+# Flaky strange linker error
+mongo-c-driver:x64-osx=skip
mongoose:arm-uwp=fail
mongoose:x64-uwp=fail
monkeys-audio:arm64-windows=fail
@@ -1519,7 +1539,6 @@ sdformat6:x64-linux=ignore
sdl1:arm-uwp=fail
sdl1:x64-uwp=fail
sdl1:x64-osx=fail
-sdl2-gfx:arm64-windows=fail
sdl2-gfx:x64-linux=fail
sdl2-gfx:x64-osx=fail
sdl2-image:arm-uwp=fail
@@ -1528,6 +1547,8 @@ sdl2-mixer:arm-uwp=fail
sdl2-mixer:x64-uwp=fail
sdl2-net:arm-uwp=fail
sdl2-net:x64-uwp=fail
+seal:arm-uwp=fail
+seal:x64-uwp=fail
secp256k1:x64-linux=fail
secp256k1:x64-osx=fail
selene:x64-linux=ignore
@@ -1713,12 +1734,8 @@ unrar:x64-linux=fail
unrar:x64-osx=fail
unrar:x64-uwp=fail
unrar:x64-windows-static=fail
-upb:arm64-windows=fail
upb:arm-uwp=fail
upb:x64-uwp=fail
-upb:x64-windows=fail
-upb:x64-windows-static=fail
-upb:x86-windows=fail
urdfdom:x64-windows-static=fail
usd:x64-linux=ignore
usd:x86-windows=fail
diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake
index 3a1818bf5..724644abc 100644
--- a/scripts/cmake/vcpkg_common_definitions.cmake
+++ b/scripts/cmake/vcpkg_common_definitions.cmake
@@ -64,7 +64,16 @@ else()
endif()
#Helper variables for libraries
-if(VCPKG_TARGET_IS_WINDOWS)
+if(VCPKG_TARGET_IS_MINGW)
+ set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
+ set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a")
+ set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
+ set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
+ set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
+ set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib")
+ set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib")
+ set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "")
+elseif(VCPKG_TARGET_IS_WINDOWS)
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib")
set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
@@ -74,15 +83,6 @@ if(VCPKG_TARGET_IS_WINDOWS)
set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "")
set(VCPKG_FIND_LIBRARY_SUFFIXES ".lib" ".dll") #This is a slight modification to CMakes value which does not include ".dll".
set(VCPKG_FIND_LIBRARY_PREFIXES "" "lib") #This is a slight modification to CMakes value which does not include "lib".
-elseif(VCPKG_TARGET_IS_MINGW)
- set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
- set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a")
- set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll")
- set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib")
- set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib")
- set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib")
- set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib")
- set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "")
elseif(VCPKG_TARGET_IS_OSX)
set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a")
set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "")
diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake
index 038e50b36..cb17ece21 100644
--- a/scripts/cmake/vcpkg_find_acquire_program.cmake
+++ b/scripts/cmake/vcpkg_find_acquire_program.cmake
@@ -110,7 +110,7 @@ function(vcpkg_find_acquire_program VAR)
set(SUBDIR "python2")
set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR})
set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi")
- set(ARCHIVE "python2.msi")
+ set(ARCHIVE "python-2.7.16.msi")
set(HASH c34a6fa2438682104dccb53650a2bdb79eac7996deff075201a0f71bb835d60d3ed866652a1931f15a29510fe8e1009ac04e423b285122d2e5747fefc4c10254)
else()
set(PROGNAME python2)
@@ -127,7 +127,10 @@ function(vcpkg_find_acquire_program VAR)
set(PROGNAME jom)
set(SUBDIR "jom-1.1.3")
set(PATHS ${DOWNLOADS}/tools/jom/${SUBDIR})
- set(URL "http://download.qt.io/official_releases/jom/jom_1_1_3.zip")
+ set(URL
+ "http://download.qt.io/official_releases/jom/jom_1_1_3.zip"
+ "http://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_1_1_3.zip"
+ )
set(ARCHIVE "jom_1_1_3.zip")
set(HASH 5b158ead86be4eb3a6780928d9163f8562372f30bde051d8c281d81027b766119a6e9241166b91de0aa6146836cea77e5121290e62e31b7a959407840fc57b33)
elseif(VAR MATCHES "7Z")
@@ -313,7 +316,7 @@ function(vcpkg_find_acquire_program VAR)
file(COPY ${ARCHIVE_PATH} DESTINATION ${PROG_PATH_SUBDIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
endif()
else()
- get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT)
+ get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} LAST_EXT)
string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION)
if(ARCHIVE_EXTENSION STREQUAL ".msi")
file(TO_NATIVE_PATH "${ARCHIVE_PATH}" ARCHIVE_NATIVE_PATH)
diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
index a042d9124..d72381be5 100644
--- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
+++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
@@ -30,7 +30,6 @@ function(vcpkg_fixup_cmake_targets)
set(_vfct_TARGET_PATH share/${PORT})
endif()
-
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(EXECUTABLE_SUFFIX "\\.exe")
else()
@@ -49,7 +48,6 @@ function(vcpkg_fixup_cmake_targets)
set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${_vfct_CONFIG_PATH})
set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${_vfct_CONFIG_PATH})
-
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
if(NOT EXISTS ${DEBUG_CONFIG})
message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.")
diff --git a/scripts/get_triplet_environment.cmake b/scripts/get_triplet_environment.cmake
deleted file mode 100644
index 3b0b9fbef..000000000
--- a/scripts/get_triplet_environment.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-include(${CMAKE_TRIPLET_FILE})
-if (DEFINED VCPKG_ENV_OVERRIDES_FILE)
- include(${VCPKG_ENV_OVERRIDES_FILE})
-endif()
-
-# GUID used as a flag - "cut here line"
-message("c35112b6-d1ba-415b-aa5d-81de856ef8eb")
-message("VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}")
-message("VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}")
-message("VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}")
-message("VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}")
-message("VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}")
-message("VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
-message("VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}")
-message("VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}")
-message("VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE}")
diff --git a/scripts/ports.cmake b/scripts/ports.cmake
index 1aea1ffa3..20e59a184 100644
--- a/scripts/ports.cmake
+++ b/scripts/ports.cmake
@@ -78,13 +78,9 @@ if(CMD MATCHES "^BUILD$")
include(${CMAKE_TRIPLET_FILE})
- if (DEFINED VCPKG_ENV_OVERRIDES_FILE)
- include(${VCPKG_ENV_OVERRIDES_FILE})
- endif()
-
- if (DEFINED VCPKG_PORT_TOOLCHAINS)
- foreach(VCPKG_PORT_TOOLCHAIN ${VCPKG_PORT_TOOLCHAINS})
- include(${VCPKG_PORT_TOOLCHAIN})
+ if (DEFINED VCPKG_PORT_CONFIGS)
+ foreach(VCPKG_PORT_CONFIG ${VCPKG_PORT_CONFIGS})
+ include(${VCPKG_PORT_CONFIG})
endforeach()
endif()
@@ -115,6 +111,9 @@ if(CMD MATCHES "^BUILD$")
if (DEFINED VCPKG_POLICY_EMPTY_INCLUDE_FOLDER)
file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyEmptyIncludeFolder: ${VCPKG_POLICY_EMPTY_INCLUDE_FOLDER}\n")
endif()
+ if (DEFINED VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS)
+ file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyAllowRestrictedHeaders: ${VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS}\n")
+ endif()
if (DEFINED VCPKG_HEAD_VERSION)
file(APPEND ${BUILD_INFO_FILE_PATH} "Version: ${VCPKG_HEAD_VERSION}\n")
endif()
diff --git a/scripts/vcpkg_get_dep_info.cmake b/scripts/vcpkg_get_dep_info.cmake
new file mode 100644
index 000000000..92212b82d
--- /dev/null
+++ b/scripts/vcpkg_get_dep_info.cmake
@@ -0,0 +1,19 @@
+function(vcpkg_get_dep_info PORT VCPKG_TRIPLET_ID)
+ message("d8187afd-ea4a-4fc3-9aa4-a6782e1ed9af")
+ vcpkg_triplet_file(${VCPKG_TRIPLET_ID})
+
+ # GUID used as a flag - "cut here line"
+ message("c35112b6-d1ba-415b-aa5d-81de856ef8eb
+VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}
+VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}
+VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}
+VCPKG_LIBRARY_LINKAGE=${VCPKG_LIBRARY_LINKAGE}
+VCPKG_CRT_LINKAGE=${VCPKG_CRT_LINKAGE}
+VCPKG_DEP_INFO_OVERRIDE_VARS=${VCPKG_DEP_INFO_OVERRIDE_VARS}
+CMAKE_HOST_SYSTEM_NAME=${CMAKE_HOST_SYSTEM_NAME}
+CMAKE_HOST_SYSTEM_PROCESSOR=${CMAKE_HOST_SYSTEM_PROCESSOR}
+CMAKE_HOST_SYSTEM_VERSION=${CMAKE_HOST_SYSTEM_VERSION}
+CMAKE_HOST_SYSTEM=${CMAKE_HOST_SYSTEM}
+e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f
+8c504940-be29-4cba-9f8f-6cd83e9d87b7")
+endfunction()
diff --git a/scripts/vcpkg_get_tags.cmake b/scripts/vcpkg_get_tags.cmake
new file mode 100644
index 000000000..ccdc4fea6
--- /dev/null
+++ b/scripts/vcpkg_get_tags.cmake
@@ -0,0 +1,28 @@
+function(vcpkg_get_tags PORT FEATURES VCPKG_TRIPLET_ID VCPKG_ABI_SETTINGS_FILE)
+ message("d8187afd-ea4a-4fc3-9aa4-a6782e1ed9af")
+ vcpkg_triplet_file(${VCPKG_TRIPLET_ID})
+
+ # GUID used as a flag - "cut here line"
+ message("c35112b6-d1ba-415b-aa5d-81de856ef8eb
+VCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}
+VCPKG_CMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}
+VCPKG_CMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}
+VCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}
+VCPKG_VISUAL_STUDIO_PATH=${VCPKG_VISUAL_STUDIO_PATH}
+VCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}
+VCPKG_BUILD_TYPE=${VCPKG_BUILD_TYPE}
+e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f")
+
+ # Just to enforce the user didn't set it in the triplet file
+ if (DEFINED VCPKG_PUBLIC_ABI_OVERRIDE)
+ set(VCPKG_PUBLIC_ABI_OVERRIDE)
+ message(WARNING "VCPKG_PUBLIC_ABI_OVERRIDE set in the triplet will be ignored.")
+ endif()
+ include("${VCPKG_ABI_SETTINGS_FILE}" OPTIONAL)
+
+ message("c35112b6-d1ba-415b-aa5d-81de856ef8eb
+VCPKG_PUBLIC_ABI_OVERRIDE=${VCPKG_PUBLIC_ABI_OVERRIDE}
+VCPKG_ENV_PASSTHROUGH=${VCPKG_ENV_PASSTHROUGH}
+e1e74b5c-18cb-4474-a6bd-5c1c8bc81f3f
+8c504940-be29-4cba-9f8f-6cd83e9d87b7")
+endfunction()
diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt
index 80548a819..f9cb2e7e9 100644
--- a/toolsrc/VERSION.txt
+++ b/toolsrc/VERSION.txt
@@ -1 +1 @@
-"2020.01.17"
+"2020.01.18"
diff --git a/toolsrc/include/vcpkg-test/mockcmakevarprovider.h b/toolsrc/include/vcpkg-test/mockcmakevarprovider.h
new file mode 100644
index 000000000..03defdcdd
--- /dev/null
+++ b/toolsrc/include/vcpkg-test/mockcmakevarprovider.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include
+
+namespace vcpkg::Test
+{
+ struct MockCMakeVarProvider : CMakeVars::CMakeVarProvider
+ {
+ void load_generic_triplet_vars(const Triplet& triplet) const override { generic_triplet_vars[triplet] = {}; }
+
+ void load_dep_info_vars(Span specs) const override
+ {
+ for (auto&& spec : specs)
+ dep_info_vars[spec] = {};
+ }
+
+ void load_tag_vars(Span specs,
+ const PortFileProvider::PortFileProvider& port_provider) const override
+ {
+ for (auto&& spec : specs)
+ tag_vars[spec.package_spec] = {};
+ Util::unused(port_provider);
+ }
+
+ Optional&> get_generic_triplet_vars(
+ const Triplet& triplet) const override;
+
+ Optional&> get_dep_info_vars(
+ const PackageSpec& spec) const override;
+
+ Optional&> get_tag_vars(
+ const PackageSpec& spec) const override;
+
+ mutable std::unordered_map> dep_info_vars;
+ mutable std::unordered_map> tag_vars;
+ mutable std::unordered_map> generic_triplet_vars;
+ };
+}
diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h
index 259b0ba7e..088a39b7d 100644
--- a/toolsrc/include/vcpkg-test/util.h
+++ b/toolsrc/include/vcpkg-test/util.h
@@ -17,6 +17,12 @@
namespace vcpkg::Test
{
+ std::unique_ptr make_control_file(
+ const char* name,
+ const char* depends,
+ const std::vector>& features = {},
+ const std::vector& default_features = {});
+
std::unique_ptr make_status_pgh(const char* name,
const char* depends = "",
const char* default_features = "",
@@ -27,6 +33,23 @@ namespace vcpkg::Test
const char* depends = "",
const char* triplet = "x86-windows");
+ ///
+ /// Map of source control files by their package name.
+ ///
+ struct PackageSpecMap
+ {
+ std::unordered_map map;
+ Triplet triplet;
+ PackageSpecMap(const Triplet& t = Triplet::X86_WINDOWS) noexcept : triplet(t) {}
+
+ PackageSpec emplace(const char* name,
+ const char* depends = "",
+ const std::vector>& features = {},
+ const std::vector& default_features = {});
+
+ PackageSpec emplace(vcpkg::SourceControlFileLocation&& scfl);
+ };
+
vcpkg::PackageSpec unsafe_pspec(std::string name, vcpkg::Triplet t = vcpkg::Triplet::X86_WINDOWS);
template
diff --git a/toolsrc/include/vcpkg/base/graphs.h b/toolsrc/include/vcpkg/base/graphs.h
index 683735b1c..f368a872d 100644
--- a/toolsrc/include/vcpkg/base/graphs.h
+++ b/toolsrc/include/vcpkg/base/graphs.h
@@ -1,11 +1,10 @@
#pragma once
+#include
#include
-#include
-#include
+#include
#include
-#include
#include
namespace vcpkg::Graphs
@@ -95,10 +94,8 @@ namespace vcpkg::Graphs
}
}
- template
- std::vector topological_sort(VertexContainer starting_vertices,
- const AdjacencyProvider& f,
- Randomizer* randomizer)
+ template
+ std::vector topological_sort(Range starting_vertices, const AdjacencyProvider& f, Randomizer* randomizer)
{
std::vector sorted;
std::unordered_map exploration_status;
@@ -112,40 +109,4 @@ namespace vcpkg::Graphs
return sorted;
}
-
- template
- struct Graph final : AdjacencyProvider
- {
- public:
- void add_vertex(const V& v) { this->m_edges[v]; }
-
- void add_edge(const V& u, const V& v)
- {
- this->m_edges[v];
- this->m_edges[u].insert(v);
- }
-
- std::vector vertex_list() const
- {
- std::vector vertex_list;
- for (auto&& vertex : this->m_edges)
- vertex_list.emplace_back(vertex.first);
- return vertex_list;
- }
-
- std::vector adjacency_list(const V& vertex) const override
- {
- const std::unordered_set& as_set = this->m_edges.at(vertex);
- return std::vector(as_set.cbegin(), as_set.cend()); // TODO: Avoid redundant copy
- }
-
- V load_vertex_data(const V& vertex) const override { return vertex; }
-
- // Note: this function indicates how tied this template is to the exact type it will be templated upon.
- // Possible fix: This type shouldn't implement to_string() and should instead be derived from?
- std::string to_string(const V& spec) const override { return spec->spec.to_string(); }
-
- private:
- std::unordered_map> m_edges;
- };
}
diff --git a/toolsrc/include/vcpkg/base/span.h b/toolsrc/include/vcpkg/base/span.h
index 4c805e2b4..a5ba884af 100644
--- a/toolsrc/include/vcpkg/base/span.h
+++ b/toolsrc/include/vcpkg/base/span.h
@@ -23,14 +23,13 @@ namespace vcpkg
constexpr Span(std::nullptr_t) noexcept : m_ptr(nullptr), m_count(0) {}
constexpr Span(pointer ptr, size_t count) noexcept : m_ptr(ptr), m_count(count) {}
constexpr Span(pointer ptr_begin, pointer ptr_end) noexcept : m_ptr(ptr_begin), m_count(ptr_end - ptr_begin) {}
- constexpr Span(std::initializer_list l) noexcept : m_ptr(l.begin()), m_count(l.size()) {}
template
constexpr Span(T (&arr)[N]) noexcept : m_ptr(arr), m_count(N)
{
}
- template
+ template>>
constexpr Span(std::remove_const_t (&arr)[N]) noexcept : m_ptr(arr), m_count(N)
{
}
diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h
index ad628e071..849781b95 100644
--- a/toolsrc/include/vcpkg/base/util.h
+++ b/toolsrc/include/vcpkg/base/util.h
@@ -18,7 +18,7 @@ namespace vcpkg::Util
namespace Vectors
{
template>
- void concatenate(std::vector* augend, const Container& addend)
+ void append(std::vector* augend, const Container& addend)
{
augend->insert(augend->end(), addend.begin(), addend.end());
}
@@ -122,6 +122,12 @@ namespace vcpkg::Util
std::sort(begin(cont), end(cont), comp);
}
+ template
+ bool any_of(Range&& rng, Pred pred)
+ {
+ return std::any_of(rng.begin(), rng.end(), std::move(pred));
+ }
+
template
Range&& sort_unique_erase(Range&& cont)
{
@@ -220,4 +226,10 @@ namespace vcpkg::Util
void unused(const Ts&...)
{
}
+
+ template
+ T copy(const T& t)
+ {
+ return t;
+ }
}
diff --git a/toolsrc/include/vcpkg/binaryparagraph.h b/toolsrc/include/vcpkg/binaryparagraph.h
index 457205384..223a1fb86 100644
--- a/toolsrc/include/vcpkg/binaryparagraph.h
+++ b/toolsrc/include/vcpkg/binaryparagraph.h
@@ -13,8 +13,14 @@ namespace vcpkg
{
BinaryParagraph();
explicit BinaryParagraph(Parse::RawParagraph fields);
- BinaryParagraph(const SourceParagraph& spgh, const Triplet& triplet, const std::string& abi_tag);
- BinaryParagraph(const SourceParagraph& spgh, const FeatureParagraph& fpgh, const Triplet& triplet);
+ BinaryParagraph(const SourceParagraph& spgh,
+ const Triplet& triplet,
+ const std::string& abi_tag,
+ const std::vector& deps);
+ BinaryParagraph(const SourceParagraph& spgh,
+ const FeatureParagraph& fpgh,
+ const Triplet& triplet,
+ const std::vector& deps);
std::string displayname() const;
@@ -30,6 +36,7 @@ namespace vcpkg
std::vector default_features;
std::vector depends;
std::string abi;
+ Type type;
};
struct BinaryControlFile
diff --git a/toolsrc/include/vcpkg/build.h b/toolsrc/include/vcpkg/build.h
index be5424296..57663ebe5 100644
--- a/toolsrc/include/vcpkg/build.h
+++ b/toolsrc/include/vcpkg/build.h
@@ -1,5 +1,6 @@
#pragma once
+#include
#include
#include
#include
@@ -21,6 +22,7 @@ namespace vcpkg::Build
{
void perform_and_exit_ex(const FullPackageSpec& full_spec,
const SourceControlFileLocation& scfl,
+ const PortFileProvider::PathsPortFileProvider& provider,
const ParsedArguments& options,
const VcpkgPaths& paths);
@@ -88,6 +90,12 @@ namespace vcpkg::Build
YES
};
+ enum class PurgeDecompressFailure
+ {
+ NO = 0,
+ YES
+ };
+
struct BuildPackageOptions
{
UseHeadVersion use_head_version;
@@ -99,6 +107,7 @@ namespace vcpkg::Build
DownloadTool download_tool;
BinaryCaching binary_caching;
FailOnTombstone fail_on_tombstone;
+ PurgeDecompressFailure purge_decompress_failure;
};
enum class BuildResult
@@ -130,12 +139,9 @@ namespace vcpkg::Build
///
struct PreBuildInfo
{
- ///
- /// Runs the triplet file in a "capture" mode to create a PreBuildInfo
- ///
- static PreBuildInfo from_triplet_file(const VcpkgPaths& paths,
- const Triplet& triplet,
- Optional port = nullopt);
+ PreBuildInfo(const VcpkgPaths& paths,
+ const Triplet& triplet,
+ const std::unordered_map& cmakevars);
std::string triplet_abi_tag;
std::string target_architecture;
@@ -193,12 +199,18 @@ namespace vcpkg::Build
BuildPackageConfig(const SourceControlFileLocation& scfl,
const Triplet& triplet,
const BuildPackageOptions& build_package_options,
- const std::set& feature_list)
+ const CMakeVars::CMakeVarProvider& var_provider,
+ const std::unordered_map>& feature_dependencies,
+ const std::vector& package_dependencies,
+ const std::vector& feature_list)
: scfl(scfl)
, scf(*scfl.source_control_file)
, triplet(triplet)
, port_dir(scfl.source_location)
, build_package_options(build_package_options)
+ , var_provider(var_provider)
+ , feature_dependencies(feature_dependencies)
+ , package_dependencies(package_dependencies)
, feature_list(feature_list)
{
}
@@ -206,9 +218,13 @@ namespace vcpkg::Build
const SourceControlFileLocation& scfl;
const SourceControlFile& scf;
const Triplet& triplet;
- fs::path port_dir;
+ const fs::path& port_dir;
const BuildPackageOptions& build_package_options;
- const std::set& feature_list;
+ const CMakeVars::CMakeVarProvider& var_provider;
+
+ const std::unordered_map>& feature_dependencies;
+ const std::vector& package_dependencies;
+ const std::vector& feature_list;
};
ExtendedBuildResult build_package(const VcpkgPaths& paths,
@@ -223,6 +239,7 @@ namespace vcpkg::Build
ONLY_RELEASE_CRT,
EMPTY_INCLUDE_FOLDER,
ALLOW_OBSOLETE_MSVCRT,
+ ALLOW_RESTRICTED_HEADERS,
// Must be last
COUNT,
};
@@ -234,6 +251,7 @@ namespace vcpkg::Build
BuildPolicy::ONLY_RELEASE_CRT,
BuildPolicy::EMPTY_INCLUDE_FOLDER,
BuildPolicy::ALLOW_OBSOLETE_MSVCRT,
+ BuildPolicy::ALLOW_RESTRICTED_HEADERS,
};
const std::string& to_string(BuildPolicy policy);
diff --git a/toolsrc/include/vcpkg/cmakevars.h b/toolsrc/include/vcpkg/cmakevars.h
new file mode 100644
index 000000000..c634866d0
--- /dev/null
+++ b/toolsrc/include/vcpkg/cmakevars.h
@@ -0,0 +1,69 @@
+#pragma once
+
+#include
+#include
+
+#include
+#include
+
+namespace vcpkg::CMakeVars
+{
+ struct CMakeVarProvider
+ {
+ virtual Optional&> get_generic_triplet_vars(
+ const Triplet& triplet) const = 0;
+
+ virtual Optional&> get_dep_info_vars(
+ const PackageSpec& spec) const = 0;
+
+ virtual Optional&> get_tag_vars(
+ const PackageSpec& spec) const = 0;
+
+ virtual void load_generic_triplet_vars(const Triplet& triplet) const = 0;
+
+ virtual void load_dep_info_vars(Span specs) const = 0;
+
+ virtual void load_tag_vars(Span specs,
+ const PortFileProvider::PortFileProvider& port_provider) const = 0;
+ };
+
+ struct TripletCMakeVarProvider : Util::ResourceBase, CMakeVarProvider
+ {
+ private:
+ fs::path create_tag_extraction_file(
+ const Span>& spec_abi_settings) const;
+
+ fs::path create_dep_info_extraction_file(const Span specs) const;
+
+ void launch_and_split(const fs::path& script_path,
+ std::vector>>& vars) const;
+
+ public:
+ explicit TripletCMakeVarProvider(const vcpkg::VcpkgPaths& paths) : paths(paths) {}
+
+ void load_generic_triplet_vars(const Triplet& triplet) const override;
+
+ void load_dep_info_vars(Span specs) const override;
+
+ void load_tag_vars(Span specs,
+ const PortFileProvider::PortFileProvider& port_provider) const override;
+
+ Optional&> get_generic_triplet_vars(
+ const Triplet& triplet) const override;
+
+ Optional&> get_dep_info_vars(
+ const PackageSpec& spec) const override;
+
+ Optional&> get_tag_vars(
+ const PackageSpec& spec) const override;
+
+ private:
+ const VcpkgPaths& paths;
+ const fs::path& cmake_exe_path = paths.get_tool_exe(Tools::CMAKE);
+ const fs::path get_tags_path = paths.scripts / "vcpkg_get_tags.cmake";
+ const fs::path get_dep_info_path = paths.scripts / "vcpkg_get_dep_info.cmake";
+ mutable std::unordered_map> dep_resolution_vars;
+ mutable std::unordered_map> tag_vars;
+ mutable std::unordered_map> generic_triplet_vars;
+ };
+}
diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h
index e9018b1b8..eb9d42b6d 100644
--- a/toolsrc/include/vcpkg/dependencies.h
+++ b/toolsrc/include/vcpkg/dependencies.h
@@ -3,7 +3,9 @@
#include
#include
#include
+#include
#include
+#include
#include
#include
@@ -43,15 +45,12 @@ namespace vcpkg::Dependencies
InstallPlanAction() noexcept;
- InstallPlanAction(InstalledPackageView&& spghs,
- const std::set& features,
- const RequestType& request_type);
+ InstallPlanAction(InstalledPackageView&& spghs, const RequestType& request_type);
InstallPlanAction(const PackageSpec& spec,
const SourceControlFileLocation& scfl,
- const std::set& features,
const RequestType& request_type,
- std::vector&& dependencies);
+ std::unordered_map>&& dependencies);
std::string displayname() const;
@@ -63,9 +62,11 @@ namespace vcpkg::Dependencies
InstallPlanType plan_type;
RequestType request_type;
Build::BuildPackageOptions build_options;
- std::set feature_list;
- std::vector computed_dependencies;
+ std::unordered_map> feature_dependencies;
+ std::vector package_dependencies;
+
+ std::vector feature_list;
};
enum class RemovePlanType
@@ -87,15 +88,14 @@ namespace vcpkg::Dependencies
RequestType request_type;
};
- struct AnyAction
+ struct ActionPlan
{
- AnyAction(InstallPlanAction&& iplan) : install_action(std::move(iplan)) {}
- AnyAction(RemovePlanAction&& rplan) : remove_action(std::move(rplan)) {}
+ bool empty() const { return remove_actions.empty() && already_installed.empty() && install_actions.empty(); }
+ size_t size() const { return remove_actions.size() + already_installed.size() + install_actions.size(); }
- Optional install_action;
- Optional remove_action;
-
- const PackageSpec& spec() const;
+ std::vector remove_actions;
+ std::vector already_installed;
+ std::vector install_actions;
};
enum class ExportPlanType
@@ -127,80 +127,36 @@ namespace vcpkg::Dependencies
Optional m_installed_package;
};
- struct PortFileProvider
- {
- virtual Optional get_control_file(const std::string& src_name) const = 0;
- virtual std::vector load_all_control_files() const = 0;
- };
-
- struct MapPortFileProvider : Util::ResourceBase, PortFileProvider
- {
- explicit MapPortFileProvider(const std::unordered_map& map);
- Optional get_control_file(const std::string& src_name) const override;
- std::vector load_all_control_files() const override;
-
- private:
- const std::unordered_map& ports;
- };
-
- struct PathsPortFileProvider : Util::ResourceBase, PortFileProvider
- {
- explicit PathsPortFileProvider(const vcpkg::VcpkgPaths& paths,
- const std::vector* ports_dirs_paths);
- Optional get_control_file(const std::string& src_name) const override;
- std::vector load_all_control_files() const override;
-
- private:
- Files::Filesystem& filesystem;
- std::vector ports_dirs;
- mutable std::unordered_map cache;
- };
-
struct ClusterGraph;
- struct GraphPlan;
struct CreateInstallPlanOptions
{
Graphs::Randomizer* randomizer = nullptr;
};
- struct PackageGraph
- {
- PackageGraph(const PortFileProvider& provider, const StatusParagraphs& status_db);
- ~PackageGraph();
-
- void install(const FeatureSpec& spec,
- const std::unordered_set& prevent_default_features = {}) const;
- void upgrade(const PackageSpec& spec) const;
-
- std::vector serialize(const CreateInstallPlanOptions& options = {}) const;
-
- private:
- std::unique_ptr m_graph_plan;
- std::unique_ptr m_graph;
- };
-
std::vector create_remove_plan(const std::vector& specs,
const StatusParagraphs& status_db);
std::vector create_export_plan(const std::vector& specs,
const StatusParagraphs& status_db);
- std::vector create_feature_install_plan(
- const std::unordered_map& map,
- const std::vector& specs,
- const StatusParagraphs& status_db);
-
/// Figure out which actions are required to install features specifications in `specs`.
/// Contains the ports of the current environment.
/// Feature specifications to resolve dependencies for.
/// Status of installed packages in the current environment.
- std::vector create_feature_install_plan(const PortFileProvider& provider,
- const std::vector& specs,
- const StatusParagraphs& status_db,
- const CreateInstallPlanOptions& options = {});
+ ActionPlan create_feature_install_plan(const PortFileProvider::PortFileProvider& provider,
+ const CMakeVars::CMakeVarProvider& var_provider,
+ const std::vector& specs,
+ const StatusParagraphs& status_db,
+ const CreateInstallPlanOptions& options = {});
- void print_plan(const std::vector& action_plan,
+ ActionPlan create_upgrade_plan(const PortFileProvider::PortFileProvider& provider,
+ const CMakeVars::CMakeVarProvider& var_provider,
+ const std::vector& specs,
+ const StatusParagraphs& status_db,
+ const CreateInstallPlanOptions& options = {});
+
+ void print_plan(const ActionPlan& action_plan,
const bool is_recursive = true,
const fs::path& default_ports_dir = "");
}
diff --git a/toolsrc/include/vcpkg/install.h b/toolsrc/include/vcpkg/install.h
index 2e92764dc..e020c8653 100644
--- a/toolsrc/include/vcpkg/install.h
+++ b/toolsrc/include/vcpkg/install.h
@@ -20,7 +20,7 @@ namespace vcpkg::Install
struct SpecSummary
{
- SpecSummary(const PackageSpec& spec, const Dependencies::AnyAction* action);
+ SpecSummary(const PackageSpec& spec, const Dependencies::InstallPlanAction* action);
const BinaryParagraph* get_binary_paragraph() const;
@@ -28,7 +28,7 @@ namespace vcpkg::Install
Build::ExtendedBuildResult build_result;
vcpkg::Chrono::ElapsedTime timing;
- const Dependencies::AnyAction* action;
+ const Dependencies::InstallPlanAction* action;
};
struct InstallSummary
@@ -58,8 +58,9 @@ namespace vcpkg::Install
};
Build::ExtendedBuildResult perform_install_plan_action(const VcpkgPaths& paths,
- const Dependencies::InstallPlanAction& action,
- StatusParagraphs& status_db);
+ Dependencies::InstallPlanAction& action,
+ StatusParagraphs& status_db,
+ const CMakeVars::CMakeVarProvider& var_provider);
enum class InstallResult
{
@@ -74,10 +75,11 @@ namespace vcpkg::Install
const BinaryControlFile& binary_paragraph,
StatusParagraphs* status_db);
- InstallSummary perform(const std::vector& action_plan,
+ InstallSummary perform(Dependencies::ActionPlan& action_plan,
const KeepGoing keep_going,
const VcpkgPaths& paths,
- StatusParagraphs& status_db);
+ StatusParagraphs& status_db,
+ const CMakeVars::CMakeVarProvider& var_provider);
extern const CommandStructure COMMAND_STRUCTURE;
diff --git a/toolsrc/include/vcpkg/logicexpression.h b/toolsrc/include/vcpkg/logicexpression.h
index 8795971b9..3a3d0debe 100644
--- a/toolsrc/include/vcpkg/logicexpression.h
+++ b/toolsrc/include/vcpkg/logicexpression.h
@@ -1,10 +1,24 @@
#pragma once
#include
+#include
+#include
namespace vcpkg
{
+ struct ExpressionContext
+ {
+ // map of cmake variables and their values.
+ const std::unordered_map& cmake_context;
+
+ // The legacy context is a string (typically the name of the triplet).
+ // An identifier was considered 'true' if it is a substring of this.
+ // It is now used for backwards compatability diagnostic messages and
+ // will be eventually removed.
+ const std::string& legacy_context;
+ };
+
// Evaluate simple vcpkg logic expressions. An identifier in the expression is considered 'true'
// if it is a substring of the evaluation_context (typically the name of the triplet)
- bool evaluate_expression(const std::string& expression, const std::string& evaluation_context);
+ ExpectedT evaluate_expression(const std::string& expression, const ExpressionContext& context);
}
\ No newline at end of file
diff --git a/toolsrc/include/vcpkg/packagespec.h b/toolsrc/include/vcpkg/packagespec.h
index c87c6a2c6..628352cdb 100644
--- a/toolsrc/include/vcpkg/packagespec.h
+++ b/toolsrc/include/vcpkg/packagespec.h
@@ -23,6 +23,9 @@ namespace vcpkg
///
struct PackageSpec
{
+ PackageSpec() noexcept = default;
+ PackageSpec(std::string name, Triplet triplet) : m_name(std::move(name)), m_triplet(triplet) {}
+
static ExpectedT from_name_and_triplet(const std::string& name,
const Triplet& triplet);
@@ -103,7 +106,14 @@ namespace vcpkg
PackageSpec package_spec;
std::vector features;
- static std::vector to_feature_specs(const std::vector& specs);
+ FullPackageSpec() noexcept = default;
+ explicit FullPackageSpec(PackageSpec spec, std::vector features = {})
+ : package_spec(std::move(spec)), features(std::move(features))
+ {
+ }
+
+ std::vector to_feature_specs(const std::vector& default_features,
+ const std::vector& all_features) const;
static ExpectedT from_string(const std::string& spec_as_string,
const Triplet& default_triplet);
@@ -145,4 +155,21 @@ namespace std
{
bool operator()(const vcpkg::PackageSpec& left, const vcpkg::PackageSpec& right) const { return left == right; }
};
+
+ template<>
+ struct hash
+ {
+ size_t operator()(const vcpkg::FeatureSpec& value) const
+ {
+ size_t hash = std::hash()(value.spec());
+ hash = hash * 31 + std::hash()(value.feature());
+ return hash;
+ }
+ };
+
+ template<>
+ struct equal_to
+ {
+ bool operator()(const vcpkg::FeatureSpec& left, const vcpkg::FeatureSpec& right) const { return left == right; }
+ };
}
diff --git a/toolsrc/include/vcpkg/portfileprovider.h b/toolsrc/include/vcpkg/portfileprovider.h
new file mode 100644
index 000000000..79f69d9ae
--- /dev/null
+++ b/toolsrc/include/vcpkg/portfileprovider.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+
+namespace vcpkg::PortFileProvider
+{
+ struct PortFileProvider
+ {
+ virtual Optional get_control_file(const std::string& src_name) const = 0;
+ virtual std::vector load_all_control_files() const = 0;
+ };
+
+ struct MapPortFileProvider : Util::ResourceBase, PortFileProvider
+ {
+ explicit MapPortFileProvider(const std::unordered_map& map);
+ Optional get_control_file(const std::string& src_name) const override;
+ std::vector load_all_control_files() const override;
+
+ private:
+ const std::unordered_map& ports;
+ };
+
+ struct PathsPortFileProvider : Util::ResourceBase, PortFileProvider
+ {
+ explicit PathsPortFileProvider(const vcpkg::VcpkgPaths& paths,
+ const std::vector* ports_dirs_paths);
+ Optional get_control_file(const std::string& src_name) const override;
+ std::vector load_all_control_files() const override;
+
+ private:
+ Files::Filesystem& filesystem;
+ std::vector ports_dirs;
+ mutable std::unordered_map cache;
+ };
+}
diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h
index 95347770a..0574afe74 100644
--- a/toolsrc/include/vcpkg/sourceparagraph.h
+++ b/toolsrc/include/vcpkg/sourceparagraph.h
@@ -7,6 +7,8 @@
#include
#include
+#include
+
#include
#include
@@ -21,15 +23,28 @@ namespace vcpkg
static Dependency parse_dependency(std::string name, std::string qualifier);
};
- std::vector filter_dependencies(const std::vector& deps, const Triplet& t);
- std::vector filter_dependencies_to_specs(const std::vector& deps, const Triplet& t);
- std::vector filter_dependencies_to_features(const std::vector& deps, const Triplet& t);
+ std::vector filter_dependencies(const std::vector& deps,
+ const Triplet& t,
+ const std::unordered_map& cmake_vars);
// zlib[uwp] becomes Dependency{"zlib", "uwp"}
std::vector expand_qualified_dependencies(const std::vector& depends);
std::string to_string(const Dependency& dep);
+ struct Type
+ {
+ enum
+ {
+ UNKNOWN,
+ PORT,
+ ALIAS,
+ } type;
+
+ static std::string to_string(const Type&);
+ static Type from_string(const std::string&);
+ };
+
///
/// Port metadata of additional feature in a package (part of CONTROL file)
///
@@ -50,9 +65,10 @@ namespace vcpkg
std::string description;
std::string maintainer;
std::string homepage;
- std::vector supports;
std::vector depends;
std::vector default_features;
+ Type type;
+ std::string supports_expression;
};
///
@@ -60,21 +76,48 @@ namespace vcpkg
///
struct SourceControlFile
{
+ SourceControlFile() = default;
+ SourceControlFile(const SourceControlFile& scf)
+ : core_paragraph(std::make_unique(*scf.core_paragraph))
+ {
+ for (const auto& feat_ptr : scf.feature_paragraphs)
+ {
+ feature_paragraphs.emplace_back(std::make_unique(*feat_ptr));
+ }
+ }
+
static Parse::ParseExpected parse_control_file(
- std::vector&& control_paragraphs);
+ const fs::path& path_to_control, std::vector&& control_paragraphs);
std::unique_ptr core_paragraph;
std::vector> feature_paragraphs;
Optional find_feature(const std::string& featurename) const;
+ Optional&> find_dependencies_for_feature(const std::string& featurename) const;
};
///
- /// Full metadata of a package: core and other features. As well as the location the SourceControlFile was loaded
- /// from.
+ /// Full metadata of a package: core and other features. As well as the location the SourceControlFile was
+ /// loaded from.
///
struct SourceControlFileLocation
{
+ SourceControlFileLocation(const SourceControlFileLocation& scfl)
+ : source_control_file(std::make_unique(*scfl.source_control_file))
+ , source_location(scfl.source_location)
+ {
+ }
+
+ SourceControlFileLocation(std::unique_ptr&& scf, fs::path&& source)
+ : source_control_file(std::move(scf)), source_location(std::move(source))
+ {
+ }
+
+ SourceControlFileLocation(std::unique_ptr&& scf, const fs::path& source)
+ : source_control_file(std::move(scf)), source_location(source)
+ {
+ }
+
std::unique_ptr source_control_file;
fs::path source_location;
};
@@ -84,35 +127,4 @@ namespace vcpkg
{
return print_error_message({&error_info_list, 1});
}
-
- 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 is_supported(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/vcpkg/statusparagraph.h b/toolsrc/include/vcpkg/statusparagraph.h
index 6e832fe2f..ec850607d 100644
--- a/toolsrc/include/vcpkg/statusparagraph.h
+++ b/toolsrc/include/vcpkg/statusparagraph.h
@@ -56,6 +56,7 @@ namespace vcpkg
const PackageSpec& spec() const { return core->package.spec; }
std::vector dependencies() const;
+ std::unordered_map> feature_dependencies() const;
const StatusParagraph* core;
std::vector features;
diff --git a/toolsrc/include/vcpkg/update.h b/toolsrc/include/vcpkg/update.h
index b85f7b2b3..6091da778 100644
--- a/toolsrc/include/vcpkg/update.h
+++ b/toolsrc/include/vcpkg/update.h
@@ -17,7 +17,7 @@ namespace vcpkg::Update
VersionDiff version_diff;
};
- std::vector