From: Casey Bodley Date: Wed, 15 Oct 2025 21:06:41 +0000 (-0400) Subject: cmake: Findthrift.cmake parses version string X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd868a9e535b24c2a574bbd64cc136071b62fcc3;p=ceph.git 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 --- diff --git a/cmake/modules/Findthrift.cmake b/cmake/modules/Findthrift.cmake index 0929448a2409..00702f7e0ce5 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))