Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[google-cloud-cpp] Support abseil[cxx17] #21942

Merged
merged 2 commits into from
Jan 19, 2022

Conversation

dllg
Copy link
Contributor

@dllg dllg commented Dec 9, 2021

Describe the pull request

  • What does your PR fix?

Support building when using abseil[cxx17].

This will make sure this scenario works:

vcpkg install abseil[cxx17]
vcpkg install google-cloud-cpp
  • Which triplets are supported/not supported? Have you updated the CI baseline?

No change

Yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

Yes

@JonLiu1993 JonLiu1993 self-assigned this Dec 10, 2021
@JonLiu1993 JonLiu1993 added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Dec 10, 2021
@dllg dllg marked this pull request as ready for review December 10, 2021 07:09
@JonLiu1993
Copy link
Member

All features are tested successfully in the following triplet:

  • x86-windows
  • x64-windows
  • x64-windows-static

@JonLiu1993 JonLiu1993 added the info:reviewed Pull Request changes follow basic guidelines label Dec 14, 2021
Copy link
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BillyONeal BillyONeal added requires:author-response and removed info:reviewed Pull Request changes follow basic guidelines labels Dec 14, 2021
@JonLiu1993
Copy link
Member

@dllg , Can you consider BillyONeal 's review suggestion?

@dllg
Copy link
Contributor Author

dllg commented Dec 16, 2021

Hi, sure. I will try to do a change that makes sure the polyfill requirement is met. I will make it a draft pr for now.

@dllg dllg marked this pull request as draft December 16, 2021 10:38
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 14543ba18235846803ab1d3534cf2f63c6024b20 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index 4badcc1..e9e9b4b 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "e12bfba652dd3ef32dc093c0d5fe5f05fa256bb8",
+      "git-tree": "334bd4c543c96d9deba8ca8fe75f492f63ce1cd9",
       "version": "1.34.1",
       "port-version": 1
     },

@dllg dllg marked this pull request as ready for review December 16, 2021 12:02
@dllg dllg requested a review from BillyONeal December 16, 2021 12:02
@JonLiu1993
Copy link
Member

@dllg, I use the command locally: ./vcpkg install google-cloud-cpp[*] x64-linux failed to test the feature, this is the error log:

/home/test/vcpkg/installed/x64-linux/include/nlohmann/detail/conversions/from_json.hpp:23:14: fatal error: filesystem: No such file or directory
     #include <filesystem>
              ^~~~~~~~~~~~
compilation terminated.

@dllg
Copy link
Contributor Author

dllg commented Dec 27, 2021

Hi @JonLiu1993,

I run the same command without any errors on a Linux Ubuntu 20.04:

dllg@ubuntu:~/repos/vcpkg$ ./vcpkg install google-cloud-cpp[*]
Computing installation plan...
The following packages will be built and installed:
    google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux -> 1.34.1#1
Detecting compiler hash for triplet x64-linux...
Restored 0 packages from /home/dllg/.cache/vcpkg/archives in 12 us. Use --debug to see more details.
Starting package 1/1: google-cloud-cpp:x64-linux
Building package google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux...
-- Using cached googleapis-google-cloud-cpp-v1.34.1.tar.gz.
-- Extracting source /home/dllg/repos/ModuleWorksAPI/vcpkg/downloads/googleapis-google-cloud-cpp-v1.34.1.tar.gz
-- Applying patch add_cxx17_option.patch
-- Using source at /home/dllg/repos/ModuleWorksAPI/vcpkg/buildtrees/google-cloud-cpp/src/v1.34.1-f0eb5ae549.clean
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/dllg/repos/ModuleWorksAPI/vcpkg/packages/google-cloud-cpp_x64-linux/share/google-cloud-cpp/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /home/dllg/.cache/vcpkg/archives/ea/eac8c318860be1a917fe6b40068f58cde37addf835032c0036c232412649fdad.zip
Installing package google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux...
Elapsed time for package google-cloud-cpp:x64-linux: 1.003 h

Total elapsed time: 1.004 h

The package google-cloud-cpp provides CMake targets:

    find_package(google_cloud_cpp_bigquery CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google-cloud-cpp::bigquery)

    find_package(google_cloud_cpp_bigtable CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google-cloud-cpp::bigtable)

    find_package(google_cloud_cpp_common CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google_cloud_cpp_common google-cloud-cpp::common)

    find_package(google_cloud_cpp_googleapis CONFIG REQUIRED)
    # Note: 50 target(s) were omitted.
    target_link_libraries(main PRIVATE gRPC::grpc gRPC::grpc++ protobuf::libprotoc protobuf::libprotobuf)

    find_package(google_cloud_cpp_grpc_utils CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google_cloud_cpp_grpc_utils google-cloud-cpp::grpc_utils)

    find_package(google_cloud_cpp_iam CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google-cloud-cpp::iam)

    find_package(google_cloud_cpp_pubsub CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google-cloud-cpp::pubsub)

    find_package(google_cloud_cpp_spanner CONFIG REQUIRED)
    target_link_libraries(main PRIVATE google-cloud-cpp::spanner)

    find_package(google_cloud_cpp_storage CONFIG REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl google-cloud-cpp::storage google-cloud-cpp::experimental-storage-grpc)

Do I need to do anything else to trigger the error?

@JonLiu1993 JonLiu1993 added requires:all-feature-testing vcpkg install port[all features supported by that port] needs to be demonstrated to function and removed requires:author-response labels Dec 27, 2021
@JonLiu1993
Copy link
Member

@dllg ,I re-tested it locally, and also let my colleague test it again, the same error, can you delete your local cache and git clone your branch to try again? thanks

  1. git clone https://github.com/dllg/vcpkg.git
001:~/Jon/test$ git clone https://github.com/dllg/vcpkg.git
Cloning into 'vcpkg'...
remote: Enumerating objects: 134772, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 134772 (delta 81), reused 73 (delta 73), pack-reused 134678
Receiving objects: 100% (134772/134772), 45.99 MiB | 25.46 MiB/s, done.
Resolving deltas: 100% (83381/83381), done.
  1. git checkout google-cloud-cpp-cxx17
001:~/Jon/test/vcpkg$ git checkout google-cloud-cpp-cxx17
Branch 'google-cloud-cpp-cxx17' set up to track remote branch 'google-cloud-cpp-cxx17' from 'origin'.
Switched to a new branch 'google-cloud-cpp-cxx17'
  1. run command "./bootstrap-vcpkg.sh"
001:~/Jon/test/vcpkg$ ./bootstrap-vcpkg.sh
Downloading vcpkg-glibc...
Telemetry
---------
vcpkg collects usage data in order to help us improve your experience.
The data collected by Microsoft is anonymous.
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
passing --disable-metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.

Read more about vcpkg telemetry at docs/about/privacy.md
  1. run command "./vcpkg install google-cloud-cpp[*] --editable"
001:~/Jon/test/vcpkg$ ./vcpkg install google-cloud-cpp[*]  --editable
Computing installation plan...
A suitable version of cmake was not found (required v3.21.1). Downloading portable cmake v3.21.1...
Downloading cmake...
  https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1-Linux-x86_64.tar.gz -> /home/vzhli17/Jon/test/vcpkg/downloads/cmake-3.21.1-linux-x86_64.tar.gz
Extracting cmake...
The following packages will be built and installed:
  * abseil[core]:x64-linux -> 20210324.2#1
  * c-ares[core]:x64-linux -> 1.17.2#1
  * crc32c[core]:x64-linux -> 1.1.2
  * curl[core,non-http,openssl,ssl]:x64-linux -> 7.80.0
    google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux -> 1.34.1#1
  * grpc[codegen,core]:x64-linux -> 1.41.0
  * nlohmann-json[core]:x64-linux -> 3.10.4
  * openssl[core]:x64-linux -> 1.1.1l#4
  * protobuf[core]:x64-linux -> 3.18.0
  * re2[core]:x64-linux -> 2021-11-01
  * upb[core]:x64-linux -> 2021-10-19
  * vcpkg-cmake[core]:x64-linux -> 2021-09-13
  * vcpkg-cmake-config[core]:x64-linux -> 2021-11-01
  * zlib[core]:x64-linux -> 1.2.11#13
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-linux...
A suitable version of ninja was not found (required v1.10.2). Downloading portable ninja v1.10.2...
Downloading ninja...
  https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip -> /home/Jon/test/vcpkg/downloads/ninja-linux-1.10.2.zip
