Skip to content

Rename cmake options with prefix OTELCPP_ #4268

Open
owent wants to merge 4 commits into
open-telemetry:mainfrom
owent:new_cmake_options
Open

Rename cmake options with prefix OTELCPP_ #4268
owent wants to merge 4 commits into
open-telemetry:mainfrom
owent:new_cmake_options

Conversation

@owent

@owent owent commented Jul 19, 2026

Copy link
Copy Markdown
Member

Fixes #4184

Changes

  • Rename cmake options with prefix OTELCPP_

For significant contributions please make sure you have completed the following items:

  • CHANGELOG.md updated for non-trivial changes
  • Unit tests have been added
  • Changes in public API reviewed

Fixes OTELCPP_BUILD_DLL and markdownlint

Fixes formatting

Fixes OTELCPP_BUILD_TESTING and add CHANGELOG
@owent
owent force-pushed the new_cmake_options branch from 98a4eaa to 7f85f9a Compare July 20, 2026 07:01
@owent
owent marked this pull request as ready for review July 20, 2026 07:01
@owent
owent requested a review from a team as a code owner July 20, 2026 07:01
Copilot AI review requested due to automatic review settings July 20, 2026 07:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses CMake option namespace collisions when opentelemetry-cpp is consumed as a subproject (e.g., via FetchContent / add_subdirectory) by introducing an OTELCPP_ prefix for the project’s CMake options and wiring deprecated legacy names to the new ones.

Changes:

  • Introduces OTELCPP_* CMake options (and wrapper helpers) and updates build logic to prefer the new names while warning on legacy names.
  • Updates CMakeLists across components/tests/examples/CI scripts to use OTELCPP_* option checks.
  • Updates documentation, install tests, and packaging/config helpers to reference the new option names.

Reviewed changes

