importing gsl::span if std::span is not available (#1167)
This commit is contained in:
Родитель
2a821fdfa5
Коммит
a605fd9116
|
@ -102,7 +102,9 @@ else()
|
|||
)
|
||||
endif()
|
||||
|
||||
option(WITH_STL "Whether to use Standard Library for C++latest features" OFF)
|
||||
option(WITH_STL "Whether to use Standard Library for C++ latest features" OFF)
|
||||
option(WITH_GSL
|
||||
"Whether to use Guidelines Support Library for C++ latest features" OFF)
|
||||
|
||||
option(WITH_ABSEIL "Whether to use Abseil for C++latest features" OFF)
|
||||
|
||||
|
@ -137,18 +139,6 @@ if(WITH_STL)
|
|||
# (absl::variant or std::variant) in variant unit test code is consistent with
|
||||
# the global project build definitions.
|
||||
add_definitions(-DHAVE_CPP_STDLIB)
|
||||
add_definitions(-DHAVE_GSL)
|
||||
|
||||
# Guidelines Support Library path. Used if we are not on not get C++20.
|
||||
#
|
||||
# TODO: respect WITH_ABSEIL as alternate implementation of std::span
|
||||
find_package(Microsoft.GSL QUIET)
|
||||
if(TARGET Microsoft.GSL::GSL)
|
||||
list(APPEND CORE_RUNTIME_LIBS Microsoft.GSL::GSL)
|
||||
else()
|
||||
set(GSL_DIR third_party/ms-gsl)
|
||||
include_directories(${GSL_DIR}/include)
|
||||
endif()
|
||||
|
||||
# Optimize for speed to reduce the hops
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
|
@ -165,6 +155,20 @@ if(WITH_STL)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GSL)
|
||||
add_definitions(-DHAVE_GSL)
|
||||
|
||||
# Guidelines Support Library path. Used if we are not on not get C++20.
|
||||
#
|
||||
find_package(Microsoft.GSL QUIET)
|
||||
if(TARGET Microsoft.GSL::GSL)
|
||||
list(APPEND CORE_RUNTIME_LIBS Microsoft.GSL::GSL)
|
||||
else()
|
||||
set(GSL_DIR third_party/ms-gsl)
|
||||
include_directories(${GSL_DIR}/include)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(WITH_OTLP "Whether to include the OpenTelemetry Protocol in the SDK" OFF)
|
||||
option(WITH_ZIPKIN "Whether to include the Zipkin exporter in the SDK" OFF)
|
||||
|
||||
|
|
|
@ -47,8 +47,7 @@ endif()
|
|||
|
||||
if(WITH_STL)
|
||||
message("Building with standard library types...")
|
||||
target_compile_definitions(opentelemetry_api INTERFACE HAVE_CPP_STDLIB
|
||||
HAVE_GSL)
|
||||
target_compile_definitions(opentelemetry_api INTERFACE HAVE_CPP_STDLIB)
|
||||
else()
|
||||
message("Building with nostd types...")
|
||||
endif()
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#if defined __has_include
|
||||
# if __has_include(<version>) // Check for __cpp_{feature}
|
||||
# include <version>
|
||||
# if defined(__cpp_lib_span)
|
||||
# if defined(__cpp_lib_span) && __cplusplus > 201703L
|
||||
# define HAVE_SPAN
|
||||
# endif
|
||||
# endif
|
||||
|
@ -21,7 +21,7 @@
|
|||
# define HAVE_SPAN
|
||||
# endif
|
||||
# // Check for other compiler span implementation
|
||||
# if !defined(_MSVC_LANG) && __has_include(<span>)
|
||||
# if !defined(_MSVC_LANG) && __has_include(<span>) && __cplusplus > 201703L
|
||||
// This works as long as compiler standard is set to C++20
|
||||
# define HAVE_SPAN
|
||||
# endif
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "opentelemetry/nostd/string_view.h"
|
||||
#include "opentelemetry/nostd/unique_ptr.h"
|
||||
#include "opentelemetry/version.h"
|
||||
|
|
Загрузка…
Ссылка в новой задаче