Extracting ninja...
Restored 13 packages from /home/.cache/vcpkg/archives in 7.727 s. Use --debug to see more details.
Starting package 1/14: vcpkg-cmake:x64-linux
Installing package vcpkg-cmake[core]:x64-linux...
Elapsed time for package vcpkg-cmake:x64-linux: 2.276 ms
Starting package 2/14: vcpkg-cmake-config:x64-linux
Installing package vcpkg-cmake-config[core]:x64-linux...
Elapsed time for package vcpkg-cmake-config:x64-linux: 881.3 us
Starting package 3/14: abseil:x64-linux
Installing package abseil[core]:x64-linux...
Elapsed time for package abseil:x64-linux: 869.1 ms
Starting package 4/14: c-ares:x64-linux
Installing package c-ares[core]:x64-linux...
Elapsed time for package c-ares:x64-linux: 102.9 ms
Starting package 5/14: crc32c:x64-linux
Installing package crc32c[core]:x64-linux...
Elapsed time for package crc32c:x64-linux: 58.81 ms
Starting package 6/14: openssl:x64-linux
Installing package openssl[core]:x64-linux...
Elapsed time for package openssl:x64-linux: 242.8 ms
Starting package 7/14: zlib:x64-linux
Installing package zlib[core]:x64-linux...
Elapsed time for package zlib:x64-linux: 2.571 ms
Starting package 8/14: curl:x64-linux
Installing package curl[core,non-http,openssl,ssl]:x64-linux...
Elapsed time for package curl:x64-linux: 98.92 ms
Starting package 9/14: protobuf:x64-linux
Installing package protobuf[core]:x64-linux...
Elapsed time for package protobuf:x64-linux: 2.193 s
Starting package 10/14: re2:x64-linux
Installing package re2[core]:x64-linux...
Elapsed time for package re2:x64-linux: 201.8 ms
Starting package 11/14: upb:x64-linux
Installing package upb[core]:x64-linux...
Elapsed time for package upb:x64-linux: 162.9 ms
Starting package 12/14: grpc:x64-linux
Installing package grpc[codegen,core]:x64-linux...
Elapsed time for package grpc:x64-linux: 5.486 s
Starting package 13/14: nlohmann-json:x64-linux
Installing package nlohmann-json[core]:x64-linux...
Elapsed time for package nlohmann-json:x64-linux: 104.9 ms
Starting package 14/14: google-cloud-cpp:x64-linux
Building package google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux...
-- Downloading https://github.com/googleapis/google-cloud-cpp/archive/v1.34.1.tar.gz -> googleapis-google-cloud-cpp-v1.34.1.tar.gz...
-- Extracting source /home/Jon/test/vcpkg/downloads/googleapis-google-cloud-cpp-v1.34.1.tar.gz
-- Applying patch add_cxx17_option.patch
-- Using source at /home/Jon/test/vcpkg/buildtrees/google-cloud-cpp/src/v1.34.1-f0eb5ae549
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
-- Building x64-linux-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:155 (message):
    Command failed: /home/Jon/test/vcpkg/downloads/tools/cmake-3.21.1-linux/cmake-3.21.1-linux-x86_64/bin/cmake --build . --config Debug --target install -- -v -j9
    Working Directory: /home/Jon/test/vcpkg/buildtrees/google-cloud-cpp/x64-linux-dbg
    See logs for more information:
      /home/Jon/test/vcpkg/buildtrees/google-cloud-cpp/install-x64-linux-dbg-out.log

Call Stack (most recent call first):
  installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_build.cmake:102 (vcpkg_execute_build_process)
  installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_install.cmake:41 (vcpkg_cmake_build)
  ports/google-cloud-cpp/portfile.cmake:41 (vcpkg_cmake_install)
  scripts/ports.cmake:142 (include)


Error: Building package google-cloud-cpp:x64-linux failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `git pull` and `./vcpkg update`.
Then check for known issues at:
  https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+google-cloud-cpp
You can submit a new issue at:
  https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[google-cloud-cpp]+Build+error
including:
  package: google-cloud-cpp[bigquery,bigtable,core,cxx17,experimental-storage-grpc,iam,pubsub,spanner,storage]:x64-linux -> 1.34.1#1
    vcpkg-tool version: 2021-11-24-48b94a6946b8a70abd21529218927fd478d02b6c
    vcpkg-scripts version: 998b29766 2021-12-16 (11 days ago)

Additionally, attach any relevant sections from the log files above.

/home/Jon/test/vcpkg/buildtrees/google-cloud-cpp/install-x64-linux-dbg-out.log:

/home/test/vcpkg/installed/x64-linux/include/nlohmann/detail/conversions/from_json.hpp:23:14: fatal error: filesystem: No such file or directory
     #include <filesystem>
              ^~~~~~~~~~~~
compilation terminated.

@dllg
Copy link
Contributor Author

dllg commented Dec 28, 2021

I'm looking into it now. Making it a draft until I can reproduce and hopefully find a solution.

