Fixes `OUTPUT_VARIABLE`, `ERROR_VARIABLE`.
vcpkg always wants logfiles. CMake (`execute_process`) doesn't send
stdout/stderr to files and variables at the same time, and even "the
precedence is not specified". So simultaneous output has to be handled
in `vcpkg_execute_required_process`.
At this occasion, port the arguments for stripping trailing whitespace.
`tensorflow-common` implicitly relied on the broken behavior. I chose
the minimal fix: drop the pointless calls, just set the empty value.
Resolves https://github.com/microsoft/vcpkg/issues/35566
This pr includes https://github.com/microsoft/vcpkg/pull/31159 and
https://github.com/microsoft/vcpkg/pull/35399
Ports changed in this pr:
Most of these changes stem from the fact that protobuf now depends on
abseil and requires c++14 while ports consume protobuf using
`target_link_libraries(lib ${Protobuf_LIBRARIES})` instead of
`target_link_libraries(lib PUBLIC protobuf::libprotobuf)`.
* **abseil** Updated to 03/04/2024 to address MSVC build issue in
openvino
* **arcus** Updated to 4.13.2
* **braft** Patched to use `find_package(Protobuf` instead of custom
FindProtobuf module. also link with `PUBLIC protobuf::libprotobuf)`.
* **brpc** Patch several `target_link_library` calls to include `PUBLIC`
instead of nothing. Patch some warnings that are treated as errors by
some OSX compiler. Patch usage of changed protobuf features most
importantly removal of `SetLogHandler`, tbd whether this patch is
acceptable with upstream.
* **cld3** Use CONFIG to find protobuf to propagate dependent abseil
libs and cxx14 correctly.
* **ecal** Use CONFIG to find protobuf. Use PUBLIC when linking it.
* **gamenetworkingsockets** Add `-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=on`
for protobuf.
* **gz-transport12** Update to fix usage of removed protobuf features.
* **ignition-msgs1/5/6** Remove protobuf version check which is confused
by the duplicate versioning scheme (v25.1 vs. 3.25.1 vs 4.x). Why are we
even maintaining this no longer maintained major version of this port? I
would welcome a more strict policy on removing ports/adding them to
ci.baseline.txt
* **ignition-transport4/8/9** Same as above + cherry-pick a protobuf
deprecation patch.
* **libprotobuf-mutator** Cherry-pick two commits to address altered
protobuf functionality. Add CONFIG and PUBLIC to protobuf handling in
CMake.
* **marble** Explicitly set protobuf to not found since it is not part
of the vcpkg.json but is made available transitively but another
dependency.
* **mysql-connector-cpp** Several CMake changes and removal of
protobuf::SetLogHandler patch.
* **openvino** Find protobuf using CONFIG
* **osgearth** Link libraries using PUBLIC and link with
protobuf::libprotobuf instead of Protobuf_LIBRARIES
* **paraview** Find protobuf using CONFIG and remove version check
* **pulsar-client-cpp** Add protobuf linkage to PULSAR_OBJECT_LIB.
Simplify protoc patch. Remove -Werror.
* **shogun** Update and patch as much as possible. Users are required to
override bitsery version to 4.x to use shogun since it does not support
5.x provided by vcpkg. Therefore add shogun to ci.baseline.txt.
* **srpc** Update and fix static crt linkage. Patch protobuf linkage and
remove hardcoded `-std=c++11` flag. Protobuf requires c++14 and CMake
does not recognize the hardcoded c++11 flag and will therefore not add a
c++14 flag when the compiler uses c++14 by default.
* **upb** Update to align version with protobuf/grpc and use new github
repo. Patch usual CMake mess (they do not support CMake officially)
which should probably be `unofficial-upbConfig.cmake` but I didn't dig
into downstream implications so I kept it at `upbConfig.cmake` as
before.
* **utf8-range** Update to allign version with protobuf.
while playing with qtbase on x64-uwp i found that it could not pass a
try_compile command since important variables are not correctly
forwarded. As such I concluded that the handling of try_compile in vcpkg
is completely wrong.
If a call to `vcpkg_replace_string` makes no changes i.e doesn't
effectively replace a string, A warning is logged.
This should also help identify ports that no longer need these calls to
fix things in `.pc` files etc.
Passing on
https://dev.azure.com/vcpkg/public/_build/results?buildId=103938&view=results.
```
PASSING, REMOVE FROM FAIL LIST: c4core:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: botan:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: concurrencpp:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: cppgraphqlgen:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: graphicsmagick:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: libcoro:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: ms-ifc-sdk:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: stx:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: yoga:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: c4core:x64-android
PASSING, REMOVE FROM FAIL LIST: botan:x64-android
PASSING, REMOVE FROM FAIL LIST: concurrencpp:x64-android
PASSING, REMOVE FROM FAIL LIST: cppgraphqlgen:x64-android
PASSING, REMOVE FROM FAIL LIST: graphicsmagick:x64-android
PASSING, REMOVE FROM FAIL LIST: libcoro:x64-android
PASSING, REMOVE FROM FAIL LIST: ms-ifc-sdk:x64-android
PASSING, REMOVE FROM FAIL LIST: stx:x64-android
PASSING, REMOVE FROM FAIL LIST: yoga:x64-android
PASSING, REMOVE FROM FAIL LIST: c4core:arm64-android
PASSING, REMOVE FROM FAIL LIST: botan:arm64-android
PASSING, REMOVE FROM FAIL LIST: concurrencpp:arm64-android
PASSING, REMOVE FROM FAIL LIST: cppgraphqlgen:arm64-android
PASSING, REMOVE FROM FAIL LIST: graphicsmagick:arm64-android
PASSING, REMOVE FROM FAIL LIST: libcoro:arm64-android
PASSING, REMOVE FROM FAIL LIST: ms-ifc-sdk:arm64-android
PASSING, REMOVE FROM FAIL LIST: stx:arm64-android
PASSING, REMOVE FROM FAIL LIST: yoga:arm64-android
```
Added `c4core` to `ci.baseline.txt` by #29406, which has been fixed by
#39287.
Added `botan` to `ci.baseline.txt` by #37252, which has been fixed by
#38975.
Added `concurrencpp` to `ci.baseline.txt` by #29406, which may have been
fixed by #39160.
Added `cppgraphqlgen` to `ci.baseline.txt` by #29406, which may have
been fixed by #38975.
Added `graphicsmagick` to `ci.baseline.txt` by #29406, which has been
fixed by #39210.
Added `libcoro` to `ci.baseline.txt` by #30623, which may have been
fixed by #38975.
Added `ms-ifc-sdk` to `ci.baseline.txt` by #35972, which may have been
fixed by #39210.
Added `stx` to `ci.baseline.txt` by #29406, which may have been fixed by
#38975.
Added `yoga` to `ci.baseline.txt` by #37507, which may have been fixed
by #38975.
Avoid wrong use of popular but ambiguous variables (`WIN32` etc.) in
scripts and portfiles by detection in CI.
Sometimes the variables are used wrongly, and sometimes this isn't
caught in PR review. This PR tries to catch those variables (when in the
active code path in script mode). [This can happen to every
contributor](https://github.com/microsoft/vcpkg/pull/34356#discussion_r1360074122),
even if he/she knows the rules ... vcpkg is raising the bar higher than
usual, having to deal with targets and hosts even in script mode.
(`b2-options.cmake` (boost fragment) shows where we get if we don't pay
attention: the same code being used in script mode (`WIN32` meaning
host) and in project mode (`WIN32` meaning target).)
The new check doesn't break any user builds because it relies on command
line options. However it changes the ABI hashes.
Fixes#38764, update `7zip` to 24.06.
No feature needs to be tested, the usage test passed on
`x64-windows`(header files found):
```
7zip provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(7zip CONFIG REQUIRED)
target_link_libraries(main PRIVATE 7zip::7zip)
```
msys2-runtime no longer supports Windows 7 since version 3.5.
msys2-runtime-3.4 is the replacement for user who cannot upgrade. YMMV.
autoconf-wrapper is not updated, cf. #36774.
pkgconf is not updated, waiting for 2.2.
Passing on
https://dev.azure.com/vcpkg/public/_build/results?buildId=103701&view=results.
Added `clockutils:x64-linux=fail` to `ci.baseline.txt` by #9203, which
has been fixed by #38834.
```
PASSING, REMOVE FROM FAIL LIST: clockutils:x64-linux
```
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] ~~SHA512s are updated for each updated download.~~
- [ ] ~~The "supports" clause reflects platforms that may be fixed by
this new version.~~
- [ ] ~~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- [ ] ~~Any patches that are no longer applied are deleted from the
port's directory.~~
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
Co-authored-by: Monica <v-liumonica@microsoft.com>
Fixes#37189
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [x] The "supports" clause reflects platforms that may be fixed by this
new version.
- [x] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.
- [x] Any patches that are no longer applied are deleted from the port's
directory.
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
Fix incorrect entries of `scripts/ci.baseline.txt`.
Fix#38787, won't fix downstream `rmqcpp` for #38736.
* Keep skip in CI
- Conflict dependencies `pcre2`, `ryu` in #32645
* Disable `android`
- There is a weird error that failed to find
`BdeBuildSystem/bbs_runtest.py` by
`BdeBuildSystem/BdeBuildSystemConfig.cmake`
* Disable `arm64-windows`
- Failed with `groups\bsl\bsls\bsls_platform.h(419): fatal error C1189:
#error: "Unable to identify CPU on which the MSVC compiler is running."`
* Disable `uwp`
- Failed with `groups\bdl\bdlb\bdlb_randomdevice.cpp(93): error C3861:
'CryptAcquireContext': identifier not found`
* Check `scripts/ci.baseline.txt`
- Checked by `Get-Content ./scripts/ci.baseline.txt | Select-String
-NotMatch '^#' | Select-String -NotMatch
':(arm-neon-android|arm64-android|arm64-osx|arm64-uwp|arm64-windows|x64-android|x64-linux|x64-osx|x64-uwp|x64-windows|x64-windows-static|x64-windows-static-md|x86-windows)\s*='`
```
PASSING, REMOVE FROM FAIL LIST: hdf5:arm-neon-android
PASSING, REMOVE FROM FAIL LIST: hdf5:x64-android
PASSING, REMOVE FROM FAIL LIST: hdf5:arm64-android
PASSING, REMOVE FROM FAIL LIST: hdf5:arm64-windows
```
Passing on
https://dev.azure.com/vcpkg/public/_build/results?buildId=103642&view=results.
The installation of `hdf5:arm64-windows` and androids triplet were fixed
by PR https://github.com/microsoft/vcpkg/pull/38911.
Other ports are dependent on `hdf5`, so add them fail status of androids
triplet in `ci.baseline.txt`.
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] ~~SHA512s are updated for each updated download.~~
- [ ] ~~The "supports" clause reflects platforms that may be fixed by
this new version.~~
- [ ] ~~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- [ ] ~~Any patches that are no longer applied are deleted from the
port's directory.~~
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
---------
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
* Run through the macOS update instructions one more time. I think
they're in a pretty good state now since this is the first attempt to
rerun them since we dropped Vagrant.
* Removed Parallels references for arm64.
* Removed references to removing Vagrant because it's no longer on any
of the hosts.
* Update macOS to 14.5.
* Update XCode CLT to 14.3.
Fixes:
~~~
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
~~~