diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c414bcbd4..fb18701a99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,8 +49,6 @@ endif() if(WITH_STL) # Require at least C++17. C++20 is needed to avoid gsl::span - add_definitions(-DHAVE_CPP_STDLIB -DHAVE_GSL) - if(CMAKE_MINOR_VERSION VERSION_GREATER "3.18") # Ask for 20, may get anything below set(CMAKE_CXX_STANDARD 20) @@ -130,7 +128,7 @@ if(WITH_OTLP) set(protobuf_MODULE_COMPATIBLE ON) find_package(Protobuf) find_package(gRPC) - if((NOT protobuf_FOUND) OR (NOT gRPC_FOUND)) + if((NOT Protobuf_FOUND AND NOT PROTOBUF_FOUND) OR (NOT gRPC_FOUND)) if(WIN32 AND (NOT DEFINED CMAKE_TOOLCHAIN_FILE)) install_windows_deps() endif() @@ -142,7 +140,7 @@ if(WITH_OTLP) include(${CMAKE_TOOLCHAIN_FILE}) endif() - if(NOT protobuf_FOUND) + if(NOT Protobuf_FOUND AND NOT PROTOBUF_FOUND) find_package(Protobuf REQUIRED) endif() if(NOT gRPC_FOUND) @@ -157,7 +155,9 @@ if(WITH_OTLP) endif() endif() # Latest Protobuf uses mixed case instead of uppercase - set(PROTOBUF_PROTOC_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE}) + if(Protobuf_PROTOC_EXECUTABLE) + set(PROTOBUF_PROTOC_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE}) + endif() endif() message("PROTOBUF_PROTOC_EXECUTABLE=${PROTOBUF_PROTOC_EXECUTABLE}") diff --git a/api/CMakeLists.txt b/api/CMakeLists.txt index d9822530a2..1f1138cd1e 100644 --- a/api/CMakeLists.txt +++ b/api/CMakeLists.txt @@ -25,6 +25,8 @@ endif() if(WITH_STL) message("Building with standard library types...") + target_compile_definitions(opentelemetry_api INTERFACE HAVE_CPP_STDLIB + HAVE_GSL) else() message("Building with nostd types...") endif()