@dllg dllg marked this pull request as draft December 28, 2021 08:25
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 14543ba18235846803ab1d3534cf2f63c6024b20 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index e9e9b4b..2802907 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "334bd4c543c96d9deba8ca8fe75f492f63ce1cd9",
+      "git-tree": "14af2516d6d10645dffe47678487be28735af0fc",
       "version": "1.34.1",
       "port-version": 1
     },

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 14543ba18235846803ab1d3534cf2f63c6024b20 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index fbe7ce7..1962d25 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -2522,7 +2522,7 @@
     },
     "google-cloud-cpp": {
       "baseline": "1.34.1",
-      "port-version": 0
+      "port-version": 1
     },
     "google-cloud-cpp-common": {
       "baseline": "alias",
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index 461ff0b..2802907 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "14af2516d6d10645dffe47678487be28735af0fc",
+      "version": "1.34.1",
+      "port-version": 1
+    },
     {
       "git-tree": "3a3519f9f0fc9833e8f4dd815aea69b385ea6885",
       "version": "1.34.1",

@ras0219-msft
Copy link
Contributor

ras0219-msft commented Jan 13, 2022

+@coryan for review as owner of google-cloud-cpp

-#ifdef _MSC_VER
+#if defined(_MSC_VER)
# define GOOGLE_CLOUD_CPP_CPP_VERSION _MSVC_LANG
+#elif defined(ABSL_USE_CXX17)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change seems odd. google-cloud-cpp is trying to figure out what version of C++ does the compiler support. If (for whatever reason) the compiler is configured for something older than C++17, even when ABSL_USE_CXX17 was set, we would probably want to know that.

If anything, we may want to add something like

#if defined(ABSL_USE_CXX17) && GOOGLE_CLOUD_CPP_VERSION < 101703L
#error "Compiled to use Abseil with C++17 support, but using with C++ < C++17"
#endif

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 39b17cf84c8b389d5800775eaa61e279610c3f33 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index 188a972..24cd4b9 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "454ddfddfa290c0d12e21edac3ee1150b8618238",
+      "version": "1.35.0",
+      "port-version": 1
+    },
     {
       "git-tree": "171fbf69839919f9cbd18e7d1d3c4375920c4ae5",
       "version": "1.35.0",

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 39b17cf84c8b389d5800775eaa61e279610c3f33 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index f126bac..24cd4b9 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,6 +1,6 @@
 {
   "versions": [
-  {
+    {
       "git-tree": "454ddfddfa290c0d12e21edac3ee1150b8618238",
       "version": "1.35.0",
       "port-version": 1

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 39b17cf84c8b389d5800775eaa61e279610c3f33 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index 188a972..a61471a 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "38343cb1ebccab2c6643aea21c911f4228afb96d",
+      "version": "1.35.0",
+      "port-version": 1
+    },
     {
       "git-tree": "171fbf69839919f9cbd18e7d1d3c4375920c4ae5",
       "version": "1.35.0",

#endif // GOOGLE_CLOUD_CPP_CPP_VERSION < 201103L

+#ifdef ABSL_USE_CXX17
+# define GOOGLE_CLOUD_CPP_CPP_VERSION 201703L
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still seems odd. What if the compiler is configured for C++20? Do we want to lie to google-cloud-cpp and tell it that it is C++17 just because ABSL_USE_CXX17 is enabled [1]? I think we should just leave GOOGLE_CLOUD_CPP_VERSION defined as before.

[1] Note that Abseil "use C++17" really means "use C++ >= 17 features". And I should add that google-cloud-cpp mostly [2] does not care about the C++ version, so the wrong definition is kind of harmless right now.
[2] I think there is one place where we add an overload if C++ >= 17, and we add some telemetry including the C++ version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coryan Sure I was a bit hesitant about hard-coding that one. But that's easily changed.

The problem now is that it seems I cannot know if abseil has the feature cxx17 or not. Do you have any clue on how this can be done without creating a new feature in google-cloud-cpp depending on abseil[cxx17]?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem now is that it seems I cannot know if abseil has the feature cxx17 or not. Do you have any clue on how this can be done without creating a new feature in google-cloud-cpp depending on abseil[cxx17]?

No. Nothing obvious comes to mind.

Here is an idea:

  • I think vcpkg requires CMake > 3.8 (probably much higher than that really), that means we could depend on https://cmake.org/cmake/help/v3.8/manual/cmake-compile-features.7.html

  • We could patch (in the vcpkg port, but I think I can convince my colleagues to upstream such a patch) Abseil to propagate its minimum required C++ version in the targets it defines:

https://github.com/abseil/abseil-cpp/blob/2a042b082ca6fc8592ec98d800012fc03c965c15/CMake/AbseilHelpers.cmake#L259-L264

  • When the [cxx17] feature is enabled that would need to read
      target_compile_features(${_NAME} PUBLIC cxx_std_17)
  • I think (but you should verify this) that the exported Abseil targets would carry this minimum C++ version requirements.

  • I think (and I am happy to fix this if it is wrong), google-cloud-cpp would just take the minimum C++ version from Abseil in this case.

That is a lot of steps, but in short, we would carry the C++ version in the Abseil targets, and CMake would take care of compiling google-cloud-cpp (and anything that depends on it) using the right version.

Copy link
Contributor

@ras0219-msft ras0219-msft Jan 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, I'm very much against propagating c++ standard versions in this way (cmake magic); in my opinion, adding a dependency to your project shouldn't magically change what standard version you're targeting.

I haven't dug too deeply into the specific problem, so let me make two suggestions that fix different things:

  1. If the problem is that interpreting abseil's headers requires C++17 if it was built with C++17, then for now I'd have the abseil port simply write a file into share/abseil/ that records this requirement and have the google-cloud-cpp port read it and react accordingly. The actual correct fix for this is that vcpkg should have a global notion of what standard version to target and cxx17 should not be a feature of abseil, but this is the extra two strips of duct tape that allows the hack to continue bearing load.
  2. If the problem is not interpreting the headers, but rather google-cloud-cpp needs to call abseil in a certain way based on the C++ version, that should be entirely doable based on macros at compile time and shouldn't require any buildsystem-level configuration. I assume that the problem is most likely (1) since this version would be pretty trivial to fix.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, I'm very much against propagating c++ standard versions in this way (cmake magic); in my opinion, adding a dependency to your project shouldn't magically change what standard version you're targeting.

You are not wrong.

I haven't dug too deeply into the specific problem,

The TL;DR;: Abseil's ABI depends on what C++ version was used to build it, and without some patches, even on what C++ version it is used (creating lovely errors). Details at abseil/abseil-cpp#696.

Longer version:

  • If you compiled Abseil with C++ >= 17, then you can only use it from C++ >= 17 because its public APIs then use std::variant and std::string_view and std::any.
  • If you compiled it with C++11 and you did not change the absl/base/options.h file, then using Abseil from C++17 is not going to work. Its headers will say that some of its functions take a std::string_view as arguments, but the binary artifacts are using absl::string_view.
  1. If the problem is that interpreting abseil's headers requires C++17 if it was built with C++17, then for now I'd have the abseil port simply write a file into share/abseil/ that records this requirement and have the google-cloud-cpp port read it and react accordingly.

Note that gRPC also uses Abseil (though maybe not the affected APIs). We may need to fix that too.

The actual correct fix for this is that vcpkg should have a global notion of what standard version to target and cxx17 should not be a feature of abseil, but this is the extra two strips of duct tape that allows the hack to continue bearing load.

SGTM.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coryan @ras0219-msft Thanks for your input. I found a solution, but I did not need to do any changes in the abseil port. Seems that abseil port already creates files under share/abseil and share/absl. (https://github.com/microsoft/vcpkg/blob/bba8794b82a0f44b8709f294850a2c8e96b61415/ports/abseil/portfile.cmake#L32)

The generated file share/absl/abslConfig.cmake will set the ABSL_USE_CXX17 variable correctly (

+set(ABSL_USE_CXX17 @ABSL_USE_CXX17@)
). All I needed to do to get the variable set was to call find_package(absl CONFIG REQUIRED) first.

Do you think this solution is ok?

Signed-off-by: Daniel Lundborg <daniel.lundborg@sandvik.com>
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout bba8794b82a0f44b8709f294850a2c8e96b61415 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/g-/google-cloud-cpp.json b/versions/g-/google-cloud-cpp.json
index 188a972..e889462 100644
--- a/versions/g-/google-cloud-cpp.json
+++ b/versions/g-/google-cloud-cpp.json
@@ -1,5 +1,10 @@
 {
   "versions": [
+    {
+      "git-tree": "5df9e36ebb6dd75abc2a5ff3aebdd61719739e8e",
+      "version": "1.35.0",
+      "port-version": 1
+    },
     {
       "git-tree": "171fbf69839919f9cbd18e7d1d3c4375920c4ae5",
       "version": "1.35.0",

Signed-off-by: Daniel Lundborg <daniel.lundborg@sandvik.com>
@dllg dllg marked this pull request as ready for review January 17, 2022 12:12
@dllg
Copy link
Contributor Author

dllg commented Jan 18, 2022

@JonLiu1993 I managed to solve the issue with the ABSL_USE_CXX17 not getting populated correctly. I have tested it on Ubuntu 20.04 with abseil[cxx17] and abseil[core] and google-cloud-cpp compiles correctly.

@strega-nil-ms
Copy link
Contributor

Cool, this new patch looks good to me; thanks!

@strega-nil-ms strega-nil-ms merged commit 5ef52b5 into microsoft:master Jan 19, 2022
@dllg dllg deleted the google-cloud-cpp-cxx17 branch January 20, 2022 09:11
ras0219-msft added a commit that referenced this pull request Feb 8, 2022
* [uriparser] update to 0.9.6 (#22398)

* [sobjectizer] Update to v.5.7.3 (#22399)

* sobjectizer updated to v5.7.3.

* so5extra updated to v1.5.0.

* so5extra-1.5.0 added to baseline.

* Fixes for old cmake commands.

* Update baseline for sobjectizer/so5extra.

* modernize cmake functions

* update version

* modernize cmake functions

* update version

* udpate version

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [boost] update to 1.78.0 (#21928)

* [scripts] update scripts

* [boost-*] generate ports

* update versions

* [scripts] update boost version in boost-modular-headers.cmake

* [scripts] add post source stubs for boost-json and boost-nowide ports and re-generate Boost ports

* update versions

* [boost-asio] make OpenSSL optional #20718

* update versions

* [boost] [boost-mpi] [boost-python] disable python for iOS and Android, fixes #21474

* update versions

* [boost-fiber] add NUMA support, fixes #16507

* update version

* [boost-build] apply patch https://github.com/bfgroup/b2/pull/113 for fix build boost-fiber and boost-stacktrace

* update version

* [boost-atomic] fix compilation for uwp

* update version

* ignore mapnik's fail on arm64-windows

* [boost-python] support ARM on Windows

* update versions

* Boost features testing within CI

* [boost-modular-build-helper] fix boost_python file name in Jamroot.jam

* [boost-mpi] fix build with python2 or python3

* update versions

* [boost-fiber] fix build with numa=on

* update version

* [boost-multiprecision] fix build with MSVC on ARM

* update version

* [boost-mpi] try to fix build on linux and osx

* update versions

* exclude static

* guarantee the same result across platforms

* minor changes to boost-modular-build-helper's CMake

* correct versions

* [boost-modular-build-helper] install Python extensions on Windows

* [boost-mpi] add patch to fix build Python extension on Windows

* update versions

* [boost-mpi] remove python2 by request @BillyONeal @strega-nil-ms

* update version

* update versions

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>

* [proj4]: Make the tiff specific features configurable and don't requi… (#22402)

* [proj4]: Make the tiff specific features configurable and don't require the lossy jpeg compression that isn't used by the proj Data and/or CDN

* [proj4]: Add version

* [cppgraphqlgen] Update from v4.0.0 to v4.1.0 (#22411)

* Bump version from 4.0.0 to 4.1.0

* vcpkg x-add-version cppgraphqlgen

* [mman] only windows (#22453)

* [vlpp] fix mac build (#22452)

* [s2n] disable -Werror for gcc 11 build (#22446)

s2n fails to build with gcc 11 (see
https://github.com/aws/s2n-tls/issues/2989) due to problematic type
declarations which generate compiler warnings, coupled with the fact
that s2n builds with -Werror by default. The underlying bug is not yet
fixed upstream.

Building with -Werror is not helpful for an end user trying to use s2n
from vcpkg, since a build failure like this is not actionable. This
change therefore uses the UNSAFE_TREAT_AS_ERRORS=OFF option to disable
-Werror.

* [sdl2-image] Support x64-uwp (#22437)

* fixed 22434

* Clean baseline

* update version

* version

* add supports field since the upstream doesn't support uwp

* improve code

* version

* version

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>

* [openblas] Upgrade to latest version 0.03.19 (#22435)

* [#22423]: Upgrade Openblas to latest version 0.03.19

* Clean-up ports/openblas. Removing patch no longer needed

* Formatting ports/openblas/vcpkg.json

* vcpkg x-add-version openblas

* [simbody] no absolute paths (#22420)

* [macos ci] update to 2022-01-03 (#22314)

* [macos ci] update to 2022-01-03

* update the instructions

* forgot to update azure-pipelines-osx.yml

* install parallels in Install-Prerequisites.ps1

* oops

* fix ace, libsoundio, and libpqxx

* tensorflow doesn't yet support macOS 12

* [drogon] Fix libmariadb import/export and usage (#22426)

* Add canonical usage

* Use unofficial-libmariadb

* Update versions

* [getdns] Disable install COPYING in cmakelist (#22475)

Co-authored-by: Cheney-Wang <v-xincwa@microsoft.com>

* [pybind11] Update to 2.9.0 (#22460)

Co-authored-by: Heiko Thiel <heiko.thiel@hpi.de>

* [wintoast] only windows (#22441)

* [chakracore] Add flag to use all available CPUs (#22439)

* Update portfile.cmake

* Update vcpkg.json

* Update baseline.json

* Update chakracore.json

* Update portfile.cmake

* Update chakracore.json

* Update portfile.cmake

* Update portfile.cmake

* Update chakracore.json

* Update portfile.cmake

* Update chakracore.json

* Update ports/chakracore/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update chakracore.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* [luasocket] only work on windows (#22432)

* [vcpkg_execute_build_process] Catch ld signal 9 (#22417)

* [vcpkg_execute_build_process] Catch ld signal 9

* Update message output

* [realsense2] Update to 2.50.0 (#22416)

* Update realsense2

* Update versions

* strega-nil CRs

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

* [pdal] Revise and update (#21275)

* Modernize portfile, use vcpkg_from_github

* Revise cleanup and tool installation

* Fix static linkage with gdal

* Fix static linkage with PostgreSQL

* Fix compiler options

* Fix APPLE linker flags

* Don't use /usr/local/include

* Remove pdal failure from CI baseline

* Remove outdated FindICONV.cmake

* Simplify geos package lookup

* Separate boost patch from other dependencies

* Simplify boost patching

* Update to 2.3.0

* PDAL supports only dynamic linkage

* Normalize find_library

* Dependencies, features and plugins

* Update pdalboost fixup

* Fixup pkgconfig

"Requires" in pc file is incomplete, and not needed for dynamic linkage in vcpkg.

* Override absolute plugin path

* Don't set RPATH

* Add usage

* [pdal-c] Update portfile

* [pdal-c] Don't enforce pdal features

* [pdal-c] Update to v2.1.0

* Update versions

* Convert tabs

* Update versions

* Patch NOMINMAX definition

* Update versions

* Use project include instead of patch

* Update versions

* Update 'supports' field

* Update versions

* [vcpkg] z_vcpkg_get_cmake_vars(): Use build-type-specific cache variable if VCPKG_BUILD_TYPE is defined (#22461)

* z_vcpkg_get_cmake_vars(): Use build-type-specific cache variable
if VCPKG_BUILD_TYPE is defined

Some ports (e.g. gettext) execute debug and release builds manually
(with different options). If a globally cached copy of cmake vars file
is used, the second build type has no cmake vars defined (e.g. CFLAGS is empty)
because generated and globally cached cmake vars file includes only cmake vars
for the first build type

* Apply suggestions from code review

Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>

Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>

* [azure-identity-cpp] Update to 1.1.1 (#22493)

## 1.1.1 (2022-01-11)

### Bugs Fixed

- [2741](https://github.com/Azure/azure-sdk-for-cpp/issues/2741) Fixed linking problem when Azure SDK is built as DLL.

* [opencolorio/lcms] Fix dependency (#21960)

* [NCCL] Fix usage, add wrapper and install Find module file (#22031)

* fix-find_ncclConfig.cmake

* update version

* change port-version

* update version

* update version

* update version

* update port version

* update version

Co-authored-by: Frank-Xie <Frank-Xie@Email.com>

* [libuuid] disallow on osx (#22306)

The `uuid/uuid.h` header conflicts with system libraries on osx; some system headers include `<uuid/uuid.h>`, intending to get the macOS system headers.

* [protobuf] fix protobuf-3.18 mingw build failure (#22369)

* fix protobuf-3.18 mingw build

* fix protobuf-3.18 mingw build

* [boost-modular-headers] download the license file only once (#22462)

* [boost-modular-headers] download license file only once for every header-only library

* update version

* [wxwidgets] Fix debug-/release-only build (#22464)

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>

* [buck-yeh-bux] Fix error C7595 (#22471)

* [buck-yeh-bux] Fix error C7595

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [Starlink-ast] update to 9.2.7 (#22382)

* updated to v9.2.6

* git hash update

* update to AST 9.2.7

* hash update

* Update versions/s-/starlink-ast.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* starlink-ast doesn't use semver

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* [fontconfig] don't build font cache in case of crosscompile (#22483)

* [netcdf-c] fix installation on windows when hdf5[parallel] is installed (#22488)

fixes #21646

* [gettext] Fix uwp "tools" build (#22489)

* [many ports] Update HTTP to HTTPS links where it can be done safely. (#20464)

* Update HTTP to HTTPS links where it can be done safely.

This means that the HTTP-based link gave a 200 response with identical
content to the HTTPS version of the link. For links containing
variables, we checked the interpolated (real) link.

* Bump relevant vcpkg.json versions.

* Use version-date for cello.

* update version

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Jonliu1993 <13720414433@163.com>

* [vtk] no absolute paths (#22330)

* [CppXaml] Add new port (#22414)

* Add CppXaml package

* format

* version

* 0.0.16

* update version

* Update ports/cppxaml/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* update version

* add double quotes

* update version

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Jonliu1993 <13720414433@163.com>

* [antlr4] update to 4.9.3 (#22438)

* Fixing Tracy Port (#22510)

* Adding tracy port

* Formatting tracy port

* Tidying up the port

* Formatting again

* Making sure git-tree is correct

* Adding correct vcpkg dependencies

* Newline at file end again

* Update version database

* Making sure to mark tracy as not supporting x86 at all

* Updating version again

* Responding to feedback and double checking which builds will work

* Updating versions

* Tidying up some loose ends

* Updating port version again

* Removing port-version 1

* Removing tracy from ci baseline

* Removing unnecessary include copy

* Updating version

* Resolving feedback

* Updating version and formatting

* Version for the version god

* tweaking tracy supports

* Formatting and version

* Version

* Adding pthreads dependency to tracy for non-windows platforms

* Version

* Fixing tracy port

* Fixing version

* TRACY_IMPORTS should be an INTERFACE define

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

* [openxr-loader] Update to 1.0.22 (#22512)

* [openxr-loader] Update to 1.0.22

* [openxr-loader] Update version files

Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>

* [libmicrohttpd] update to v0.9.75 (#22514)

* update libmicrohttpd to v0.9.75

* delete useless patch file

Co-authored-by: Mengna-Li <you@example.com>

* [speex] fix build on osx by disableing example binaries (#22458)

* [speex] disable building of example programs to avoid libogg dependency

* [speex] don't use deprecated vcpkg functions

* [vcpkg_find_fortran] Update the mingw-w64-i686-mpc* (#22519)

* [vcpkg_find_fortran] Update the mingw-w64-i686-mpc*

* Update the version for x64

* [icu] Fix pc files (#22388)

* [icu] Fix pc files

* Patch the issue in configure.ac

* Update VMs for Patch Tuesday and fix pwsh CVE. (#22494)

* [glslang] Restore version removed in #15719 (#22538)

* [crow] update to 0.3.4 (v0.3+4) (#22500)

Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>

* [wxWidgets] Fix issue introduced in 9b654a1f2174edaf63ef6af2c2d7e1ccd3cba83a (#22509)

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>

* [tiff] Fix -lm on android (#22137)

* [vcpkg baseline][rtabmap] Set WITH_PDAL to OFF (#22534)

* Remove lingering artifacts from the beta release of the azure-security-keyvault-common-cpp as it is no longer necessary. (#22491)

* Remove the beta release of the azure-security-keyvault-common-cpp as it
is no longer necessary.

* revert delete operator, set this port as depreciate

* format, version

* Update versions/a-/azure-security-keyvault-common-cpp.json

* Revert "Update versions/a-/azure-security-keyvault-common-cpp.json"

This reverts commit 8b9e666f8e02943e681cf572f42278df15792334.

* Revert "format, version"

This reverts commit bb7d882f129efc11d3ce9d2de38bf3ad31760f90.

* Revert "revert delete operator, set this port as depreciate"

This reverts commit 8916a559d6e7e9ec6d8421fa6e1cff1a8a70fa96.

* Add back the old versions file for keyvault-common.

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

* [gdal] Update to 3.4.1 (#22370)

* Update gdal to 3.4.1

* Update versions

* Explicitly disable PCRE2

* Update versions

* Revise nmake dependency import and export

* Use pkg-config for spatialite with autotools

* Update versions

* [mongoose] update to v7.5 (#22385)

* Update mongoose to v7.5

* Update portfile.cmake

* [mongoose] update to v7.5

* udpate version

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [zstd] update to 1.5.2 (#22492)

* [boost-modular-build-helper] Fix boost build gcc macos (#22410)

* Allow gcc on macos on boost-build

* Remove libc++ flag for GCC on MacOs

* Bumped port version

* Ran x-add-version

* [scylla wrapper] only windows (#22612)

* scylla-wrapper only support windows

* update

* add port version

* update

* [aws-c-mqtt] Fix dependencies (#22611)

* Fix dependencies

* Update versions

* [piex] fix mac build (#22600)

* [milerius-sfml-imgui] fix mac build (#22596)

* [guetzli] fix mac build (#22588)

* [crossguid] fix mac build (#22587)

* [gherkin-c] Fix UNIX build, fix install path (#22578)

* [gherkin-c] Fix UNIX build, fix install path

* version

* manifest

* version

* should be a `-` not an `_`

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

* [libwebsockets] Fix building with Emscripten (#22563)

* Do not use pkg-config for finding OpenSSL
Do not use libuv when building for Emscripten

(cherry picked from commit f541d3265a00f31a91a56ed25096a0ad476fd2a9)

* Remove redundant flag

* Update versions

* Update versions

* Fix patch

* Update versions

Co-authored-by: Ahmed Yarub Hani Al Nuaimi <ahmed.alnuaimi@zwift.com>

* [libdshowcapture] only windows (#22562)

* [libxmp-lite] only windows (#22560)

* [minhook] only windows (#22558)

* [readline-win32] only windows (#22557)

* [unicorn] only windows (#22556)

* [wincrypt] only windows (#22555)

* [winsock2] only windows (#22554)

* [ffmpeg] fix Crosscompiling on osx (#22543)

* [robin-hood-hashing] Update to 3.11.5 (#22537)

* [robin-hood-hashing] Update to 3.11.5

* [robin-hood-hashing] Update version files

Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>

* [LibJuice][Libdatachannel] Update v0.9.6 / Update v0.16.4 (#22531)

* Update libjuice to 0.9.6

* Update baseline.

* Update to 0.16.4.

* Update baseline.

Co-authored-by: Nemirtingas <Nemirtingas@noreply.com>

* [libtcod] Update to 1.20.1 (#22524)

* [libtcod] Update to 1.20.1

* Current versions do not follow semantic versioning.

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* [mesa] Update hash (#22573)

* [mesa] Update hash

* version

* add FILE_DISAMBIGUATOR

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

* [mhook] only windows (#22559)

* [llfio] Support static linkage triplets (#22504)

* [quickcpplib] Avoid deprecated helper functions

* [quickcpplib] Update to version @0.0.0-cad832c8

fixup quickcpplib ref

* [quickcpplib] Add cxx17 and cxx20 feature levels

* [quickcpplib] Update port version information

* [llfio] Update to version @2.0-20220112

* [llfio] Avoid deprecated helper functions

* [llfio] Add cxx17 and cxx20 feature levels

* [llfio] Support static linkage triplets

* [llfio] Always install ntkernel-error-category

ntkernel-error-category sources have been recorded as part of
`headers.cmake` which are added to the library targets. Therefore cmake
configure fails if they aren't  available.

* [llfio] Fix msvc crt linkage specification

`quickcpplib` parses `CMAKE_MSVC_RUNTIME_LIBRARY` and cannot support the
default crt linkage generator expression from vcpkg. Therefore we need
to manually specify a valid option.

* [llfio] Update port version information

* [vcpkg_execute_build_process] Catch more compiler signal (#22566)

* [vcpkg_execute_build_process] Catch more cc1plus signal

* remove cc1plus

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

* [boost-build] Fix boost-exception for wasm32-emscripten (#22497)

* Fix boost-exception for wasm32-emscripten

* Updated port version for boost-exception

* Updated boost-exception with x-add-version

* Fixed patch

* Boost-build x-add-version

* Increment boost-build version again

* x-add-version for boost-build

* Fixed boost-build port version

* x-add-version for boost-build

Co-authored-by: Semphris <semphris@protonmail.com>

* [curl] Update to 7.81.0 (#22445)

* Update to 7.81.0

* Revise curl wrapper, fix `COMPONENTS`

* Update versions

* Add fix for multi-ssl config

* [skip actions] CI feature test

* Refactor lib export fixup

Handle Debug/Release/IMPORTED_*...

* Fix libssh2 lookup

* Fix libidn2.pc for windows

* Fix libidn2 import

* Fix mbedtls import

* Simplify options

* [skip actions] CI feature test

* Revert CI feature test configuration

* Update versions

* Limit import lib fixup to WIN32

* Update versions

* [qt5-3d] Support Visual Studio 2022 (#22624)

The error shows related to the qt5-3d module when I'm compiling COLMAP 3.6 by vcpkg on Windows 10 with Visual Studio 2022 installed. After tracing the logs, I realized that only assimp-vc143-mt.lib available in VCPKG_ROOT\installed\x64-windows\lib

* [nayuki-qr-code-generator] new port (#22615)

* [google-cloud-cpp] Support abseil[cxx17] (#21942)

* [google-cloud-cpp] Support abseil[cxx17]

Signed-off-by: Daniel Lundborg <daniel.lundborg@sandvik.com>

* [google-cloud-cpp] add version

Signed-off-by: Daniel Lundborg <daniel.lundborg@sandvik.com>

* [quantlib] update to v1.25 (#21430)

* [irrlicht] Add the remind of libraries which needed by Linux (#21511)

* [irrlicht] Add the remind of libraries which needed by Linux

* update version

* [irrlicht] update mesa

* update version

* update version

* update portfile.cmake

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [FlashRuntimeExtensions] Add new port (#22171)

* Initial commit with a working port on Windows.

* Added version file.

* Update ports/flash-runtime-extensions/portfile.cmake

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update ports/flash-runtime-extensions/portfile.cmake

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update ports/flash-runtime-extensions/portfile.cmake

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update ports/flash-runtime-extensions/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update ports/flash-runtime-extensions/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Fixed address.

* Fixed url for original port.

* format vcpkg.json

* update version

* Removed comma.

* add supports

* update version

* Removing folder fixing vcpkg build.

* Changed hash value and version.

* Fixed baseline hash an version.

* Update ports/flash-runtime-extensions/portfile.cmake

* Update ports/flash-runtime-extensions/portfile.cmake

* added vcpkg x-add-version flash-runtime-extensions --overwrite-version

* update veersion

* update supports

* update version

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

* [flann] Fix missing hdf5 dependency in flann-config.cmake (#22153)

* add find_package hdf5 in flann-config.cmake

* update versions

* Update flann.json

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [vcpkg ci] Ask for adding a license field (#20790)

* [vcpkg ci] Ask for adding a license field

* Apply suggestions from code review

* try out license field thing

* fix two newlines after </details>

* add more newlines

* Revert "try out license field thing"

This reverts commit 3ab82662ae516e11b0ed91d467e1d1a826d21d75.

Co-authored-by: nicole mazzuca <83086508+strega-nil-ms@users.noreply.github.com>
Co-authored-by: nicole mazzuca <mazzucan@outlook.com>

* [FLTK] Update to 1.3.8 (#22487)

* [FLTK] Update to 1.3.8

* [FLTK] Update to 1.3.8 - fixups

* Update versions/f-/fltk.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* [oatpp] update oatpp associated oatpp modules to v1.3.0 and [oatpp-ssdp] Add new port  (#22419)

* [qtkeychain] Support to build with less dependencies (#21965)

* [qtkeychain] Support to build with less dependencies

* Update version database

* [trantor] Update to 1.5.4 (#21969)

* [trantor] Update to 1.5.4

* format

* [robin-hood-hashing] Update to 3.11.4 (#21971)

* [robin-hood-hashing] Update to 3.11.4

* [robin-hood-hashing] Update version files

Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>

* [libuuid] Fix wrong pkg-config installation (#21970) (#21972)

* [libuuid] Fix wrong pkg-config installation (#21970)

* update port version

* Update version database

* [rmlui] Update to version 4.3 (#21987)

* [json_dto] Update to v.0.3.0 (#22002)

* json-dto updated to v.0.3.0

* json-dto v.0.3.0 added to the mainline.

* [mmloader]Update mmloader to v1.0.1 (#22004)

* Update mmloader to v1.0.1

* Update mmloader version

- fixed compile errors of tools project

* Add version data

* Update ports/mmloader/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* Update version data

* update mmloader.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Jonliu1993 <13720414433@163.com>

* [vk-bootstrap] New port (#21949)

* [vcpkg] Change osx to run every 48 hours rather than every 24. (#21954)

* Change osx to run every 48 hours rather than every 24.

* Back out more former-tensorflow-separation yaml.

* [kddockwidgets] new port (#21989)

* add kddockwidgets

* format manifest

* version stuff

* switch to vcpkg_cmake_*  and add patch

* version stuff

* add crosscompiliation code for arm windows

* version stuff

* remove prefer ninja

* version stuff

* [osgearth] Change blend2d dependency to use the blend2d target  (#21977)

* [osgearth] Change blend2d dependency to use the blend2d target and add missing dependency.

* Add quotes around 'dynamic', as requested by dg0yt

* Use CONFIG for blend2d, and combine with make-all-find-packages-required patch, as requested by @JackBoosY.

* [vcpkg baseline][tensorflow] setup python venv and update Linux VMs (#21912)

* Revert "incorporate changes from microsoft:master"

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

* preliminary approach to solve pip issue

* fix python venv

* fix macOS build command again

* bump version

* x-add-version

* Fix spelling of prerequisites.

* Add python3-venv

* Update linux pool.

Co-authored-by: Joachim Gehweiler <joachim@Joachims-iMac.local>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [libevent] no absolute paths (#21179)

* [Pcre2] Check if files exists before call vcpkg_replace_string. (#22003)

* Check if files exists before call vcpkg_replace_string.

* Update per comments.

Only guard debug.

* Update ports/pcre2/portfile.cmake

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

* Bump port-version.

Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [lodepng] Fix cannot open include file "lodepng.h" (#22007)

* [lodepng] Fix cannot open include file "lodepng.h"

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [MyGUI] update to 3.4.1 (#22015)

* [MyGUI] update to 3.4.1

* update version

* [s2n] Update, add openssl dependency (#21484)

* Update to 1.3.0, add openssl dependency

* Add 'tests' feature

* Update versions

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

* Libpq update and VCPKG_OSX_SYSROOT fix (#21583)

* [libpq] Update to 12.9

* [libpq] Use VCPKG_OSX_SYSROOT if set

otherwise configure set the default sysroot in addition, ignoring the
sysroot set by vcpkg_configure_cmake.

* [libpq] remove comment only chunks from patches

* [libpq] update version registry

* [qhttpengine] New port (#22009)

* [qhttpengine] New port

* Update version database

* Fix the format of portfile.cmake

* Fix the format of portfile.cmake

* update version

* Remove duplicate build_shared_libs setting.

Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [ xtensor-io ] Fix wrong hash (#22018)

* [xtensor-io] Fix wrong hash

* update version

* [vcpkg] Update VMs for December 2021 Patch Tuesday (#22013)

* Add Microsoft.VisualStudio.ComponentGroup.UWP.VC.BuildTools to VS as requested by https://github.com/microsoft/vcpkg/issues/19554

* Cherry pick python changes from https://github.com/microsoft/vcpkg/pull/21912

* Update linux pool.

* Update windows pool.

* [starlink] Veggiesaurus/starlink ast cminpack fix (#20559)

* add CMINPACK_NO_DLL flag back

* bump port version

* updated versions JSON

* quotation mark adjustment

* git-tree update

* adjusted c flags configuration

* hash update

* whitespace fix

* git-tree hash update

* updated to ast 9.2.5, added external-cminpack flag

* updated version hash

* removed old version entry

* removed $schema element from json

* updated port git-tree hash

* [libunifex] Update to 2021-12-07 (#21995)

* updated libunifex version

* remove comment

* run x-add-versions --all

* Update ports/libunifex/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* rerun x-add-version libunifex

* Update versions/l-/libunifex.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* update libunifex to 12-07

* x-add-version

* libunifex port update

force cpp20 as cpp17 build doesn't work with msvc. added a compile fix for externConstexpr and removed warnings with /EHsc

* Update libunifex.json

version update

* Update fix-compile-error.patch

relax clang warnings

* Update libunifex.json

git x-add-version libunifex

* remove unused

* x-add-versions

* remove old version log

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [tensorflow] update to 2.7, including bazel latest 4.x update (#22022)

* Revert "incorporate changes from microsoft:master"

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

* update tensorflow to 2.7 and bazel to latest 4.x

* Update version database.

Co-authored-by: jgehw <Joachim_Gehweiler@McAfee.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [hiredis] Fix static build (#22038)

* [hiredis] Fix static build

* Update version database

* [vcpkg baseline] Fix mpg123 build failed on Linux (#22028)

* [baseline] Fix mpg123 build failed on Linux

* update version

* Fix misspelled "module".

* Actually fix the misspelling this time Bill.

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [qt5-base] no _debug lib suffixes on macOS (#14225) (#21695)

* [qt5-base] no _debug lib suffixes on macOS (#14225)

* [qt5-base] patch qt5-base to remove _debug postfix on osx

* Apply suggestions from code review

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [qt5-base] create link to _debug.pc file from .pc file without _debug

* update version

* [qt5-base] create forward pkgconfig file

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [abseil] Upgrade to 2021.1102 (#22017)

* [abseil] Upgrade to 2021.1102

* revert portfile.cmake

* update version

* update portfile.cmake

* update version

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [python3] Support arm (#21528)

* [python3] Support arm on non Windows

* Support arm on all platform, add host dependency

* version

* [pybind11] Add supports

* version

Co-authored-by: NancyLi1013 <lirui09@beyondsoft.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>

* [openmvg] update to 2.0 (#22020)

* [openmvg] update to 2.0

* update version

* update patch

* update version

* [brynet] Update to 1.11.1 (#22021)

* brynet: upgrade to 1.11.1

* Update portfile.cmake

* Update brynet.json

* [graphicsmagick] update to version 1.3.37 (#22024)

* [graphicsmagick] update to version 1.3.37

* [graphicsmagick] manifest format

* [graphicsmagick] version database update

* [graphicsmagick] version-string -> version

* [graphicsmagick] version database update

* [meson] fix windows linker detection (#22032)

* fix meson linker detection .....

* bit of code cleanup in vcpkg_configure_meson

* forgot the version stuff

* put cmake back on path because meson is buggy as hell

* [libgpg-error] Release-only build support (#22036)

* [libgpg-error] Release-only build support

* Update version database

* Fix protfile spaces

* Update version database

* [elfutils] provide static or shared libraries correctly (#22055)

The logic for keeping the static or shared libraries according to
VCPKG_LIBRARY_LINKAGE was backwards, and it was providing shared
libraries when they should have been static, and vice versa.

* [gl3w] Use khrplatform.h from the egl-registry port (#22056)

* [gl3w] use khrplatform.h from the egl-registry port

The file was changed yesterday, invalidating the hash: KhronosGroup/EGL-Registry@57b4876de0f33677ece92dd9de0ef105ce69139d.

* [gl3w] migrate to new functions from vcpkg-cmake{,-config}

* [gl3w] bump port version

* [caf] Update to 0.18.5 (#22046)

* [caf] Update to 0.18.5

* Remove setting of BUILD_SHARED_LIBS already handled by vcpkg_cmake_configure.

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

* [gmsh] Add new port (#21896)

* add: gmsh

* add: versioning for gmsh.

* [gmsh] Re-factory code

* Fix install, remove some features due to lack required dependencies.

* version

* Do not support uwp officially

* version

* Update ports/gmsh/portfile.cmake

* Update versions/g-/gmsh.json

* Group the options

* version

* version

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

* [kf5] upgrade to 5.89 (#21890)

* [kf5*] Update to 5.89

* [kf5*] Update versions

* [kf5kio] update tag to rc2

* [kf5kio] update versions

* [kf5*] final 5.89 released

* [kf5*] update versions

* Clean up trailing whitespace and add quotes when naming .clang-format.

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

* [ompl] Add vcpkg_check_linkage (#21659)

* [ompl] Add vcpkg_check_linkage

* version

* version

* [pcl] Add feature apps, visualization, simulation, examples and add usage (#21788)

* [pcl] Add feature apps, visualization and examples

* version

* Add simulation

* Enable more apps, install examples, add usage

* format manifest file

* version

* set feature vtk as a alias for feature visualization

* version

* [activemq-cpp] Added missing libuuid dependency (#22059)

This is a mandatory dependency according to
https://github.com/apache/activemq-cpp/blob/master/README.txt

* [optimus-cpp] New port: ID hashing and Obfuscation using Knuth's Algorithm for C++ (#22025)

* [optimus-cpp] New port: ID hashing and Obfuscation using Knuth's Algorithm for C++

* Changed reference

* Update version database

* Fix hash

* Update version database

* Review changes and update lib version

* fixver

* Update version database

* Update version database 2

* Fix vcpkg deps

* Update version database

* [tensorflow-common] remove single quotes from vcpkg flags (#21869)

* [vcpkg_acquire_msys] Update bzip2 to 1.0.8-2

* [tensorflow-common] remove single quotes from vcpkg flags

They are escaped like '\'-mtune=native\''  which leads to a compiler error:
cc: error: unrecognized command line option '-mtune=native'
Set via: set(VCPKG_CXX_FLAGS "-mtune=native")

* [sdl2-mixer] Fix link mpg123 error (#22049)

* [sdl2-mixer] Fix link mpg123 error

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [x64-windows-release] add a single config community triplet based on x64-windows and make it work on some ports (#15983)

* add a single config community triplet based on x64-windows

* add a failed port, otherwise mechanism does not support empty list

* add failures to baseline

* remove duplicate entry

* second round of failures added to baseline

* third round of regressions added to CI

* [ade] fix single-config builds

* [ade] update refs

* remove duplicate entries

* [unix2dos] restore eol in script file

* add even more ports now failing in singleConfig...

* [libjpeg-turbo] remove unnecessary check

* [libjpeg-turbo] fix references

* [baseline] restore check for ports that were added recently

* [libmodplug] enable single config triplets

* [tensorflow-common] enable single config triplets

* update baseline

* fix references

* remove wrong check for single config triplets

* fix references

* [ogre] fix single config builds

* [ogre] fix references

* [untested] force x64-windows-release as host triplet when testing x64-windows-release in CI

* fix

* [x264] fix for single config

* [x264] update refs

* [libffi] enable single config builds

* [libffi] update refs

* remove cli broken arguments

* [calceph] enable single-config builds

* [calceph] fix references

* [kf5config] enable single-config builds

* [kf5config] fix references

* [detours] enable single-config builds

* [detours] fix references

* [kf5*] enable single-config builds

* [kf5*] fix references

* fix

* kf5config fix reference

* trying again to force host triplet in CI

* [boost] fix for single-config builds

* [boost] update references

* fix

* [boost] update refs

* disable host triplet in ci because it's not necessary

* retrigger a build for ports previously failing

* remove host triplet in ci, not necessary anymore?

* make PR dry

* [tensorflow-common] bump version

* [tensorflow-common] fix references

* Fix version database for boost-modular-build-helper.

* fix references

* restore CRLF on some ports

* bump versions

* fix references

* bump port versions

* fix references

* boost-modular-build-helper: Reverted due to no changes.

detours, kf5config, kf5holidays, libbacktrace: Reverted due to only whitespace changes.
libffi: bumped port-version
libmodplug: reverted due to no functional changes
ogre, ogre-next: reverted due to incorrect case of "Debug" vs. "Release" already fixed in master.

And rebuilt version database.

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

* [llvm] update to 13.0.0 (#20749)

* [llvm] update to 13.0.0

* add version

* [llvm] rework processing of the CMake packages

* update versions

* [llvm] return patch to fix config paths

* update version

* [llvm] allow to build Flang on Windows

* add version

* [llvm] temporary enable Flang by default for test

* update version

* [llvm] fix Flang installation

* update version

* [llvm] try to fix Flang build

* update version

* [llvm] remove Flang from defaults and use Perl path

* [halide] update to 13.0.0

* update versions

* [mesa] update to v21.2.5 and fix build with LLVM 13

* [llvm] use version

* update versions

* [opencv4] fix build with Halide 13

* update version

* update ci.baseline

* [halide] update usage file

* [llvm] update supports

* update versions

* [vcpkg-ci-llvm] add test port

* [vcpkg-ci-llvm] rework test port

* [vcpkg-ci-llvm] test more features

* [halide] update to v13.0.1

* update version

* [mesa] recover port version

* update versions

* [opencv4] update version

* update version

* Update opencv4.json

* [halide] update to v13.0.2 and fix usage

* update version

* Update ports/halide/portfile.cmake

Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>

* update version

* enable LLVM ABI breaking checks to avoid Halide build fail

Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>

* [quazip] no absolute paths (#21570)

* [qca] no absolute paths (#21571)

* [cutelyst2] no absolute paths (#21574)

* [vcpkg docs][ES] Sync with English readme (#21952) (#22103)

* fixed false friends for librería

* add vcpkg-tool repo

* sync with English Readme (#21952)

* fix non translated links

* [msbuild] Correct resulting triplet installation folder (#22079)

Co-authored-by: klaus triendl <klaus.triendl@firedaemon.com>

* [cppgraphqlgen] Update to latest 4.0.0 release (#22071)

* [cppgraphqlgen] Update to latest 4.0.0 release

* [cppgraphqlgen] vcpkg x-add-version cppgraphqlgen

* [cppgraphqlgen] Replace deprecated vcpkg functions

* [cppgraphqlgen] Re-run vcpkg x-add-version

* Flag the x64-linux CI pipeline as known failure

* [python3] Fix feature deprecated-win7-support. (#22090)

* [python3] Fix deprecated-win7-support patch.

* x-add-version

* Pass native install dir to nmake (#22095)

* [sqlcipher] bump version to 4.5.0 (#22089)

* [sqlcipher] bump version to 4.5.0

* fix hash

* [ncurses] Update (#22087)

* Update to 6.3

* Fix mingw

* Add ncurses usage

* Update versions

* [arrow] Update to 6.0.1 (#22084)

* Bump version to 6.0.1

* Update versions files

* [log4cxx] Update to 0.12.1 (#22065)

* [log4cxx] Update to 0.12.1

* Use version rather than version-string.

Co-authored-by: Hentschel, Marten <marten.hentschel@schoenhofer.de>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [teemo] Update to v2.4 (#22105)

* [cpp-ipc] Update 1.0.1

* [cpp-ipc] Update version and ci.baseline

* [cpp-ipc] Remove cpp-ipc from ci.baseline.txt

* [teemo] Update to v2.3

* [teemo] Run `vcpkg x-add-version --all`

* [teemo] Update vcpkg.json

* [teemo] Run vcpkg `x-add-version teemo --overwrite-version`

* Remove excess teemo.json

* [teemo] Update to v2.4

* [teemo] run ./vcpkg x-add-version --all

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [rapidcheck] Update rapidcheck to 2021-10-10 (#22100)

* Updated rapidcheck port to 2021-10-10.

* Further updated rapidcheck for pull request.

* Apparently I `x-add-version`ed wrong the first time.

* [libunifex] no absolute paths (#22098)

* [ graphicsmagick ] Add Webp support feature (#22061)

* [graphicsmagick] add support to WebP format

* [graphicsmagick] port version update

* [Tracy Profiler] Add new port (#21826)

* Adding tracy port

* Formatting tracy port

* Tidying up the port

* Formatting again

* Making sure git-tree is correct

* Adding correct vcpkg dependencies

* Newline at file end again

* Update version database

* Making sure to mark tracy as not supporting x86 at all

* Updating version again

* Responding to feedback and double checking which builds will work

* Updating versions

* Tidying up some loose ends

* Updating port version again

* Removing port-version 1

* Removing tracy from ci baseline

* Removing unnecessary include copy

* Updating version

* Resolving feedback

* Updating version and formatting

* Version for the version god

* tweaking tracy supports

* Formatting and version

* Version

* Adding pthreads dependency to tracy for non-windows platforms

* Version

* [vcpkg baseline][ffmpeg] Fix dependency alsa (#22110)

* [vcpkg baseline][ffmpeg] Fix dependency alsa

* version

* fix option name

* version

* Apply suggestion

* version

* [libzen,libmediainfo] update and no absolute paths (#21171)

* [libdatachannel] update to 0.16.0 (#22048)

* update libdatachannel to 0.16.0

* update libdatachannel to 0.16.0

* delete port-version

* update version

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [libsodium] Fix cross compile build (#22117)

* [sail] Update to 0.9.0-pre19 (#22118)

* [sail] Update to 0.9.0-pre19

* [sail] vcpkg x-add-version --all --overwrite-version

* [sail] Remove vcpkg_fail_port_install

* [sail] vcpkg x-add-version --all --overwrite-version

* [sentry-native] Update to 0.4.13 (#22119)

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>

* add x64-linux-release community triplet (#22120)

* add x64-osx-release community triplet (#22134)

* Fix powershell 5 compatibility (#22123)

* [sqlite3] Fix .pc (#22121)

Android does not have -lpthread

* [rapidcheck ] Update to 2021-12-20. (#22125)

* Updated rapidcheck to 2021-12-20.

* Updated version files.

* update cpr version to 1.7.2 (#22133)

* [teemo] Update to v2.5 (#22136)

* [cpp-ipc] Update 1.0.1

* [cpp-ipc] Update version and ci.baseline

* [cpp-ipc] Remove cpp-ipc from ci.baseline.txt

* [teemo] Update to v2.3

* [teemo] Run `vcpkg x-add-version --all`

* [teemo] Update vcpkg.json

* [teemo] Run vcpkg `x-add-version teemo --overwrite-version`

* Remove excess teemo.json

* [teemo] Update to v2.4

* [teemo] run ./vcpkg x-add-version --all

* [teemo] Update to v2.5

* [teemo] Update versions/t-/teemo.json

Co-authored-by: Jonliu1993 <13720414433@163.com>

* [entt] Update to 3.9.0 (#22147)

* [entt] Update to 3.9.0

* Update version files

* Migrate to new functions

* Update version

* [mvfst ] : Add new port (#22111)

* [abseil] Upgrade to 2021.1102

* revert portfile.cmake

* update version

* update portfile.cmake

* update version

* [s2geometry] google s2 for for manipulating geometric shapes

* [libevent] no absolute paths (#21179)

* [Pcre2] Check if files exists before call vcpkg_replace_string. (#22003)

* Check if files exists before call vcpkg_replace_string.

* Update per comments.

Only guard debug.

* Update ports/pcre2/portfile.cmake

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

* Bump port-version.

Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [lodepng] Fix cannot open include file "lodepng.h" (#22007)

* [lodepng] Fix cannot open include file "lodepng.h"

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [MyGUI] update to 3.4.1 (#22015)

* [MyGUI] update to 3.4.1

* update version

* [s2n] Update, add openssl dependency (#21484)

* Update to 1.3.0, add openssl dependency

* Add 'tests' feature

* Update versions

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

* Libpq update and VCPKG_OSX_SYSROOT fix (#21583)

* [libpq] Update to 12.9

* [libpq] Use VCPKG_OSX_SYSROOT if set

otherwise configure set the default sysroot in addition, ignoring the
sysroot set by vcpkg_configure_cmake.

* [libpq] remove comment only chunks from patches

* [libpq] update version registry

* [qhttpengine] New port (#22009)

* [qhttpengine] New port

* Update version database

* Fix the format of portfile.cmake

* Fix the format of portfile.cmake

* update version

* Remove duplicate build_shared_libs setting.

Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [ xtensor-io ] Fix wrong hash (#22018)

* [xtensor-io] Fix wrong hash

* update version

* [vcpkg] Update VMs for December 2021 Patch Tuesday (#22013)

* Add Microsoft.VisualStudio.ComponentGroup.UWP.VC.BuildTools to VS as requested by https://github.com/microsoft/vcpkg/issues/19554

* Cherry pick python changes from https://github.com/microsoft/vcpkg/pull/21912

* Update linux pool.

* Update windows pool.

* [starlink] Veggiesaurus/starlink ast cminpack fix (#20559)

* add CMINPACK_NO_DLL flag back

* bump port version

* updated versions JSON

* quotation mark adjustment

* git-tree update

* adjusted c flags configuration

* hash update

* whitespace fix

* git-tree hash update

* updated to ast 9.2.5, added external-cminpack flag

* updated version hash

* removed old version entry

* removed $schema element from json

* updated port git-tree hash

* [libunifex] Update to 2021-12-07 (#21995)

* updated libunifex version

* remove comment

* run x-add-versions --all

* Update ports/libunifex/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* rerun x-add-version libunifex

* Update versions/l-/libunifex.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* update libunifex to 12-07

* x-add-version

* libunifex port update

force cpp20 as cpp17 build doesn't work with msvc. added a compile fix for externConstexpr and removed warnings with /EHsc

* Update libunifex.json

version update

* Update fix-compile-error.patch

relax clang warnings

* Update libunifex.json

git x-add-version libunifex

* remove unused

* x-add-versions

* remove old version log

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [tensorflow] update to 2.7, including bazel latest 4.x update (#22022)

* Revert "incorporate changes from microsoft:master"

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

* update tensorflow to 2.7 and bazel to latest 4.x

* Update version database.

Co-authored-by: jgehw <Joachim_Gehweiler@McAfee.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [hiredis] Fix static build (#22038)

* [hiredis] Fix static build

* Update version database

* [vcpkg baseline] Fix mpg123 build failed on Linux (#22028)

* [baseline] Fix mpg123 build failed on Linux

* update version

* Fix misspelled "module".

* Actually fix the misspelling this time Bill.

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [qt5-base] no _debug lib suffixes on macOS (#14225) (#21695)

* [qt5-base] no _debug lib suffixes on macOS (#14225)

* [qt5-base] patch qt5-base to remove _debug postfix on osx

* Apply suggestions from code review

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [qt5-base] create link to _debug.pc file from .pc file without _debug

* update version

* [qt5-base] create forward pkgconfig file

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [python3] Support arm (#21528)

* [python3] Support arm on non Windows

* Support arm on all platform, add host dependency

* version

* [pybind11] Add supports

* version

Co-authored-by: NancyLi1013 <lirui09@beyondsoft.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>

* [openmvg] update to 2.0 (#22020)

* [openmvg] update to 2.0

* update version

* update patch

* update version

* [brynet] Update to 1.11.1 (#22021)

* brynet: upgrade to 1.11.1

* Update portfile.cmake

* Update brynet.json

* [graphicsmagick] update to version 1.3.37 (#22024)

* [graphicsmagick] update to version 1.3.37

* [graphicsmagick] manifest format

* [graphicsmagick] version database update

* [graphicsmagick] version-string -> version

* [graphicsmagick] version database update

* [meson] fix windows linker detection (#22032)

* fix meson linker detection .....

* bit of code cleanup in vcpkg_configure_meson

* forgot the version stuff

* put cmake back on path because meson is buggy as hell

* [libgpg-error] Release-only build support (#22036)

* [libgpg-error] Release-only build support

* Update version database

* Fix protfile spaces

* Update version database

* [elfutils] provide static or shared libraries correctly (#22055)

The logic for keeping the static or shared libraries according to
VCPKG_LIBRARY_LINKAGE was backwards, and it was providing shared
libraries when they should have been static, and vice versa.

* [gl3w] Use khrplatform.h from the egl-registry port (#22056)

* [gl3w] use khrplatform.h from the egl-registry port

The file was changed yesterday, invalidating the hash: KhronosGroup/EGL-Registry@57b4876de0f33677ece92dd9de0ef105ce69139d.

* [gl3w] migrate to new functions from vcpkg-cmake{,-config}

* [gl3w] bump port version

* [caf] Update to 0.18.5 (#22046)

* [caf] Update to 0.18.5

* Remove setting of BUILD_SHARED_LIBS already handled by vcpkg_cmake_configure.

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

* [gmsh] Add new port (#21896)

* add: gmsh

* add: versioning for gmsh.

* [gmsh] Re-factory code

* Fix install, remove some features due to lack required dependencies.

* version

* Do not support uwp officially

* version

* Update ports/gmsh/portfile.cmake

* Update versions/g-/gmsh.json

* Group the options

* version

* version

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

* [kf5] upgrade to 5.89 (#21890)

* [kf5*] Update to 5.89

* [kf5*] Update versions

* [kf5kio] update tag to rc2

* [kf5kio] update versions

* [kf5*] final 5.89 released

* [kf5*] update versions

* Clean up trailing whitespace and add quotes when naming .clang-format.

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

* [ompl] Add vcpkg_check_linkage (#21659)

* [ompl] Add vcpkg_check_linkage

* version

* version

* [pcl] Add feature apps, visualization, simulation, examples and add usage (#21788)

* [pcl] Add feature apps, visualization and examples

* version

* Add simulation

* Enable more apps, install examples, add usage

* format manifest file

* version

* set feature vtk as a alias for feature visualization

* version

* [activemq-cpp] Added missing libuuid dependency (#22059)

This is a mandatory dependency according to
https://github.com/apache/activemq-cpp/blob/master/README.txt

* [optimus-cpp] New port: ID hashing and Obfuscation using Knuth's Algorithm for C++ (#22025)

* [optimus-cpp] New port: ID hashing and Obfuscation using Knuth's Algorithm for C++

* Changed reference

* Update version database

* Fix hash

* Update version database

* Review changes and update lib version

* fixver

* Update version database

* Update version database 2

* Fix vcpkg deps

* Update version database

* [tensorflow-common] remove single quotes from vcpkg flags (#21869)

* [vcpkg_acquire_msys] Update bzip2 to 1.0.8-2

* [tensorflow-common] remove single quotes from vcpkg flags

They are escaped like '\'-mtune=native\''  which leads to a compiler error:
cc: error: unrecognized command line option '-mtune=native'
Set via: set(VCPKG_CXX_FLAGS "-mtune=native")

* [sdl2-mixer] Fix link mpg123 error (#22049)

* [sdl2-mixer] Fix link mpg123 error

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [mvfst]: New port: a client and server implementation of IETF QUIC protocol in C++ by Facebook

* [mvfst]: New port: a client and server implementation of IETF QUIC protocol in C++ by Facebook

* [mvfst] new port

* [mvfst] New port

* Update ports/mvfst/portfile.cmake

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* [mvfst] new port

* [mvfst]: new port

* [mvfst] new port

* [mvfst] new port

* [mvfst]: new port

Co-authored-by: Jonliu1993 <13720414433@163.com>
Co-authored-by: autoantwort <41973254+autoantwort@users.noreply.github.com>
Co-authored-by: Lars Glud <larshg@gmail.com>
Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Frank <65999885+FrankXie05@users.noreply.github.com>
Co-authored-by: Kai Pastor <dg0yt@darc.de>
Co-authored-by: Daniel Schürmann <daschuer@mixxx.org>
Co-authored-by: Vitaly <v31337@gmail.com>
Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Angus Comrie <accomrie@gmail.com>
Co-authored-by: Li Zeyang <a.banknote@gmail.com>
Co-authored-by: Joachim Gehweiler <44170764+jgehw@users.noreply.github.com>
Co-authored-by: jgehw <Joachim_Gehweiler@McAfee.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Co-authored-by: NancyLi1013 <lirui09@beyondsoft.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
Co-authored-by: IronsDu <irons.du@gmail.com>
Co-authored-by: Josue Andrade Gomes <josuegomes@gmail.com>
Co-authored-by: Clayton Wheeler <cswheeler@gmail.com>
Co-authored-by: Christian Fillion <cfillion@users.noreply.github.com>
Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>
Co-authored-by: X.ZhaoMa <ma@arch.ethz.ch>
Co-authored-by: Dawid Wróbel <me@dawidwrobel.com>

* [pdcurses] Revise portfile (#22092)

* Use vcpkg_build_nmake

* Update versions

* Use INSTALLDIR

* Update versions

* [imgui] Update to 1.86 (#22161)

* [imgui] Update to 1.86

* [imgui] Update version files

Co-authored-by: Rémy Tassoux <rt2@rasterizedworld.com>

* [drogon] Update to 1.7.4 (#22016)

* [drogon] Update to 1.7.4

* add fs.patch

* fix redis feature

Co-authored-by: antao <antao@heart-forever.com>

* [activemq-cpp] Add platform for dependency libuuid (#22151)

* [activemq-cpp] Add platform for dependency libuuid

* version

* [mlpack] no absolute paths (#22160)

* [highfive] Fix usage (#22150)

* [highfive] Fix usage

* version

* Re-fix

* version

* [libmysql] Fix could not find package config files (#22062)

* [libmysql] Fix could not find package config files

* update version

* [poco] Fix install PocoDataMySQL.lib

* update version

* [poco] Update portfile.cmake

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [Breakpad] fix cmake include install (#22130)

* [abseil] Upgrade to 2021.1102

* revert portfile.cmake

* update version

* update portfile.cmake

* update version

* [s2geometry] google s2 for for manipulating geometric shapes

* [libevent] no absolute paths (#21179)

* [Pcre2] Check if files exists before call vcpkg_replace_string. (#22003)

* Check if files exists before call vcpkg_replace_string.

* Update per comments.

Only guard debug.

* Update ports/pcre2/portfile.cmake

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

* Bump port-version.

Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [lodepng] Fix cannot open include file "lodepng.h" (#22007)

* [lodepng] Fix cannot open include file "lodepng.h"

* update version

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>

* [MyGUI] update to 3.4.1 (#22015)

* [MyGUI] update to 3.4.1

* update version

* [s2n] Update, add openssl dependency (#21484)

* Update to 1.3.0, add openssl dependency

* Add 'tests' feature

* Update versions

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

* Libpq update and VCPKG_OSX_SYSROOT fix (#21583)

* [libpq] Update to 12.9

* [libpq] Use VCPKG_OSX_SYSROOT if set

otherwise configure set the default sysroot in addition, ignoring the
sysroot set by vcpkg_configure_cmake.

* [libpq] remove comment only chunks from patches

* [libpq] update version registry

* [qhttpengine] New port (#22009)

* [qhttpengine] New port

* Update version database

* Fix the format of portfile.cmake

* Fix the format of portfile.cmake

* update version

* Remove duplicate build_shared_libs setting.

Co-authored-by: LilyWangLL <94091114+LilyWangLL@users.noreply.github.com>
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [ xtensor-io ] Fix wrong hash (#22018)

* [xtensor-io] Fix wrong hash

* update version

* [vcpkg] Update VMs for December 2021 Patch Tuesday (#22013)

* Add Microsoft.VisualStudio.ComponentGroup.UWP.VC.BuildTools to VS as requested by https://github.com/microsoft/vcpkg/issues/19554

* Cherry pick python changes from https://github.com/microsoft/vcpkg/pull/21912

* Update linux pool.

* Update windows pool.

* [starlink] Veggiesaurus/starlink ast cminpack fix (#20559)

* add CMINPACK_NO_DLL flag back

* bump port version

* updated versions JSON

* quotation mark adjustment

* git-tree update

* adjusted c flags configuration

* hash update

* whitespace fix

* git-tree hash update

* updated to ast 9.2.5, added external-cminpack flag

* updated version hash

* removed old version entry

* removed $schema element from json

* updated port git-tree hash

* [libunifex] Update to 2021-12-07 (#21995)

* updated libunifex version

* remove comment

* run x-add-versions --all

* Update ports/libunifex/vcpkg.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* rerun x-add-version libunifex

* Update versions/l-/libunifex.json

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>

* update libunifex to 12-07

* x-add-version

* libunifex port update

force cpp20 as cpp17 build doesn't work with msvc. added a compile fix for externConstexpr and removed warnings with /EHsc

* Update libunifex.json

version update

* Update fix-compile-error.patch

relax clang warnings

* Update libunifex.json

git x-add-version libunifex

* remove unused

* x-add-versions

* remove old version log

Co-authored-by: JonLiu1993 <63675417+JonLiu1993@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [tensorflow] update to 2.7, including bazel latest 4.x update (#22022)

* Revert "incorporate changes from microsoft:master"

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

* update tensorflow to 2.7 and bazel to latest 4.x

* Update version database.

Co-authored-by: jgehw <Joachim_Gehweiler@McAfee.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [hiredis] Fix static build (#22038)

* [hiredis] Fix static build

* Update version database

* [vcpkg baseline] Fix mpg123 build failed on Linux (#22028)

* [baseline] Fix mpg123 build failed on Linux

* update version

* Fix misspelled "module".

* Actually fix the misspelling this time Bill.

Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>

* [qt5-base] no _debug lib suffixes on macOS (#14225) (#21695)

* [qt5-base] no _debug lib suffixes on macOS (#14225)

* [qt5-base] patch qt5-base to remove _debug postfix on osx

* Apply suggestions from code review

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [qt5-base] create link to _debug.pc file from .pc file without _debug

* update version

* [qt5-base] create forward pkgconfig file

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* [python3] Support arm (#21528)

* [python3] Support arm on non Windows

* Support arm on all platform, add host dependency

* version

* [pybind11] Add supports

* version

Co-authored-by: NancyLi1013 <lirui09@beyondsoft.com>
Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>

* [openmvg] update to 2.0 (#22020)

* [openmvg] update to 2.0

* update version

* update patch

* update version

* [brynet] Update to 1.11.1 (#22021)

* brynet: upgrade to 1.11.1

* Update portfile.cmake

* Update brynet.json

* [graphicsmagick] update to version 1.3.37 (#22024)

* [graphicsmagick] update to version 1.3.37

* [graphicsmagick] manifest format

* [graphicsmagick] version database update

* [graphicsmagick] version-string -> version

* [graphicsmagick] version database update

* [meson] fix windows linker detection (#22032)

* fix meson linker detection .....

* bit of code cleanup in vcpkg_configure_meson

* forgot the version stuff

* put cmake back on path because meson is buggy as hell

* [libgpg-error] Release-only build support (#22036)

* [libgpg-error] Release-only build support

* Update version database

* Fix protfile spaces

* Update version database

* [elfutils] provide static or shared libraries correctly (#22055)

The logic for keeping the static or shared libraries according to
VCPKG_LIBRARY_LINKAGE was backwards, and it was providing shared
libraries when they should have been static, and vice versa.

* [gl3w] Use khrplatform.h from the egl-registry port (#22056)

* [gl3w] use khrplatform.h from the egl-registry port

The file was changed yesterday, invalidating the hash: KhronosGroup/EGL-Registry@57b4876de0f33677ece92dd9de0ef105ce69139d.

* [gl3w] migrate to new functions from vcpkg-cmake{,-config}

* [gl3w] bump port version

* [caf] Update to 0.18.5 (#22046)

* [caf] Update to 0.18.5

* Remove setting of BUILD_SHARED_LIBS already handled by vcpkg_cmake_configure.

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

* [gmsh] Add new port (#21896)

* add: gmsh

* add: versioning for gmsh.

* [gmsh] Re-factory code

* Fix install, remove some features due to lack required dependencies.

* version

* Do not support uwp officially

* version

* Update ports/gmsh/portfile.cmake

* Update versions/g-/gmsh.json

* Group the options

* version

* version

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

* [kf5] upgrade to 5.89 (#21890)

* [kf5*] Update to 5.89

* [kf5*] Update versions

* [kf5kio] update tag to rc2

* [kf5kio] update versions

* [kf5*] final 5.89 released

* [kf5*] update versions

…
@jimwang118 jimwang118 mentioned this pull request Mar 15, 2024
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants