diff --git a/.github/workflows/geneva_metrics.yml b/.github/workflows/geneva_metrics.yml index 4b28545bf..ab9cf693b 100644 --- a/.github/workflows/geneva_metrics.yml +++ b/.github/workflows/geneva_metrics.yml @@ -38,11 +38,11 @@ jobs: mkdir -p "$GITHUB_WORKSPACE/otel_cpp/build" cd "$GITHUB_WORKSPACE/otel_cpp/build" cmake .. -DOPENTELEMETRY_INSTALL=ON - cmake --build . -j${nproc} + cmake --build . -j$(nproc) cmake --install . --prefix "$HOME/prebuilt-otel" mkdir -p "$GITHUB_WORKSPACE/otel_cpp_contrib/exporters/geneva/build" cd "$GITHUB_WORKSPACE/otel_cpp_contrib/exporters/geneva/build" cmake .. "-DCMAKE_PREFIX_PATH=$HOME/prebuilt-otel" \ - -DBUILD_TESTING=ON -DBUILD_EXAMPLE=ON - cmake --build . -j${nproc} + -DBUILD_TESTING=ON -DWITH_EXAMPLES=ON + cmake --build . -j$(nproc) ctest diff --git a/exporters/geneva/CMakeLists.txt b/exporters/geneva/CMakeLists.txt index 621539a17..eaea9c99c 100644 --- a/exporters/geneva/CMakeLists.txt +++ b/exporters/geneva/CMakeLists.txt @@ -105,7 +105,7 @@ if(OPENTELEMETRY_INSTALL) PATTERN "*.h") endif() -if(BUILD_EXAMPLE) +if(WITH_EXAMPLES) add_executable(example_metrics example/example_metrics.cc example/foo_library.cc) target_link_libraries(example_metrics opentelemetry_exporter_geneva_metrics) diff --git a/exporters/geneva/INSTALL.md b/exporters/geneva/INSTALL.md index 4806b7880..1321f3e26 100644 --- a/exporters/geneva/INSTALL.md +++ b/exporters/geneva/INSTALL.md @@ -55,7 +55,7 @@ for instructions. inclusion in shared libraries, this variable is used. - `-DBUILD_SHARED_LIBS=ON` : To build shared libraries for the targets. - `-DBUILD_TESTING=ON` : Build the unit-tests - - `-DBUILD_EXAMPLE=ON`: Build the example code which generates measurements and collects/exports metrics periodically + - `-DWITH_EXAMPLES=ON`: Build the example code which generates measurements and collects/exports metrics periodically 4. Once build configuration is created, build the exporter: diff --git a/exporters/user_events/CMakeLists.txt b/exporters/user_events/CMakeLists.txt index ea24bf88d..9d553c3a3 100644 --- a/exporters/user_events/CMakeLists.txt +++ b/exporters/user_events/CMakeLists.txt @@ -1,16 +1,12 @@ cmake_minimum_required(VERSION 3.12) -if (MAIN_PROJECT) - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) -endif() - if(WIN32) message(FATAL_ERROR "user_events exporter is Linux only for now") endif() -option(BUILD_EXAMPLE "Build example" ON) +option(WITH_EXAMPLES "Build example" ON) option(BUILD_TESTING "Build tests" ON) +option(BUILD_TRACEPOINTS "Build tracepoints library" ON) project(opentelemetry-user_events-exporter) if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) @@ -28,16 +24,28 @@ if(MAIN_PROJECT) find_package(opentelemetry-cpp REQUIRED) endif() -# don't build samples and tools from LinuxTracepoints. -set(BUILD_SAMPLES OFF) -set(BUILD_TOOLS OFF) -add_subdirectory(third_party/LinuxTracepoints) +if(BUILD_TRACEPOINTS) + set(ORIGINAL_BUILD_SAMPLES ${BUILD_SAMPLES}) + set(ORIGINAL_BUILD_TOOLS ${BUILD_TOOLS}) + + # don't build samples and tools from LinuxTracepoints. + set(BUILD_SAMPLES OFF) + set(BUILD_TOOLS OFF) + add_subdirectory(third_party/LinuxTracepoints) + + # Restore original values + set(BUILD_SAMPLES ${ORIGINAL_BUILD_SAMPLES}) + set(BUILD_TOOLS ${ORIGINAL_BUILD_TOOLS}) +endif() include_directories(include) add_library(opentelemetry_exporter_user_events_logs src/logs_exporter.cc src/recordable.cc src/utils.cc) +target_compile_features(opentelemetry_exporter_user_events_logs + PRIVATE cxx_std_17) + target_compile_definitions(opentelemetry_exporter_user_events_logs PUBLIC HAVE_CONSOLE_LOG HAVE_LOGS_PREVIEW) @@ -60,6 +68,9 @@ set_target_properties(opentelemetry_exporter_user_events_logs add_library(opentelemetry_exporter_user_events_metrics src/metrics_exporter.cc) +target_compile_features(opentelemetry_exporter_user_events_metrics + PRIVATE cxx_std_17) + if(MAIN_PROJECT) target_include_directories(opentelemetry_exporter_user_events_metrics PRIVATE ${OPENTELEMETRY_CPP_INCLUDE_DIRS}) @@ -74,7 +85,7 @@ else() opentelemetry_otlp_recordable tracepoint) endif() -if(BUILD_EXAMPLE) +if(WITH_EXAMPLES) add_executable(user_events_logs example/logs/main.cc example/logs/foo_library.cc) target_link_libraries(user_events_logs ${CMAKE_THREAD_LIBS_INIT}