]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cmake: Findthrift.cmake parses version string
authorCasey Bodley <cbodley@redhat.com>
Wed, 15 Oct 2025 21:06:41 +0000 (17:06 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 15 Oct 2025 21:06:43 +0000 (17:06 -0400)
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 <cbodley@redhat.com>
cmake/modules/Findthrift.cmake

index 0929448a2409eee6bc09bcba40009e6ededb3ce0..00702f7e0ce5bece42233b9f1360122852ffd3d3 100644 (file)
@@ -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))