diff --git a/CMakeLists.txt b/CMakeLists.txt index 272e10927b..201500ae41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,7 +219,7 @@ function(install_windows_deps) endfunction() if(WITH_JAEGER) - find_package(Thrift QUIET CONFIG) + find_package(Thrift QUIET) if(NOT Thrift_FOUND) # Install Thrift and propagate via vcpkg toolchain file if(WIN32 AND (NOT DEFINED CMAKE_TOOLCHAIN_FILE)) diff --git a/cmake/FindThrift.cmake b/cmake/FindThrift.cmake new file mode 100644 index 0000000000..8015194408 --- /dev/null +++ b/cmake/FindThrift.cmake @@ -0,0 +1,31 @@ +# This module defines Thrift_LIBRARIES, libraries to link Thrift_INCLUDE_DIR, +# Thrift_FOUND, If false, do not try to use it. + +# prefer the Thrift version supplied in Thrift_HOME (cmake -DThrift_HOME then +# environment) +find_path( + Thrift_INCLUDE_DIR + NAMES thrift/Thrift.h + HINTS ${Thrift_HOME} ENV Thrift_HOME /usr/local /opt/local + PATH_SUFFIXES include) + +# prefer the Thrift version supplied in Thrift_HOME +find_library( + Thrift_LIBRARIES + NAMES thrift libthrift + HINTS ${Thrift_HOME} ENV Thrift_HOME /usr/local /opt/local + PATH_SUFFIXES lib lib64) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Thrift DEFAULT_MSG Thrift_LIBRARIES + Thrift_INCLUDE_DIR) +mark_as_advanced(Thrift_LIBRARIES Thrift_INCLUDE_DIR) + + +if(thrift_FOUND AND NOT (TARGET thrift::thrift)) + add_library(thrift::thrift UNKNOWN IMPORTED) + set_target_properties( + thrift::thrift + PROPERTIES IMPORTED_LOCATION ${thrift_LIBRARIES} + INTERFACE_INCLUDE_DIRECTORIES ${thrift_INCLUDE_DIR}) +endif() diff --git a/exporters/jaeger/CMakeLists.txt b/exporters/jaeger/CMakeLists.txt index 0ae9162c61..966b3d476c 100644 --- a/exporters/jaeger/CMakeLists.txt +++ b/exporters/jaeger/CMakeLists.txt @@ -32,7 +32,7 @@ target_include_directories( target_link_libraries( opentelemetry_exporter_jaeger_trace PUBLIC opentelemetry_resources http_client_curl - PRIVATE thrift::thrift) + INTERFACE thrift::thrift) if(MSVC) target_compile_definitions(opentelemetry_exporter_jaeger_trace