Copilot reviewed 103 out of 103 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/ports/opentelemetry/portfile.cmake Updates example CMake option name in vcpkg port guidance
tools/build.cmd Updates Windows build script to pass renamed options
test_common/src/http/client/nosend/CMakeLists.txt Switches testing guard to OTELCPP_BUILD_TESTING
test_common/src/CMakeLists.txt Switches test_common subdir guard to OTELCPP_BUILD_TESTING
test_common/CMakeLists.txt Switches test_common target guard to OTELCPP_BUILD_TESTING
test_common/cmake/testing-options.cmake Updates cached CI preset options to OTELCPP_* names
test_common/cmake/preview-options.cmake Updates cached preview preset options to OTELCPP_* names
test_common/cmake/example-options.cmake Updates cached example preset options to OTELCPP_* names
test_common/cmake/component-options.cmake Updates cached component preset options to OTELCPP_* names
test_common/cmake/all-options-abiv2.cmake Updates ABI v2 preset options to OTELCPP_* names
test_common/cmake/all-options-abiv2-preview.cmake Updates ABI v2+preview preset options to OTELCPP_* names
test_common/cmake/all-options-abiv1.cmake Updates ABI v1 preset options to OTELCPP_* names
test_common/cmake/all-options-abiv1-preview.cmake Updates ABI v1+preview preset options to OTELCPP_* names
sdk/test/trace/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
sdk/test/metrics/CMakeLists.txt Renames benchmark/preview option checks to OTELCPP_*
sdk/test/common/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
sdk/test/CMakeLists.txt Renames configuration option checks to OTELCPP_WITH_CONFIGURATION
sdk/src/version/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/trace/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/resource/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/metrics/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/logs/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/configuration/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/common/CMakeLists.txt Renames install option checks to OTELCPP_INSTALL
sdk/src/CMakeLists.txt Renames configuration option checks to OTELCPP_WITH_CONFIGURATION
sdk/CMakeLists.txt Renames configuration/testing option checks to OTELCPP_*
resource_detectors/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
opentracing-shim/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
install/test/cmake/fetch_content_test/CMakeLists.txt Adds assertions validating subproject default for OTELCPP_BUILD_TESTING
install/test/cmake/examples_test/CMakeLists.txt Updates installed-component test to set OTELCPP_* options
install/test/cmake/api_only_test/CMakeLists.txt Updates API-only install test to use OTELCPP_* option names
INSTALL.md Updates documented CMake flags to OTELCPP_* equivalents
functional/otlp/CMakeLists.txt Renames functional test option checks to OTELCPP_WITH_OTLP_*
functional/CMakeLists.txt Renames functional test option checks to OTELCPP_WITH_OTLP_HTTP
ext/test/w3c_tracecontext_http_test_server/CMakeLists.txt Renames curl option checks to OTELCPP_WITH_HTTP_CLIENT_CURL
ext/test/http/CMakeLists.txt Renames curl option checks to OTELCPP_WITH_HTTP_CLIENT_CURL
ext/test/CMakeLists.txt Renames W3C test option checks to OTELCPP_BUILD_W3CTRACECONTEXT_TEST
ext/src/http/client/curl/http_client_curl.cc Updates log message to reference OTELCPP_WITH_OTLP_HTTP_COMPRESSION
ext/src/http/client/curl/CMakeLists.txt Renames curl/logging/compression option checks to OTELCPP_*
ext/src/dll/CMakeLists.txt Renames exporter option checks to OTELCPP_WITH_OTLP_*
ext/src/CMakeLists.txt Renames HTTP/client/DLL option checks to OTELCPP_*
ext/include/opentelemetry/ext/http/client/detail/default_factory.h Updates error text to reference OTELCPP_WITH_HTTP_CLIENT_CURL
ext/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
exporters/zipkin/README.md Updates build instructions to OTELCPP_WITH_ZIPKIN
exporters/zipkin/CMakeLists.txt Renames install/testing/curl option checks to OTELCPP_*
exporters/prometheus/CMakeLists.txt Renames install/testing option checks to OTELCPP_*
exporters/otlp/CMakeLists.txt Renames exporter/testing/benchmark option checks to OTELCPP_*
exporters/ostream/CMakeLists.txt Renames testing/install option checks to OTELCPP_*
exporters/memory/CMakeLists.txt Renames install/testing option checks to OTELCPP_*
exporters/etw/CMakeLists.txt Renames testing/benchmark option checks to OTELCPP_*
exporters/elasticsearch/CMakeLists.txt Renames install/testing option checks to OTELCPP_*
exporters/CMakeLists.txt Renames exporter option checks to OTELCPP_WITH_*
examples/tracer_configurator/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/simple/CMakeLists.txt Renames DLL/testing option checks to OTELCPP_*
examples/plugin/CMakeLists.txt Renames dynamic-loading/testing option checks to OTELCPP_*
examples/otlp/CMakeLists.txt Renames OTLP/DLL option checks to OTELCPP_*
examples/multithreaded/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/multi_processor/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/metrics_simple/CMakeLists.txt Renames DLL/testing option checks to OTELCPP_*
examples/logs_simple/CMakeLists.txt Renames DLL/testing option checks to OTELCPP_*
examples/logger_configurator/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/http/CMakeLists.txt Renames curl option checks to OTELCPP_WITH_HTTP_CLIENT_CURL
examples/explicit_parent/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/etw_threads/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/environment_carrier/CMakeLists.txt Renames DLL/testing option checks to OTELCPP_*
examples/custom_http_client/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
examples/configuration/CMakeLists.txt Renames exporter/DLL/testing option checks to OTELCPP_*
examples/common/metrics_foo_library/CMakeLists.txt Renames DLL option check to OTELCPP_BUILD_DLL
examples/common/logs_foo_library/CMakeLists.txt Renames DLL option check to OTELCPP_BUILD_DLL
examples/common/foo_library/CMakeLists.txt Renames DLL option check to OTELCPP_BUILD_DLL
examples/CMakeLists.txt Renames example gating options to OTELCPP_*
examples/batch/CMakeLists.txt Renames testing option checks to OTELCPP_BUILD_TESTING
docs/deprecation-process.md Updates deprecation documentation to use OTELCPP_* option names
docs/dependencies.md Updates STL option reference to OTELCPP_WITH_STL
docs/build-as-dll.md Updates DLL option reference to OTELCPP_BUILD_DLL
docs/abi-version-policy.md Updates ABI option references to OTELCPP_WITH_ABI_VERSION_*
docs/abi-policy.md Updates STL option reference to OTELCPP_WITH_STL
docker/Dockerfile Updates docker build flags to OTELCPP_* options
CMakeSettings.json Updates VS CMakeSettings variables to OTELCPP_* options
CMakeLists.txt Adds OTELCPP_* options, subproject-friendly defaults, and legacy option forwarding
cmake/tools.cmake Introduces helper wrappers to define options with deprecated legacy aliases
cmake/ryml.cmake Updates install toggle variable to OTELCPP_INSTALL
cmake/protobuf.cmake Updates install/utf8 validity option usage to OTELCPP_*
cmake/patch-imported-config.cmake Renames testing option checks to OTELCPP_BUILD_TESTING
cmake/package.cmake Renames package/tarball option to OTELCPP_TARBALL
cmake/opentelemetry-proto.cmake Renames OTLP gRPC/install checks to OTELCPP_*
cmake/opentelemetry-build-external-component.cmake Renames external component path option to OTELCPP_EXTERNAL_COMPONENT_PATH
cmake/nlohmann-json.cmake Updates install toggle variable to OTELCPP_INSTALL
cmake/ms-gsl.cmake Updates install toggle variable to OTELCPP_INSTALL
cmake/grpc.cmake Updates install toggle variable to OTELCPP_INSTALL
cmake/curl.cmake Updates install toggle variable to OTELCPP_INSTALL
ci/README.md Updates CI documentation to reference OTELCPP_WITH_STL
ci/do_ci.sh Updates CI CMake configure flags to OTELCPP_* options
ci/do_ci.ps1 Updates Windows CI CMake configure flags to OTELCPP_* options
CHANGELOG.md Documents the CMake option renames and deprecation/precedence rules
api/test/trace/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
api/test/logs/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
api/test/common/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
api/test/CMakeLists.txt Renames dynamic-loading option checks to OTELCPP_SKIP_DYNAMIC_LOADING_TESTS
api/test/baggage/CMakeLists.txt Renames benchmark option checks to OTELCPP_WITH_BENCHMARK
api/CMakeLists.txt Renames core build option checks to OTELCPP_* and updates related messages
.github/workflows/codeql-analysis.yml Updates CodeQL workflow configure flags to OTELCPP_WITH_OPENTRACING
.github/copilot-instructions.md Updates documented build flags to OTELCPP_* options

Comment thread CMakeLists.txt
Comment thread test_common/src/http/client/nosend/CMakeLists.txt Outdated
Comment thread tools/build.cmd
Comment thread tools/build.cmd
Comment thread exporters/otlp/CMakeLists.txt
@codecov

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.18%. Comparing base (676c9dc) to head (8658d79).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #4268      +/-   ##
==========================================
- Coverage   81.19%   81.18%   -0.01%     
==========================================
  Files         444      444              
  Lines       18880    18880              
==========================================
- Hits        15328    15325       -3     
- Misses       3552     3555       +3     
Files with missing lines Coverage Δ
...telemetry/ext/http/client/detail/default_factory.h 100.00% <ø> (ø)
ext/src/http/client/curl/http_client_curl.cc 82.26% <ø> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CMAKE] Add an OTELCPP_ prefix to CMake options

2 participants