`submodule.<name>.shallow=true` don't work in the CMakeLists.txt

$ cmake -B build-by-cmake-2 -G Ninja -DCMAKE_C_COMPILER=gcc-15 -DCMAKE_CXX_COMPILER=g++-15 -DFETCHCONTENT_QUIET=OFF -DFETCHCONTENT_FULL_VERBOSE=ON
CMake Warning:
  This project has been configured with a project file other than
  CMakeLists.txt.  This feature is intended for temporary use during
  development and not for publication of a final product.


-- Populating oatpp
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/oatpp-subbuild
[0/7] Performing update step for 'oatpp-populate'
-- Fetching latest from the remote origin
[1/7] No patch step for 'oatpp-populate'
[3/7] No configure step for 'oatpp-populate'
[4/7] No build step for 'oatpp-populate'
[5/7] No install step for 'oatpp-populate'
[6/7] No test step for 'oatpp-populate'
[7/7] Completed 'oatpp-populate'

############################################################################
## oatpp module compilation config:

OATPP_DISABLE_ENV_OBJECT_COUNTERS=OFF
OATPP_THREAD_HARDWARE_CONCURRENCY=AUTO
OATPP_COMPAT_BUILD_NO_THREAD_LOCAL=OFF

############################################################################

oatpp version: '1.4.0'
OATPP_ADD_LINK_LIBS=atomic

############################################################################
## oatpp-module-install.cmake

OATPP_THIS_MODULE_NAME=oatpp
OATPP_THIS_MODULE_VERSION=1.4.0
OATPP_THIS_MODULE_LIBRARIES=oatpp;oatpp-test
OATPP_THIS_MODULE_TARGETS=oatpp;oatpp-test
OATPP_THIS_MODULE_DIRECTORIES=oatpp;oatpp-test

############################################################################

