CMakeLists.txt 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # Copyright The OpenTelemetry Authors
  2. # SPDX-License-Identifier: Apache-2.0
  3. add_library(opentelemetry_exporter_etw INTERFACE)
  4. target_include_directories(
  5. opentelemetry_exporter_etw
  6. INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
  7. "$<INSTALL_INTERFACE:include>")
  8. set_target_properties(opentelemetry_exporter_etw PROPERTIES EXPORT_NAME
  9. etw_exporter)
  10. target_link_libraries(
  11. opentelemetry_exporter_etw INTERFACE opentelemetry_api opentelemetry_trace
  12. nlohmann_json::nlohmann_json)
  13. target_link_libraries(opentelemetry_exporter_etw INTERFACE opentelemetry_logs)
  14. if(nlohmann_json_clone)
  15. add_dependencies(opentelemetry_exporter_etw nlohmann_json::nlohmann_json)
  16. endif()
  17. otel_add_component(
  18. COMPONENT
  19. exporters_etw
  20. TARGETS
  21. opentelemetry_exporter_etw
  22. FILES_DIRECTORY
  23. "include/opentelemetry/exporters/etw"
  24. FILES_DESTINATION
  25. "include/opentelemetry/exporters"
  26. FILES_MATCHING
  27. PATTERN
  28. "*.h")
  29. if(BUILD_TESTING)
  30. add_executable(etw_provider_test test/etw_provider_test.cc)
  31. add_executable(etw_tracer_test test/etw_tracer_test.cc)
  32. add_executable(etw_logger_test test/etw_logger_test.cc)
  33. add_executable(etw_tracer_test_enable_env_properties test/etw_tracer_test.cc)
  34. add_executable(etw_logger_test_enable_env_properties test/etw_logger_test.cc)
  35. target_link_libraries(etw_provider_test ${GTEST_BOTH_LIBRARIES}
  36. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  37. target_link_libraries(etw_tracer_test ${GTEST_BOTH_LIBRARIES}
  38. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  39. target_link_libraries(etw_logger_test ${GTEST_BOTH_LIBRARIES}
  40. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  41. target_link_libraries(
  42. etw_tracer_test_enable_env_properties ${GTEST_BOTH_LIBRARIES}
  43. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  44. target_compile_definitions(etw_tracer_test_enable_env_properties
  45. PRIVATE ENABLE_ENV_PROPERTIES)
  46. target_link_libraries(
  47. etw_logger_test_enable_env_properties ${GTEST_BOTH_LIBRARIES}
  48. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  49. target_compile_definitions(etw_logger_test_enable_env_properties
  50. PRIVATE ENABLE_ENV_PROPERTIES)
  51. if(WITH_BENCHMARK)
  52. add_executable(etw_perf_test test/etw_perf_test.cc)
  53. target_link_libraries(
  54. etw_perf_test benchmark::benchmark ${GTEST_BOTH_LIBRARIES}
  55. opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
  56. endif()
  57. gtest_add_tests(
  58. TARGET etw_provider_test
  59. TEST_PREFIX exporter.
  60. TEST_LIST etw_provider_test)
  61. gtest_add_tests(
  62. TARGET etw_tracer_test
  63. TEST_PREFIX exporter.
  64. TEST_LIST etw_tracer_test)
  65. gtest_add_tests(
  66. TARGET etw_logger_test
  67. TEST_PREFIX exporter.
  68. TEST_LIST etw_logger_test)
  69. gtest_add_tests(
  70. TARGET etw_tracer_test_enable_env_properties
  71. TEST_PREFIX exporter.with_env_properties.
  72. TEST_LIST etw_tracer_test_enable_env_properties)
  73. gtest_add_tests(
  74. TARGET etw_logger_test_enable_env_properties
  75. TEST_PREFIX exporter.with_env_properties.
  76. TEST_LIST etw_logger_test_enable_env_properties)
  77. endif() # BUILD_TESTING