diff --git a/CMakeLists.txt b/CMakeLists.txt index b9dbd8a..eab0174 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.20) include(cmake/color.cmake) -set(BLT_VERSION 5.2.38) +set(BLT_VERSION 5.2.39) set(BLT_TARGET BLT) @@ -13,6 +13,7 @@ option(ENABLE_UBSAN "Enable the ub sanitizer" OFF) option(ENABLE_TSAN "Enable the thread data race sanitizer" OFF) option(BLT_LOGGING_THREAD_SAFE "Make sure logging is thread synced" ON) +option(BLT_DEBUG_OTEL "Use Open Telemetry for debugging" OFF) option(BUILD_STD "Build the BLT standard utilities." ON) option(BUILD_PROFILING "Build the BLT profiler extension" ON) @@ -32,6 +33,17 @@ option(BLT_DISABLE_WARN "Disable blt::logging BLT_WARN macro" OFF) option(BLT_DISABLE_ERROR "Disable blt::logging BLT_ERROR macro" OFF) option(BLT_DISABLE_FATAL "Disable blt::logging BLT_FATAL macro" OFF) +if (BLT_DEBUG_OTEL) + message(STATUS "Searching in path '${CMAKE_PREFIX_PATH}'") + find_package(absl REQUIRED) + find_package(protobuf REQUIRED) + find_package(OpenSSL REQUIRED) + find_package(gRPC REQUIRED) + find_package(nlohmann_json CONFIG REQUIRED) + find_package(prometheus-cpp CONFIG REQUIRED) + find_package(opentelemetry-cpp CONFIG REQUIRED) +endif () + if (BLT_LOGGING_THREAD_SAFE) add_compile_definitions(BLT_LOGGING_THREAD_SAFE) endif () @@ -221,4 +233,5 @@ project(BLT) if (BLT_DEBUG_OTEL) target_link_libraries(${BLT_TARGET} PUBLIC ${OPENTELEMETRY_CPP_LIBRARIES}) + target_include_directories(${BLT_TARGET} PUBLIC ${OPENTELEMETRY_CPP_INCLUDE_DIRS}) endif () \ No newline at end of file diff --git a/default.nix b/default.nix index 95476c0..72acdbf 100644 --- a/default.nix +++ b/default.nix @@ -12,15 +12,33 @@ pkgs.mkShell ninja renderdoc valgrind + gtest + opentelemetry-cpp + opentelemetry-cpp.dev + ]; + nativeBuildInputs = with pkgs; [ + pkg-config + opentelemetry-cpp + opentelemetry-cpp.dev ]; - nativeBuildInputs = with pkgs; [ pkg-config ]; propagatedBuildInputs = with pkgs; [ - gtest - gtest.dev - grpc - protobuf - curl - abseil-cpp + abseil-cpp + protobuf + grpc + prometheus-cpp + prometheus-cpp.dev + openssl + openssl.dev + opentelemetry-cpp + opentelemetry-cpp.dev + civetweb + civetweb.dev + c-ares + c-ares.dev + nlohmann_json + glibc + glibc.dev + curl ]; LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib"; }