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.
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.
Fixes https://github.com/microsoft/vcpkg/issues/39318
1.Delete tools(quicping,quicreach) that do not exist.
2. Fix the issue that afxdp_helper.h file does not exist during
compilation.
3. Remove patches fix-platform.patch and fix-warnings.patch that have
been fixed upstream.
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.
Mitigation for #39198.
Mesa CI is currently disabled for linux and osx, and also doesn't run
for android.
So we see CI effects only for Windows. Improving CI situation for mesa
is the subject of #36081. So keeping egl out of CI like before
https://github.com/microsoft/vcpkg/pull/37599 is the best option at the
moment.
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.
- [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.
- [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.
Update `folly` and its related ports to the latest version
`2024.05.20.00`.
The recent update to `folly` includes this commit:
99767aa88e,
which caused downstream `rsocket` to fail with the following error
during build.
```
vcpkg\rsocket\src\84ec7fc921-d730564084\rsocket\RSocketServer.cpp(32): error C2665: 'folly::ThreadLocal<rsocket::SetupResumeAcceptor,rsocket::RSocketServer::SetupResumeAcceptorTag,void>::ThreadLocal': no overloaded function could convert all the argument types
```
A patch has now been submitted to fix this issue.
- [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.
- [ ] ~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.
- [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.
---------
Co-authored-by: Jon <v-zhli17@microsoft.com>
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [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.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
Fixes https://github.com/microsoft/vcpkg/issues/38512
All features passed with following triplets:
x86-windows
x64-windows
x64-windows-static
- [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.
- [ ] ~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.
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [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.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
This removes the transitive dependency of liblzma via tiff
- [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.
---------
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
Co-authored-by: Alexander Neumann <you@example.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [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.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [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.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
Fix
https://github.com/microsoft/vcpkg/issues/34416#issuecomment-2068572360
Error:
```
LINK Pass 1: command "C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\link.exe Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\cmake_pch.cxx.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\__\__\Common\Precompiled.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\Application.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\ApplicationState.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\AreaSelectorControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\BackgroundControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\BackwardCompatibilityManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\CodeGenerator.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\EditorState.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\EditorToolTip.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\EditorWidgets.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\GroupMessage.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\LayoutEditor.rc.res Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\MainMenuControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\MainPaneControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\MainWorkspaceControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\MyGUI_RTTLayer.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelControllers.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelExtensionProperties.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelItems.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelMainProperties.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelProperties.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelTemplateProperties.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PanelUserData.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\Parse.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PositionSelectorControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\ProjectControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertiesPanelView.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldAlpha.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldColour.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldComboBox.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldEditBox.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldFileName.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldFont.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldNumeric.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldPosition.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldSkin.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\PropertyFieldType.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\RecentFilesManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SelectorControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SeparatorPartControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SettingsGeneralControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SettingsResourcePathsControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SettingsResourcesControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SettingsUpdateResourcesControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\SettingsWidgetsControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\StatisticInfoControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\TestState.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\TextureControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\TextureToolControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\ToolsControl.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\UndoManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WidgetContainer.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WidgetCreatorManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WidgetSelectorManager.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WidgetTypes.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WidgetsWindow.cpp.obj Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir\WorkspaceControl.cpp.obj /out:bin\LayoutEditor.exe /implib:lib\LayoutEditor.lib /pdb:bin\LayoutEditor.pdb /version:0.0 /machine:x64 /nologo /debug /INCREMENTAL /subsystem:windows lib\MyGUICommon_d.lib F:\1\vcpkg\installed\x64-windows\lib\SDL2.lib winmm.lib imm32.lib version.lib setupapi.lib lib\MyGUI.DummyPlatform_d.lib lib\MyGUIEngineStatic_d.lib lib\EditorFrameworkStatic_d.lib lib\MyGUICommon_d.lib F:\1\vcpkg\installed\x64-windows\lib\SDL2.lib winmm.lib imm32.lib version.lib setupapi.lib lib\MyGUI.DummyPlatform_d.lib lib\MyGUIEngineStatic_d.lib F:\1\vcpkg\installed\x64-windows\debug\lib\freetyped.lib F:\1\vcpkg\installed\x64-windows\debug\lib\zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir/intermediate.manifest Tools\LayoutEditor\CMakeFiles\LayoutEditor.dir/manifest.res" failed (exit code 1169) with the following output:
EditorFrameworkStatic_d.lib(ComponentFactory.cpp.obj) : error LNK2005: "public: __cdecl tools::BackgroundControl::BackgroundControl(void)" (??0BackgroundControl@tools@@QEAA@XZ) already defined in BackgroundControl.cpp.obj
EditorFrameworkStatic_d.lib(BackgroundControl.cpp.obj) : error LNK2005: "public: virtual __cdecl tools::BackgroundControl::~BackgroundControl(void)" (??1BackgroundControl@tools@@UEAA@XZ) already defined in BackgroundControl.cpp.obj
bin\LayoutEditor.exe : fatal error LNK1169: one or more multiply defined symbols found
```
Since the complete declaration of class `BackgroundControl` has been
included in the header file, `BackgroundControl` is removed from
`FACTORY_ITEM ` to avoid repeated function definitions.
- [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.~~
- [x] 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.
<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [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.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
---
1. Apologies for the _huge_ PR, but these packages are interdependent,
making it difficult to separate them into individual PRs.
2. The main focus of this PR is to update the following ports: folly,
fizz, wangle, proxygen, mvfst, and fbthrift. Additionally, rsocket needs
to be updated due to its reliance on folly. It is concerning that
rsocket has not been updated since 2021, while folly is actively
developed and maintained.
3. This PR also consolidates some patches into a single one, as some
patches modify the same file.
4. I need to include the cachelib package in the CI baseline file
because it depends on the libaio system package. I can achieve a
successful build locally when libaio is installed. Note that cachelib is
also updated to the latest available version.
```
$ sudo apt search libaio
Sorting... Done
Full Text Search... Done
libaio-dev/mantic,now 0.3.113-5 amd64 [installed]
Linux kernel AIO access library - development files
libaio1/mantic,now 0.3.113-5 amd64 [installed,automatic]
Linux kernel AIO access library - shared library
$ vcpkg install cachelib
Computing installation plan...
The following packages will be built and installed:
cachelib:x64-linux@2024.04.15.00
* fbthrift:x64-linux@2024.04.15.00
* fizz:x64-linux@2024.04.15.00
* folly[core,libaio,zlib]:x64-linux@2024.04.15.00
* mvfst:x64-linux@2024.04.15.00
* wangle:x64-linux@2024.04.15.00
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-linux...
Restored 0 package(s) from /home/miao/.cache/vcpkg/archives in 14.9 us. Use --debug to see more details.
Installing 1/6 folly[core,libaio,zlib]:x64-linux@2024.04.15.00...
Building folly[core,libaio,zlib]:x64-linux@2024.04.15.00...
-- Using cached facebook-folly-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/folly/src/4.04.15.00-b80a213ee9.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebook-folly-v2024.04.15.00.tar.gz
-- Applying patch disable-non-underscore-posix-names.patch
-- Applying patch boost-1.70.patch
-- Applying patch fix-windows-minmax.patch
-- Applying patch fix-deps.patch
-- Applying patch disable-uninitialized-resize-on-new-stl.patch
-- Applying patch fix-unistd-include.patch
-- Using source at /home/miao/vcpkg/buildtrees/folly/src/4.04.15.00-b80a213ee9.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/folly_x64-linux/share/folly/copyright
-- Fixing pkgconfig file: /home/miao/vcpkg/packages/folly_x64-linux/lib/pkgconfig/libfolly.pc
-- Fixing pkgconfig file: /home/miao/vcpkg/packages/folly_x64-linux/debug/lib/pkgconfig/libfolly.pc
-- Performing post-build validation
Stored binaries in 1 destinations in 17 s.
Elapsed time to handle folly:x64-linux: 6.3 min
folly:x64-linux package ABI: ce6dd8349631a07b047b6242099b65accab633afe713705b0da435414bc119c2
Installing 2/6 fizz:x64-linux@2024.04.15.00...
Building fizz:x64-linux@2024.04.15.00...
-- Using cached facebookincubator-fizz-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/fizz/src/4.04.15.00-d535f4a534.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebookincubator-fizz-v2024.04.15.00.tar.gz
-- Applying patch fix-build.patch
-- Using source at /home/miao/vcpkg/buildtrees/fizz/src/4.04.15.00-d535f4a534.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/fizz_x64-linux/share/fizz/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 3.1 s.
Elapsed time to handle fizz:x64-linux: 2 min
fizz:x64-linux package ABI: 844ba8f534cdb73330de3ba6c4c7429635035d093395152a1bb7daeb4cd3f511
Installing 3/6 mvfst:x64-linux@2024.04.15.00...
Building mvfst:x64-linux@2024.04.15.00...
-- Using cached facebook-mvfst-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/mvfst/src/4.04.15.00-aab79f192b.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebook-mvfst-v2024.04.15.00.tar.gz
-- Using source at /home/miao/vcpkg/buildtrees/mvfst/src/4.04.15.00-aab79f192b.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/mvfst_x64-linux/share/mvfst/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 9.3 s.
Elapsed time to handle mvfst:x64-linux: 5.4 min
mvfst:x64-linux package ABI: 742b1e47a5108adac566ae4ad787e73fb4ac3d1dac7c0ab290056a8884ec8585
Installing 4/6 wangle:x64-linux@2024.04.15.00...
Building wangle:x64-linux@2024.04.15.00...
-- Using cached facebook-wangle-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/wangle/src/4.04.15.00-d032e08eb3.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebook-wangle-v2024.04.15.00.tar.gz
-- Applying patch fix-config-cmake.patch
-- Applying patch fix_dependency.patch
-- Using source at /home/miao/vcpkg/buildtrees/wangle/src/4.04.15.00-d032e08eb3.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/wangle_x64-linux/share/wangle/usage
-- Installing: /home/miao/vcpkg/packages/wangle_x64-linux/share/wangle/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 2 s.
Elapsed time to handle wangle:x64-linux: 1.4 min
wangle:x64-linux package ABI: 25eecbd80463fb623b986e0a839d936bdb7ce84418cfbb122b7c6a18f9298da8
Installing 5/6 fbthrift:x64-linux@2024.04.15.00...
Building fbthrift:x64-linux@2024.04.15.00...
-- Using cached facebook-fbthrift-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/fbthrift/src/4.04.15.00-676cd7c3b0.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebook-fbthrift-v2024.04.15.00.tar.gz
-- Applying patch fix-glog.patch
-- Applying patch 0002-fix-dependency.patch
-- Using source at /home/miao/vcpkg/buildtrees/fbthrift/src/4.04.15.00-676cd7c3b0.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/fbthrift_x64-linux/share/fbthrift/copyright
-- Adjusted RPATH of '/home/miao/vcpkg/packages/fbthrift_x64-linux/tools/fbthrift/thrift1' (From '/home/miao/vcpkg/packages/fbthrift_x64-linux/lib' -> To '$ORIGIN:$ORIGIN/../../lib')
-- Performing post-build validation
Stored binaries in 1 destinations in 22 s.
Elapsed time to handle fbthrift:x64-linux: 16 min
fbthrift:x64-linux package ABI: 1bc7f81cd065c797e1272ed12b0d101f500ec31707185b183489f16e17224410
Installing 6/6 cachelib:x64-linux@2024.04.15.00...
Building cachelib:x64-linux@2024.04.15.00...
-- Using cached facebook-CacheLib-v2024.04.15.00.tar.gz.
-- Cleaning sources at /home/miao/vcpkg/buildtrees/cachelib/src/4.04.15.00-467d8fff12.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/miao/vcpkg/downloads/facebook-CacheLib-v2024.04.15.00.tar.gz
-- Applying patch fix-build.patch
-- Applying patch fix-glog.patch
-- Using source at /home/miao/vcpkg/buildtrees/cachelib/src/4.04.15.00-467d8fff12.clean
-- Found external ninja('1.11.1').
-- Configuring x64-linux
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/miao/vcpkg/packages/cachelib_x64-linux/share/cachelib/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 9.2 s.
Elapsed time to handle cachelib:x64-linux: 6.8 min
cachelib:x64-linux package ABI: eb476b6caf2174b1be9ef3564cc9ba66c4ca2bc11e44545b090f5e3349669704
Total install time: 38 min
cachelib provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(cachelib CONFIG REQUIRED)
# note: 2 additional targets are not displayed.
target_link_libraries(main PRIVATE cachelib cachelib_shm cachelib_navy cachelib_common)
```