CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # Copyright The OpenTelemetry Authors
  2. # SPDX-License-Identifier: Apache-2.0
  3. cmake_minimum_required(VERSION 3.14)
  4. project(opentelemetry-cpp-full-package-install-test LANGUAGES CXX)
  5. if(NOT DEFINED INSTALL_TEST_SRC_DIR)
  6. message(
  7. FATAL_ERROR
  8. "INSTALL_TEST_SRC_DIR must be defined when running cmake on this test project"
  9. )
  10. endif()
  11. find_package(opentelemetry-cpp CONFIG REQUIRED)
  12. # Test that the required OPENTELEMETRY_CPP_* variables are set
  13. if(NOT OPENTELEMETRY_CPP_INCLUDE_DIRS)
  14. message(FATAL_ERROR "OPENTELEMETRY_CPP_INCLUDE_DIRS is empty")
  15. endif()
  16. if(NOT OPENTELEMETRY_CPP_LIBRARY_DIRS)
  17. message(FATAL_ERROR "OPENTELEMETRY_CPP_LIBRARY_DIRS is empty")
  18. endif()
  19. if(NOT OPENTELEMETRY_CPP_LIBRARIES)
  20. message(FATAL_ERROR "OPENTELEMETRY_CPP_LIBRARIES is empty")
  21. endif()
  22. if(NOT OPENTELEMETRY_CPP_FOUND)
  23. message(FATAL_ERROR "OPENTELEMETRY_CPP_FOUND is not set")
  24. endif()
  25. if(NOT OPENTELEMETRY_ABI_VERSION_NO)
  26. message(FATAL_ERROR "OPENTELEMETRY_ABI_VERSION_NO is empty")
  27. endif()
  28. if(NOT OPENTELEMETRY_VERSION)
  29. message(FATAL_ERROR "OPENTELEMETRY_VERSION is empty")
  30. endif()
  31. if(NOT opentelemetry-cpp_FOUND)
  32. message(
  33. FATAL_ERROR
  34. "calling find_package must import the components and set opentelemetry-cpp_FOUND"
  35. )
  36. endif()
  37. if(NOT OPENTELEMETRY_CPP_COMPONENTS_INSTALLED)
  38. message(FATAL_ERROR "OPENTELEMETRY_CPP_COMPONENTS_INSTALLED is empty")
  39. endif()
  40. if(NOT INSTALL_TEST_COMPONENTS)
  41. message(FATAL_ERROR "INSTALL_TEST_COMPONENTS is empty")
  42. endif()
  43. message(
  44. STATUS
  45. "Testing the full package install on components = ${INSTALL_TEST_COMPONENTS}"
  46. )
  47. find_package(GTest CONFIG REQUIRED)
  48. include(GoogleTest)
  49. add_executable(full_test)
  50. foreach(component IN LISTS INSTALL_TEST_COMPONENTS)
  51. message(STATUS "Adding test source for component ${component}")
  52. target_sources(full_test
  53. PRIVATE "${INSTALL_TEST_SRC_DIR}/test_${component}.cc")
  54. endforeach()
  55. target_include_directories(full_test PRIVATE ${OPENTELEMETRY_CPP_INCLUDE_DIRS})
  56. target_link_libraries(full_test PRIVATE ${OPENTELEMETRY_CPP_LIBRARIES}
  57. GTest::gtest GTest::gtest_main)
  58. gtest_discover_tests(full_test)