-- Populating opentelemetry-cpp
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-subbuild
[0/8] Performing download step (git clone) for 'opentelemetry-cpp-populate'
Cloning into 'opentelemetry-cpp-src'...
remote: Enumerating objects: 13619, done.        
remote: Counting objects: 100% (13619/13619), done.        
remote: Compressing objects: 100% (6569/6569), done.        
remote: Total 13619 (delta 8952), reused 9598 (delta 5946), pack-reused 0 (from 0)        
Receiving objects: 100% (13619/13619), 6.26 MiB | 4.27 MiB/s, done.
Resolving deltas: 100% (8952/8952), done.
Already on 'main'
Your branch is up to date with 'origin/main'.
Submodule 'third_party/benchmark' (https://github.com/google/benchmark) registered for path 'third_party/benchmark'
Submodule 'third_party/googletest' (https://github.com/google/googletest) registered for path 'third_party/googletest'
Submodule 'third_party/ms-gsl' (https://github.com/microsoft/GSL) registered for path 'third_party/ms-gsl'
Submodule 'third_party/nlohmann-json' (https://github.com/nlohmann/json) registered for path 'third_party/nlohmann-json'
Submodule 'third_party/opentelemetry-proto' (https://github.com/open-telemetry/opentelemetry-proto) registered for path 'third_party/opentelemetry-proto'
Submodule 'third_party/opentracing-cpp' (https://github.com/opentracing/opentracing-cpp.git) registered for path 'third_party/opentracing-cpp'
Submodule 'third_party/prometheus-cpp' (https://github.com/jupp0r/prometheus-cpp) registered for path 'third_party/prometheus-cpp'
Submodule 'tools/vcpkg' (https://github.com/Microsoft/vcpkg) registered for path 'tools/vcpkg'
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/benchmark'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/opentracing-cpp'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/prometheus-cpp'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/opentelemetry-proto'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/ms-gsl'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/googletest'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/nlohmann-json'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/tools/vcpkg'...
Submodule path 'third_party/benchmark': checked out '344117638c8ff7e239044fd0fa7085839fc03021'
Submodule path 'third_party/googletest': checked out 'f8d7d77c06936315286eb55f8de22cd23c188571'
Submodule path 'third_party/ms-gsl': checked out '6f4529395c5b7c2d661812257cd6780c67e54afa'
Submodule path 'third_party/nlohmann-json': checked out '55f93686c01528224f448c19128836e7df245f72'
Submodule path 'third_party/opentelemetry-proto': checked out '8654ab7a5a43ca25fe8046e59dcd6935c3f76de0'
Submodule path 'third_party/opentracing-cpp': checked out '06b57f48ded1fa3bdd3d4346f6ef29e40e08eaf5'
Submodule path 'third_party/prometheus-cpp': checked out 'e5fada43131d251e9c4786b04263ce98b6767ba5'
Submodule 'civetweb' (https://github.com/civetweb/civetweb.git) registered for path 'third_party/prometheus-cpp/3rdparty/civetweb'
Submodule 'googletest' (https://github.com/google/googletest.git) registered for path 'third_party/prometheus-cpp/3rdparty/googletest'
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/prometheus-cpp/3rdparty/civetweb'...
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/opentelemetry-cpp-src/third_party/prometheus-cpp/3rdparty/googletest'...
Submodule path 'third_party/prometheus-cpp/3rdparty/civetweb': checked out 'd7ba35bbb649209c66e582d5a0244ba988a15159'
Submodule path 'third_party/prometheus-cpp/3rdparty/googletest': checked out 'e2239ee6043f73722e7aa812a459f54a28552929'
Submodule path 'tools/vcpkg': checked out 'fba75d09065fcc76a25dcf386b1d00d33f5175af'
[1/8] Performing update step for 'opentelemetry-cpp-populate'
-- Fetching latest from the remote origin
Fetching submodule third_party/benchmark
Fetching submodule tools/vcpkg
Fetching submodule third_party/googletest
Fetching submodule third_party/ms-gsl
Fetching submodule third_party/nlohmann-json
Fetching submodule third_party/opentelemetry-proto
Fetching submodule third_party/opentracing-cpp
Fetching submodule third_party/prometheus-cpp
Fetching submodule third_party/prometheus-cpp/3rdparty/civetweb
Fetching submodule third_party/prometheus-cpp/3rdparty/googletest
[2/8] No patch step for 'opentelemetry-cpp-populate'
[4/8] No configure step for 'opentelemetry-cpp-populate'
[5/8] No build step for 'opentelemetry-cpp-populate'
[6/8] No install step for 'opentelemetry-cpp-populate'
[7/8] No test step for 'opentelemetry-cpp-populate'
[8/8] Completed 'opentelemetry-cpp-populate'
CMake Deprecation Warning at build-by-cmake-2/_deps/opentelemetry-cpp-src/CMakeLists.txt:9 (cmake_policy):
  The OLD behavior for policy CMP0092 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- Populating googletest
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/googletest-subbuild
[1/9] Creating directories for 'googletest-populate'
[1/9] No download step for 'googletest-populate'
[2/9] No update step for 'googletest-populate'
[3/9] No patch step for 'googletest-populate'
[5/9] No configure step for 'googletest-populate'
[6/9] No build step for 'googletest-populate'
[7/9] No install step for 'googletest-populate'
[8/9] No test step for 'googletest-populate'
[9/9] Completed 'googletest-populate'
-- Populating benchmark
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2/_deps/benchmark-subbuild
[1/9] Creating directories for 'benchmark-populate'
[1/9] No download step for 'benchmark-populate'
[2/9] No update step for 'benchmark-populate'
[3/9] No patch step for 'benchmark-populate'
[5/9] No configure step for 'benchmark-populate'
[6/9] No build step for 'benchmark-populate'
[7/9] No install step for 'benchmark-populate'
[8/9] No test step for 'benchmark-populate'
[9/9] Completed 'benchmark-populate'
-- Failed to find LLVM FileCheck
-- git version: v1.8.3 normalized to 1.8.3
-- Google Benchmark version: 1.8.3
-- Performing Test HAVE_STD_REGEX -- success
-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
-- Performing Test HAVE_POSIX_REGEX -- success
-- Performing Test HAVE_STEADY_CLOCK -- success
-- Performing Test HAVE_PTHREAD_AFFINITY -- success
-- ---------------------------------------------
-- build settings
-- ---------------------------------------------
-- OpenTelemetry VERSION: 1.23.0-dev
-- OpenTelemetry ABI: 1
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- CXX: GNU 15.2.0
-- CMAKE_BUILD_TYPE: 
-- CXXFLAGS: 
-- CMAKE_CXX_STANDARD: 
-- CMAKE_TOOLCHAIN_FILE: /home/anlexn/workspace/github.com/anlexN/vcpkg/scripts/buildsystems/vcpkg.cmake
-- BUILD_SHARED_LIBS: OFF
-- ---------------------------------------------
-- opentelemetry-cpp build options
-- ---------------------------------------------
-- WITH_API_ONLY: OFF
-- WITH_NO_DEPRECATED_CODE: OFF
-- WITH_ABI_VERSION_1: ON
-- WITH_ABI_VERSION_2: OFF
-- OTELCPP_VERSIONED_LIBS: OFF
-- OTELCPP_MAINTAINER_MODE: OFF
-- WITH_STL: OFF
-- WITH_GSL: OFF
-- WITH_NO_GETENV: OFF
-- ---------------------------------------------
-- opentelemetry-cpp cmake component options
-- ---------------------------------------------
-- WITH_OTLP_GRPC: OFF
-- WITH_OTLP_HTTP: OFF
-- WITH_OTLP_FILE: OFF
-- WITH_HTTP_CLIENT_CURL: OFF
-- WITH_ZIPKIN: OFF
-- WITH_PROMETHEUS: OFF
-- WITH_ELASTICSEARCH: OFF
-- WITH_OPENTRACING: OFF
-- WITH_ETW: 
-- OPENTELEMETRY_BUILD_DLL: 
-- ---------------------------------------------
-- feature preview options
-- ---------------------------------------------
-- WITH_ASYNC_EXPORT_PREVIEW: OFF
-- WITH_THREAD_INSTRUMENTATION_PREVIEW: OFF
-- WITH_METRICS_EXEMPLAR_PREVIEW: OFF
-- WITH_OTLP_GRPC_SSL_MTLS_PREVIEW: OFF
-- WITH_OTLP_GRPC_CREDENTIAL_PREVIEW: OFF
-- WITH_OTLP_RETRY_PREVIEW: OFF
-- ---------------------------------------------
-- third-party options
-- ---------------------------------------------
-- WITH_NLOHMANN_JSON: OFF
-- WITH_CURL_LOGGING: OFF
-- WITH_OTLP_HTTP_COMPRESSION: OFF
-- ---------------------------------------------
-- examples and test options
-- ---------------------------------------------
-- WITH_BENCHMARK: ON
-- WITH_EXAMPLES: ON
-- WITH_EXAMPLES_HTTP: OFF
-- WITH_FUNC_TESTS: ON
-- BUILD_W3CTRACECONTEXT_TEST: OFF
-- BUILD_TESTING: ON
-- ---------------------------------------------
-- versions
-- ---------------------------------------------
-- CMake: 4.1.1
-- GTest: 1.14.0 (fetch_source)
-- benchmark: 1.8.3 (fetch_source)
-- ---------------------------------------------
-- Building WITH_STL=OFF
-- Configuring done (350.9s)
-- Generating done (4.7s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-2

my CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

project(RollDiceServer)

include(FetchContent)

FetchContent_Declare(
  oatpp
  GIT_REPOSITORY https://github.com/oatpp/oatpp.git
  GIT_TAG        master
  GIT_SHALLOW    true
  GIT_PROGRESS   true
)

FetchContent_Declare(
  opentelemetry-cpp
  GIT_REPOSITORY https://github.com/open-telemetry/opentelemetry-cpp.git
  GIT_TAG        main
  GIT_SHALLOW    true
  GIT_PROGRESS   true
  GIT_CONFIG
  submodule.recurse=true
  submodule.fetchJobs=8
  checkout.workers=8
  fetch.parallel=8
  http.maxRequests=8
  submodule.third_party/prometheus-cpp.shallow=true
  submodule.tools/vcpkg.shallow=true
  submodule.third_party/ms-gsl.shallow=true
  submodule.third_party/googletest.shallow=true
  submodule.third_party/benchmark.shallow=true
  submodule.third_party/nlohmann-json.shallow=true
  submodule.third_party/opentracing-cpp.shallow=true
)

FetchContent_MakeAvailable(oatpp opentelemetry-cpp)

add_executable(dice-server main.cpp)

target_link_libraries(dice-server PRIVATE oatpp opentelemetry-cpp)

I make sure that all submodules are downloaded successfully, but those submodules still have all git history. why?

I can’t offer any specific advice for your specific situation. You might want to take a look at the discussion in issue 16144 and the links contained therein. Maybe there’s something in there which might give you a clue what’s happening for your case. While the title of that issue mentions ExternalProject, keep in mind that FetchContent is implemented in terms of ExternalProject, or shares internal implementation details with it.

@craig.scott thanks for your reply

I have update:

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

project(RollDiceServer)


include(FetchContent)

FetchContent_Declare(
  oatpp
  GIT_REPOSITORY https://github.com/oatpp/oatpp.git
  GIT_TAG        master
  GIT_SHALLOW    true
  GIT_PROGRESS   true
)

FetchContent_Declare(
  opentelemetry-cpp
  DOWNLOAD_COMMAND git clone --verbose --progress --depth 1 --recurse-submodules --shallow-submodules --jobs 8 https://github.com/open-telemetry/opentelemetry-cpp.git
)

FetchContent_MakeAvailable(oatpp opentelemetry-cpp)

add_executable(dice-server main.cpp)

target_link_libraries(dice-server PRIVATE oatpp opentelemetry-cpp)
$ cmake -B build-by-cmake-5 --project-file my.CMakeLists.txt.5 -G Ninja -DCMAKE_C_COMPILER=gcc-15 -DCMAKE_CXX_COMPILER=g++-15 -DFETCHCONTENT_QUIET=OFF -DFETCHCONTENT_FULL_VERBOSE=ON
CMake Warning:
  This project has been configured with a project file other than
  CMakeLists.txt.  This feature is intended for temporary use during
  development and not for publication of a final product.


-- The C compiler identification is GNU 15.2.0
-- The CXX compiler identification is GNU 15.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc-15 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++-15 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Populating oatpp
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/oatpp-subbuild
[1/9] Creating directories for 'oatpp-populate'
[1/9] Performing download step (git clone) for 'oatpp-populate'
Cloning into 'oatpp-src'...
remote: Enumerating objects: 4242, done.        
remote: Counting objects: 100% (4242/4242), done.        
remote: Compressing objects: 100% (3088/3088), done.        
remote: Total 4242 (delta 3003), reused 1714 (delta 1023), pack-reused 0 (from 0)        
Receiving objects: 100% (4242/4242), 1.30 MiB | 372.00 KiB/s, done.
Resolving deltas: 100% (3003/3003), done.
Already on 'master'
Your branch is up to date with 'origin/master'.
[2/9] Performing update step for 'oatpp-populate'
-- Fetching latest from the remote origin
[3/9] No patch step for 'oatpp-populate'
[5/9] No configure step for 'oatpp-populate'
[6/9] No build step for 'oatpp-populate'
[7/9] No install step for 'oatpp-populate'
[8/9] No test step for 'oatpp-populate'
[9/9] Completed 'oatpp-populate'

############################################################################
## oatpp module compilation config:

OATPP_DISABLE_ENV_OBJECT_COUNTERS=OFF
OATPP_THREAD_HARDWARE_CONCURRENCY=AUTO
OATPP_COMPAT_BUILD_NO_THREAD_LOCAL=OFF

############################################################################

oatpp version: '1.4.0'
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
OATPP_ADD_LINK_LIBS=atomic

############################################################################
## oatpp-module-install.cmake

OATPP_THIS_MODULE_NAME=oatpp
OATPP_THIS_MODULE_VERSION=1.4.0
OATPP_THIS_MODULE_LIBRARIES=oatpp;oatpp-test
OATPP_THIS_MODULE_TARGETS=oatpp;oatpp-test
OATPP_THIS_MODULE_DIRECTORIES=oatpp;oatpp-test

############################################################################

-- Populating opentelemetry-cpp
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild
[1/9] Creating directories for 'opentelemetry-cpp-populate'
[1/9] Performing download step for 'opentelemetry-cpp-populate'
Cloning into 'opentelemetry-cpp'...
POST git-upload-pack (181 bytes)
POST git-upload-pack (235 bytes)
remote: Enumerating objects: 1825, done.        
remote: Counting objects: 100% (1825/1825), done.        
remote: Compressing objects: 100% (1334/1334), done.        
remote: Total 1825 (delta 622), reused 806 (delta 401), pack-reused 0 (from 0)        
Receiving objects: 100% (1825/1825), 1.44 MiB | 143.00 KiB/s, done.
Resolving deltas: 100% (622/622), done.
Submodule 'third_party/benchmark' (https://github.com/google/benchmark) registered for path 'third_party/benchmark'
Submodule 'third_party/googletest' (https://github.com/google/googletest) registered for path 'third_party/googletest'
Submodule 'third_party/ms-gsl' (https://github.com/microsoft/GSL) registered for path 'third_party/ms-gsl'
Submodule 'third_party/nlohmann-json' (https://github.com/nlohmann/json) registered for path 'third_party/nlohmann-json'
Submodule 'third_party/opentelemetry-proto' (https://github.com/open-telemetry/opentelemetry-proto) registered for path 'third_party/opentelemetry-proto'
Submodule 'third_party/opentracing-cpp' (https://github.com/opentracing/opentracing-cpp.git) registered for path 'third_party/opentracing-cpp'
Submodule 'third_party/prometheus-cpp' (https://github.com/jupp0r/prometheus-cpp) registered for path 'third_party/prometheus-cpp'
Submodule 'tools/vcpkg' (https://github.com/Microsoft/vcpkg) registered for path 'tools/vcpkg'
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/benchmark'...
remote: Enumerating objects: 215, done.        
remote: Counting objects: 100% (215/215), done.        
remote: Compressing objects: 100% (198/198), done.        
remote: Total 215 (delta 25), reused 82 (delta 9), pack-reused 0 (from 0)        
Receiving objects: 100% (215/215), 301.41 KiB | 130.00 KiB/s, done.
Resolving deltas: 100% (25/25), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/ms-gsl'...
remote: Enumerating objects: 58, done.        
remote: Counting objects: 100% (58/58), done.        
remote: Compressing objects: 100% (54/54), done.        
remote: Total 58 (delta 2), reused 22 (delta 0), pack-reused 0 (from 0)        
Receiving objects: 100% (58/58), 81.79 KiB | 42.00 KiB/s, done.
Resolving deltas: 100% (2/2), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/opentelemetry-proto'...
remote: Enumerating objects: 79, done.        
remote: Counting objects: 100% (79/79), done.        
remote: Compressing objects: 100% (59/59), done.        
remote: Total 79 (delta 10), reused 43 (delta 1), pack-reused 0 (from 0)        
Receiving objects: 100% (79/79), 132.67 KiB | 28.00 KiB/s, done.
Resolving deltas: 100% (10/10), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/opentracing-cpp'...
remote: Enumerating objects: 122, done.        
remote: Counting objects: 100% (122/122), done.        
remote: Compressing objects: 100% (106/106), done.        
remote: Total 122 (delta 7), reused 60 (delta 4), pack-reused 0 (from 0)        
Receiving objects: 100% (122/122), 158.97 KiB | 46.00 KiB/s, done.
Resolving deltas: 100% (7/7), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/googletest'...
remote: Enumerating objects: 280, done.        
remote: Counting objects: 100% (280/280), done.        
remote: Compressing objects: 100% (243/243), done.        
remote: Total 280 (delta 80), reused 82 (delta 27), pack-reused 0 (from 0)        
Receiving objects: 100% (280/280), 993.30 KiB | 136.00 KiB/s, done.
Resolving deltas: 100% (80/80), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/nlohmann-json'...
remote: Enumerating objects: 1213, done.        
remote: Counting objects: 100% (1213/1213), done.        
remote: Compressing objects: 100% (918/918), done.        
remote: Total 1213 (delta 250), reused 931 (delta 210), pack-reused 0 (from 0)        
Receiving objects: 100% (1213/1213), 9.45 MiB | 638.00 KiB/s, done.
Resolving deltas: 100% (250/250), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/prometheus-cpp'...
remote: Enumerating objects: 187, done.        
remote: Counting objects: 100% (187/187), done.        
remote: Compressing objects: 100% (169/169), done.        
remote: Total 187 (delta 21), reused 57 (delta 5), pack-reused 0 (from 0)        
Receiving objects: 100% (187/187), 108.27 KiB | 59.00 KiB/s, done.
Resolving deltas: 100% (21/21), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/tools/vcpkg'...
remote: Enumerating objects: 15537, done.        
remote: Counting objects: 100% (15537/15537), done.        
remote: Compressing objects: 100% (13000/13000), done.        
remote: Total 15537 (delta 3262), reused 12171 (delta 2478), pack-reused 0 (from 0)        
Receiving objects: 100% (15537/15537), 6.33 MiB | 599.00 KiB/s, done.
Resolving deltas: 100% (3262/3262), done.
From https://github.com/google/benchmark
 * branch            344117638c8ff7e239044fd0fa7085839fc03021 -> FETCH_HEAD
Submodule path 'third_party/benchmark': checked out '344117638c8ff7e239044fd0fa7085839fc03021'
From https://github.com/google/googletest
 * branch            f8d7d77c06936315286eb55f8de22cd23c188571 -> FETCH_HEAD
Submodule path 'third_party/googletest': checked out 'f8d7d77c06936315286eb55f8de22cd23c188571'
From https://github.com/microsoft/GSL
 * branch            6f4529395c5b7c2d661812257cd6780c67e54afa -> FETCH_HEAD
Submodule path 'third_party/ms-gsl': checked out '6f4529395c5b7c2d661812257cd6780c67e54afa'
From https://github.com/nlohmann/json
 * branch            55f93686c01528224f448c19128836e7df245f72 -> FETCH_HEAD
Submodule path 'third_party/nlohmann-json': checked out '55f93686c01528224f448c19128836e7df245f72'
From https://github.com/open-telemetry/opentelemetry-proto
 * branch            8654ab7a5a43ca25fe8046e59dcd6935c3f76de0 -> FETCH_HEAD
Submodule path 'third_party/opentelemetry-proto': checked out '8654ab7a5a43ca25fe8046e59dcd6935c3f76de0'
From https://github.com/opentracing/opentracing-cpp
 * branch            06b57f48ded1fa3bdd3d4346f6ef29e40e08eaf5 -> FETCH_HEAD
Submodule path 'third_party/opentracing-cpp': checked out '06b57f48ded1fa3bdd3d4346f6ef29e40e08eaf5'
From https://github.com/jupp0r/prometheus-cpp
 * branch            e5fada43131d251e9c4786b04263ce98b6767ba5 -> FETCH_HEAD
Submodule path 'third_party/prometheus-cpp': checked out 'e5fada43131d251e9c4786b04263ce98b6767ba5'
Submodule 'civetweb' (https://github.com/civetweb/civetweb.git) registered for path 'third_party/prometheus-cpp/3rdparty/civetweb'
Submodule 'googletest' (https://github.com/google/googletest.git) registered for path 'third_party/prometheus-cpp/3rdparty/googletest'
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb'...
remote: Enumerating objects: 1237, done.        
remote: Counting objects: 100% (1237/1237), done.        
remote: Compressing objects: 100% (1074/1074), done.        
remote: Total 1237 (delta 218), reused 931 (delta 118), pack-reused 0 (from 0)        
Receiving objects: 100% (1237/1237), 8.09 MiB | 346.00 KiB/s, done.
Resolving deltas: 100% (218/218), done.
Cloning into '/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-subbuild/opentelemetry-cpp-populate-prefix/src/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/googletest'...
remote: Enumerating objects: 280, done.        
remote: Counting objects: 100% (280/280), done.        
remote: Compressing objects: 100% (243/243), done.        
remote: Total 280 (delta 80), reused 82 (delta 27), pack-reused 0 (from 0)        
Receiving objects: 100% (280/280), 993.30 KiB | 253.00 KiB/s, done.
Resolving deltas: 100% (80/80), done.
From https://github.com/civetweb/civetweb
 * branch            d7ba35bbb649209c66e582d5a0244ba988a15159 -> FETCH_HEAD
Submodule path 'third_party/prometheus-cpp/3rdparty/civetweb': checked out 'd7ba35bbb649209c66e582d5a0244ba988a15159'
From https://github.com/google/googletest
 * branch            e2239ee6043f73722e7aa812a459f54a28552929 -> FETCH_HEAD
Submodule path 'third_party/prometheus-cpp/3rdparty/googletest': checked out 'e2239ee6043f73722e7aa812a459f54a28552929'
From https://github.com/Microsoft/vcpkg
 * [new tag]               2019.06    -> 2019.06
 * [new tag]               2019.07    -> 2019.07
 * [new tag]               2019.08    -> 2019.08
 * [new tag]               2019.09    -> 2019.09
 * [new tag]               2019.10    -> 2019.10
 * [new tag]               2019.11    -> 2019.11
 * [new tag]               2019.12    -> 2019.12
 * [new tag]               2020.01    -> 2020.01
 * [new tag]               2020.04    -> 2020.04
 * [new tag]               2020.06    -> 2020.06
 * [new tag]               2020.07    -> 2020.07
 * [new tag]               2020.11    -> 2020.11
 * [new tag]               2020.11-1  -> 2020.11-1
 * [new tag]               2021.04.30 -> 2021.04.30
 * [new tag]               2021.05.12 -> 2021.05.12
 * [new tag]               2021.06.31 -> 2021.06.31
 * [new tag]               2021.07.31 -> 2021.07.31
 * [new tag]               2021.08.31 -> 2021.08.31
 * [new tag]               2021.09.30 -> 2021.09.30
 * [new tag]               2021.10.31 -> 2021.10.31
 * [new tag]               2021.11.30 -> 2021.11.30
 * [new tag]               2021.12.01 -> 2021.12.01
 * [new tag]               2021.12.31 -> 2021.12.31
 * [new tag]               2022.01.01 -> 2022.01.01
 * [new tag]               2022.01.31 -> 2022.01.31
 * [new tag]               2022.02.02 -> 2022.02.02
 * [new tag]               2022.02.23 -> 2022.02.23
 * [new tag]               2022.03.10 -> 2022.03.10
 * [new tag]               2022.04.12 -> 2022.04.12
 * [new tag]               2022.05.10 -> 2022.05.10
 * [new tag]               2022.06.15 -> 2022.06.15
 * [new tag]               2022.06.16.1 -> 2022.06.16.1
 * [new tag]               2022.07.25 -> 2022.07.25
 * [new tag]               2022.08.15 -> 2022.08.15
 * [new tag]               2022.09.27 -> 2022.09.27
 * [new tag]               2022.10.19 -> 2022.10.19
 * [new tag]               2022.11.14 -> 2022.11.14
 * [new tag]               2023.01.09 -> 2023.01.09
 * [new tag]               2023.02.24 -> 2023.02.24
 * [new tag]               2023.04.15 -> 2023.04.15
 * [new tag]               2023.06.20 -> 2023.06.20
 * [new tag]               2023.07.21 -> 2023.07.21
 * [new tag]               2023.08.09 -> 2023.08.09
 * [new tag]               2023.10.19 -> 2023.10.19
 * [new tag]               2023.11.20 -> 2023.11.20
 * [new tag]               2023.12.12 -> 2023.12.12
 * [new tag]               2024.01.12 -> 2024.01.12
 * [new tag]               2024.02.14 -> 2024.02.14
 * [new tag]               2024.03.19 -> 2024.03.19
 * [new tag]               2024.03.25 -> 2024.03.25
 * [new tag]               2024.04.26 -> 2024.04.26
 * [new tag]               2024.05.24 -> 2024.05.24
 * [new tag]               2024.06.15 -> 2024.06.15
 * [new tag]               2024.07.12 -> 2024.07.12
 * [new tag]               2024.08.23 -> 2024.08.23
 * [new tag]               2024.09.23 -> 2024.09.23
 * [new tag]               2024.09.30 -> 2024.09.30
 * [new tag]               2024.10.21 -> 2024.10.21
 * [new tag]               2024.11.16 -> 2024.11.16
 * [new tag]               2024.12.16 -> 2024.12.16
 * [new tag]               2025.01.13 -> 2025.01.13
 * [new tag]               2025.02.14 -> 2025.02.14
 * [new tag]               2025.03.19 -> 2025.03.19
 * [new tag]               2025.04.09 -> 2025.04.09
 * [new tag]               2025.06.13 -> 2025.06.13
 * [new tag]               2025.07.25 -> 2025.07.25
 * [new tag]               2025.08.27 -> 2025.08.27
Submodule path 'tools/vcpkg': checked out 'fba75d09065fcc76a25dcf386b1d00d33f5175af'
[2/9] No update step for 'opentelemetry-cpp-populate'
[3/9] No patch step for 'opentelemetry-cpp-populate'
[5/9] No configure step for 'opentelemetry-cpp-populate'
[6/9] No build step for 'opentelemetry-cpp-populate'
[7/9] No install step for 'opentelemetry-cpp-populate'
[8/9] No test step for 'opentelemetry-cpp-populate'
[9/9] Completed 'opentelemetry-cpp-populate'
-- Configuring done (294.7s)
-- Generating done (0.2s)
CMake Warning:
  Manually-specified variables were not used by the project:

    FETCHCONTENT_FULL_VERBOSE


-- Build files have been written to: /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5

opentelemetry-cpp-src opentelemetry-cpp-build directory is empty! why? how to solve?

You’re overriding the git commands that FetchContent would normally use. That means you’re now fully responsible for everything the command does, including ensuring it puts things in whatever place you’re expecting them to be. Your command doesn’t specify the directory to clone into, so git will create an opentelemetry-cpp subdirectory in whatever directory the command is run from. But you’re not in control of that directory, and indeed it will be something internal to the FetchContent module’s implementation. I think you’ll get the behavior you wanted if you append <SOURCE_DIR> to your git command line. That will make the git command clone into the directory FetchContent expects it to be in.

Test environment:
C:\Users\jhcar\Desktop\test_cmake\build (<-empty dir)
C:\Users\jhcar\Desktop\test_cmake\test_cmake\main.cpp: int main(){}
C:\Users\jhcar\Desktop\test_cmake\test_cmake\CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)

project(RollDiceServer)


include(FetchContent)

FetchContent_Declare(
	oatpp
	GIT_REPOSITORY https://github.com/oatpp/oatpp.git
	GIT_TAG		master
	GIT_SHALLOW	true
	GIT_PROGRESS   true
)

FetchContent_Declare(
	opentelemetry-cpp
	DOWNLOAD_COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "rm --recursive --force -- ../../../opentelemetry-cpp-src"
		COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "git clone --branch=v1.22.0 --depth=1 https://github.com/open-telemetry/opentelemetry-cpp.git ../../../opentelemetry-cpp-src"
	UPDATE_COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "git fetch --depth=1 origin refs/tags/v1.22.0:refs/tags/v1.22.0"
		COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "git checkout v1.22.0"
		COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "git clean -dffx"
		COMMAND "C:/Program Files/Git/bin/bash.exe" "-c" "git -c fetch.parallel=0 -c submodule.fetchJobs=0 -c checkout.workers=0 submodule update --init --depth=1 --recursive"
)

FetchContent_MakeAvailable(oatpp opentelemetry-cpp)

add_executable(dice-server main.cpp)

target_link_libraries(dice-server PRIVATE oatpp opentelemetry-cpp)

In C:\Users\jhcar\Desktop\test_cmake, use Git bash for Windows:
cmake -S ./test_cmake -B ./build -G Ninja -DFETCHCONTENT_QUIET=OFF -DFETCHCONTENT_FULL_VERBOSE=ON
cmake --build ./build
(Build failed halfway because the code lacks #pragma clang diagnostic ignored "-W???" at some places and clang is too strict at other places. But when you cd into C:\Users\jhcar\Desktop\test_cmake\build\_deps\opentelemetry-cpp-src and C:\Users\jhcar\Desktop\test_cmake\build\_deps\opentelemetry-cpp-src\third_party\??? and execute git log, it shows that only the commits you need are downloaded as grafted commits without those repos’ full history.)

(The original answer (https://gitlab.kitware.com/cmake/cmake/-/issues/16144#note_1608250 ) uses ../ but here I have to use ../../../ after seeing error messages for ../. Hope when I have time to look into cmake doc I would find out why.)

@jhcarl0814 @craig.scott
I have solve clone problem:

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(RollDiceServer)


include(FetchContent)

FetchContent_Declare(
  oatpp
  GIT_REPOSITORY https://github.com/oatpp/oatpp.git
  GIT_TAG        master
  GIT_SHALLOW    true
  GIT_PROGRESS   true
)

FetchContent_Declare(
  opentelemetry-cpp
  SOURCE_DIR   ${FETCHCONTENT_BASE_DIR}/opentelemetry-cpp-src
  BINARY_DIR   ${FETCHCONTENT_BASE_DIR}/opentelemetry-cpp-build
  SUBBUILD_DIR ${FETCHCONTENT_BASE_DIR}/opentelemetry-cpp-subbuild
  DOWNLOAD_COMMAND git clone --verbose --progress --depth 1 --recurse-submodules --shallow-submodules --jobs 8 https://github.com/open-telemetry/opentelemetry-cpp.git <SOURCE_DIR>
    COMMAND ${CMAKE_COMMAND} -E echo "PREFIX <PREFIX> TMP_DIR <TMP_DIR> STAMP_DIR <STAMP_DIR> LOG_DIR <LOG_DIR> DOWNLOAD_DIR <DOWNLOAD_DIR> SOURCE_DIR <SOURCE_DIR> BINARY_DIR <BINARY_DIR> INSTALL_DIR <INSTALL_DIR>"
)

FetchContent_MakeAvailable(oatpp opentelemetry-cpp)

add_executable(dice-server main.cpp)

target_link_libraries(dice-server PRIVATE oatpp opentelemetry-cpp)

but I can not build it:

$ cmake --build build-by-cmake-5
[190/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/provider.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:10,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/provider.cc:6:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:11:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:137:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  137 |   nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:145:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  145 |   nostd::shared_ptr<EventLogger> event_logger_;
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:57:53: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   57 |   OPENTELEMETRY_DEPRECATED static nostd::shared_ptr<EventLoggerProvider>
      |                                                     ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLoggerProvider
      |                                ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:68:31: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   68 |       const nostd::shared_ptr<EventLoggerProvider> &tp) noexcept
      |                               ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLoggerProvider
      |                                ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:84:56: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   84 |   OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr<EventLoggerProvider> &
      |                                                        ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLoggerProvider
      |                                ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h: In static member function ‘static opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::EventLoggerProvider> opentelemetry::v1::logs::Provider::GetEventLoggerProvider()’:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:61:30: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   61 |     return nostd::shared_ptr<EventLoggerProvider>(GetEventProvider());
      |                              ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLoggerProvider
      |                                ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:61:67: warning: ‘static opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::EventLoggerProvider>& opentelemetry::v1::logs::Provider::GetEventProvider()’ is deprecated [-Wdeprecated-declarations]
   61 |     return nostd::shared_ptr<EventLoggerProvider>(GetEventProvider());
      |                                                   ~~~~~~~~~~~~~~~~^~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:85:3: note: declared here
   85 |   GetEventProvider() noexcept
      |   ^~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h: In static member function ‘static void opentelemetry::v1::logs::Provider::SetEventLoggerProvider(const opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::EventLoggerProvider>&)’:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:71:21: warning: ‘static opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::EventLoggerProvider>& opentelemetry::v1::logs::Provider::GetEventProvider()’ is deprecated [-Wdeprecated-declarations]
   71 |     GetEventProvider() = tp;
      |     ~~~~~~~~~~~~~~~~^~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/provider.h:85:3: note: declared here
   85 |   GetEventProvider() noexcept
      |   ^~~~~~~~~~~~~~~~
[196/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/event_logger_provider_factory.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:8,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h:9,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider_factory.cc:4:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:7:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:34:42: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   34 |   nostd::shared_ptr<opentelemetry::logs::EventLogger> CreateEventLogger(
      |                                          ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider_factory.h:31:77: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   31 |   OPENTELEMETRY_DEPRECATED static std::unique_ptr<opentelemetry::sdk::logs::EventLoggerProvider>
      |                                                                             ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:26:53: note: declared here
   26 | class OPENTELEMETRY_EXPORT OPENTELEMETRY_DEPRECATED EventLoggerProvider final
      |                                                     ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider_factory.cc:18:43: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   18 | std::unique_ptr<opentelemetry::sdk::logs::EventLoggerProvider> EventLoggerProviderFactory::Create()
      |                                           ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:26:53: note: declared here
   26 | class OPENTELEMETRY_EXPORT OPENTELEMETRY_DEPRECATED EventLoggerProvider final
      |                                                     ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider_factory.cc: In static member function ‘static std::unique_ptr<opentelemetry::v1::sdk::logs::EventLoggerProvider> opentelemetry::v1::sdk::logs::EventLoggerProviderFactory::Create()’:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider_factory.cc:20:52: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   20 |   return std::unique_ptr<opentelemetry::sdk::logs::EventLoggerProvider>(new EventLoggerProvider());
      |                                                    ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:26:53: note: declared here
   26 | class OPENTELEMETRY_EXPORT OPENTELEMETRY_DEPRECATED EventLoggerProvider final
      |                                                     ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider_factory.cc:20:77: warning: ‘EventLoggerProvider’ is deprecated [-Wdeprecated-declarations]
   20 |   return std::unique_ptr<opentelemetry::sdk::logs::EventLoggerProvider>(new EventLoggerProvider());
      |                                                                             ^~~~~~~~~~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:26:53: note: declared here
   26 | class OPENTELEMETRY_EXPORT OPENTELEMETRY_DEPRECATED EventLoggerProvider final
      |                                                     ^~~~~~~~~~~~~~~~~~~
[199/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/event_logger.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger.cc:13:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger.h:40:41: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   40 |   using opentelemetry::logs::EventLogger::EmitEvent;
      |                                         ^~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger.h:8:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
[200/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/logger_provider_factory.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/logger.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/logger_provider.h:16,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/logger_provider_factory.cc:11:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:11:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:137:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  137 |   nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:145:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  145 |   nostd::shared_ptr<EventLogger> event_logger_;
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
[203/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/logger.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/logger.cc:13:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:11:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:137:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  137 |   nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:145:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  145 |   nostd::shared_ptr<EventLogger> event_logger_;
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
[207/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/event_logger_provider.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:8,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc:4:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:7:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger_provider.h:34:42: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   34 |   nostd::shared_ptr<opentelemetry::logs::EventLogger> CreateEventLogger(
      |                                          ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc:9:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger.h:40:41: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   40 |   using opentelemetry::logs::EventLogger::EmitEvent;
      |                                         ^~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc:27:55: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   27 | opentelemetry::nostd::shared_ptr<opentelemetry::logs::EventLogger>
      |                                                       ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc: In member function ‘virtual opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::EventLogger> opentelemetry::v1::sdk::logs::EventLoggerProvider::CreateEventLogger(opentelemetry::v1::nostd::shared_ptr<opentelemetry::v1::logs::Logger>, opentelemetry::v1::nostd::string_view)’:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc:32:64: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   32 |   return opentelemetry::nostd::shared_ptr<opentelemetry::logs::EventLogger>{
      |                                                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/event_logger_provider.cc:33:11: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   33 |       new EventLogger(delegate_logger, event_domain)};
      |           ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/event_logger.h:22:32: note: declared here
   22 | class OPENTELEMETRY_DEPRECATED EventLogger final : public opentelemetry::logs::EventLogger
      |                                ^~~~~~~~~~~
[212/626] Building CXX object _deps/opentelemetry-cpp-build/sdk/src/logs/CMakeFiles/opentelemetry_logs.dir/logger_provider.cc.o
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/include/opentelemetry/sdk/logs/logger.h:12,
                 from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/sdk/src/logs/logger_provider.cc:16:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger_provider.h:31:29: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
   31 |   virtual nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                             ^~~~~~~~~~~
In file included from /home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:11:
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/noop.h:137:21: warning: ‘EventLogger’ is deprecated [-Wdeprecated-declarations]
  137 |   nostd::shared_ptr<EventLogger> CreateEventLogger(
      |                     ^~~~~~~~~~~
/home/anlexn/workspace/github.com/anlexN/otel-cpp-starter/roll-dice/build-by-cmake-5/_deps/opentelemetry-cpp-src/api/include/opentelemetry/logs/event_logger.h:21:32: note: declared here
   21 | class OPENTELEMETRY_DEPRECATED EventLogger
      |                                ^~~~~~~~~~~

ninja: build stopped: subcommand failed.

main.cpp:

#include "oatpp/web/server/HttpConnectionHandler.hpp"
#include "oatpp/network/Server.hpp"
#include "oatpp/network/tcp/server/ConnectionProvider.hpp"

#include "opentelemetry/exporters/ostream/span_exporter_factory.h"
#include "opentelemetry/sdk/trace/exporter.h"
#include "opentelemetry/sdk/trace/processor.h"
#include "opentelemetry/sdk/trace/simple_processor_factory.h"
#include "opentelemetry/sdk/trace/tracer_provider_factory.h"
#include "opentelemetry/trace/provider.h"

using namespace std;
namespace trace_api = opentelemetry::trace;
namespace trace_sdk = opentelemetry::sdk::trace;
namespace trace_exporter = opentelemetry::exporter::trace;

namespace {
    void InitTracer() {
        auto exporter = trace_exporter::OStreamSpanExporterFactory::Create();
        auto processor = trace_sdk::SimpleSpanProcessorFactory::Create(move(exporter));
        shared_ptr<opentelemetry::trace::TracerProvider> provider = trace_sdk::TracerProviderFactory::Create(move(processor));
        trace_api::Provider::SetTracerProvider(provider);
    }

    void CleanupTracer() {
        shared_ptr<opentelemetry::trace::TracerProvider> none;
        trace_api::Provider::SetTracerProvider(none);
    }
}

class Handler : public oatpp::web::server::HttpRequestHandler {
    public:
        shared_ptr<OutgoingResponse> handle(const shared_ptr<IncomingRequest>& request) override {
            auto tracer = opentelemetry::trace::Provider::GetTracerProvider()->GetTracer("my-app-tracer");
            auto span = tracer->StartSpan("RollDiceServer");
            int low = 1;
            int high = 7;
            int random = rand() % (high - low) + low;

            const string response = to_string(random);

            span->End();
            
            return ResponseFactory::createResponse(Status::CODE_200, response.c_str());
        }
};

void run() {
    auto router = oatpp::web::server::HttpRouter::createShared();

    router->route("GET", "/rolldice", std::make_shared<Handler>());

    auto connectionHandler = oatpp::web::server::HttpConnectionHandler::createShared(router);
    auto connectionProvider = oatpp::network::tcp::server::ConnectionProvider::createShared({"localhost", 8080, oatpp::network::Address::IP_4});

    oatpp::network::Server server(connectionProvider, connectionHandler);
    OATPP_LOGi("Dice Server", "Server running on port %s", static_cast<const char*>(connectionProvider->getProperty("port").getData()));
    server.run();
}

int main() {
    oatpp::Environment::init();
    InitTracer();
    srand((int)time(0));
    run();
    oatpp::Environment::destroy();
    CleanupTracer();

    return 0;
}

how to solve to build it?

You shouldn’t need to specify SOURCE_DIR, BINARY_DIR or SUBBUILD_DIR. Those all have defaults the same as what you’ve specified. And you shouldn’t really need to care where FetchContent puts them anyway. If you need to know where the source or build directory is, you can get those locations with the opentelemetry-cpp_SOURCE_DIR and opentelemetry-cpp_BINARY_DIR variables, which will be set after the FetchContent_MakeAvailable() call.

That looks like a problem specific to the project itself. You should follow up with them directly.

If I don’t set SOURCE_DIR, BINARY_DIR or SUBBUILD_DIR, these directory will be empty after fetch. This is CMake problem.

I have tried to build opentelemetry-cpp independently, it is successfully. just CMake is not. so crazy.

please help me. @craig.scott Can you try it?

I was partially correct. You don’t need to set SOURCE_DIR or BINARY_DIR, but SUBBUILD_DIR has no default. You can confirm the behavior for SOURCE_DIR and BINARY_DIR with the following minimal example project:

cmake_minimum_required(VERSION 3.30)
project(example)

include(FetchContent)
FetchContent_Declare(
    location_tags
    DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E echo "SOURCE_DIR = <SOURCE_DIR>"
    COMMAND ${CMAKE_COMMAND} -E echo "BINARY_DIR = <BINARY_DIR>"
)
FetchContent_MakeAvailable(location_tags)

Note the first line requires at least CMake 3.30 for the above to work, otherwise you won’t see the output from those commands.