-
Notifications
You must be signed in to change notification settings - Fork 494
[CMAKE] Unify third party dependency management #3460
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
[CMAKE] Unify third party dependency management #3460
Conversation
✅ Deploy Preview for opentelemetry-cpp-api-docs canceled.
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3460 +/- ##
=======================================
Coverage 89.92% 89.92%
=======================================
Files 219 219
Lines 7042 7042
=======================================
Hits 6332 6332
Misses 710 710 🚀 New features to boost your workflow:
|
Why do we need add a dedicated function |
@ThomsonTan They serve two different purposes. The The |
6012dff
to
af673b9
Compare
…ontent and find_package with the otel_add_thirdparty_package function. Remove the static third party dependency file. Move the version parsing to a version script and set the project version in the main command. Clean up cmake target usage.
…s. Adds a install_thirdparty.sh bash script. Use the script in ci and remove the separate install scripts for abseil, googletest, protobuf, and grpc. Adds third party tag files and removes references to specific third party versions from ci workflows.
…arty projects using the git submodules
… overrides third party package finds/fetches as required
0e2def7
to
94875f1
Compare
Closing this PR in favor of breaking up the changes into multiple PRs:
TODO:
|
Update third party dependency management in CMake.
Rationale:
third_party_release
file only accounts for some of the dependencies and the versions are not fully used in the CMake build, instead the github ci workflow files have a lot of dependency versions in them.Goals:
third_party_release
Changes
otel_add_thirdparty_package
function unify how third party dependencies are found/fetched.third_party_release
.WITH_API_ONLY
so it overrides any options that may import third party packages. Add api only test to verify.install_windows_deps
CMake function and ARCH detectionCURL::libcurl
targetprometheus-cpp
pull
andcore
targetsopentracing-cpp
targetOTELCPP_THIRDPARTY_FIND_PACKAGE_ONLY=ON
to prevent fetching from github or submodules.OTELCPP_THIRDPARTY_FETCH_CONTENT_ONLY=ON
WITH_GSL=ON
For significant contributions please make sure you have completed the following items:
CHANGELOG.md
updated for non-trivial changes