From dd868a9e535b24c2a574bbd64cc136071b62fcc3 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 15 Oct 2025 17:06:41 -0400 Subject: [PATCH] cmake: Findthrift.cmake parses version string when thrift headers are found, parse the version string into a cmake variable and pass it to find_package_handle_standard_args this will be needed by BuildArrow.cmake for some conditional logic Signed-off-by: Casey Bodley --- cmake/modules/Findthrift.cmake | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cmake/modules/Findthrift.cmake b/cmake/modules/Findthrift.cmake index 0929448a240..00702f7e0ce 100644 --- a/cmake/modules/Findthrift.cmake +++ b/cmake/modules/Findthrift.cmake @@ -17,9 +17,19 @@ find_library( HINTS ${thrift_HOME} ENV thrift_HOME /usr/local /opt/local PATH_SUFFIXES lib lib64) +if(thrift_INCLUDE_DIR) + file(READ "${thrift_INCLUDE_DIR}/thrift/config.h" THRIFT_CONFIG_H_CONTENT) + string(REGEX MATCH "#define PACKAGE_VERSION \"[0-9.]+\"" THRIFT_VERSION_DEFINITION + "${THRIFT_CONFIG_H_CONTENT}") + string(REGEX MATCH "[0-9.]+" thrift_VERSION "${THRIFT_VERSION_DEFINITION}") + set(thrift_VERSION "${thrift_VERSION}" PARENT_SCOPE) +endif() + include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(thrift DEFAULT_MSG thrift_LIBRARIES - thrift_INCLUDE_DIR) +find_package_handle_standard_args( + thrift + REQUIRED_VARS thrift_LIBRARIES thrift_INCLUDE_DIR + VERSION_VAR thrift_VERSION) mark_as_advanced(thrift_LIBRARIES thrift_INCLUDE_DIR) if(thrift_FOUND AND NOT (TARGET thrift::libthrift)) -- 2.39.5