From 6b42ad3647dffcd1e295205afedca2a585c211c9 Mon Sep 17 00:00:00 2001 From: James Xu Date: Mon, 22 Jul 2024 09:57:58 +0800 Subject: [PATCH] [GLUTEN-6529][VL] Fix build error on macOS caused by ConfigArrow.cmake (#6530) --- cpp/CMake/ConfigArrow.cmake | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cpp/CMake/ConfigArrow.cmake b/cpp/CMake/ConfigArrow.cmake index 961b4e7a295b..c9cbed525432 100644 --- a/cpp/CMake/ConfigArrow.cmake +++ b/cpp/CMake/ConfigArrow.cmake @@ -40,7 +40,21 @@ function(FIND_ARROW_LIB LIB_NAME) message(FATAL_ERROR "Arrow library Not Found: ${ARROW_LIB_FULL_NAME}") endif() message(STATUS "Found Arrow library: ${ARROW_LIB_${LIB_NAME}}") - set_target_properties(Arrow::${LIB_NAME} - PROPERTIES IMPORTED_LOCATION ${ARROW_LIB_${LIB_NAME}}) + + # Get the parent-parent directory of the lib file. For example: + # + # * ${ARROW_LIB_${LIB_NAME}}: /usr/local/lib/libarrow.a + # * ${ARROW_LIB_INCLUDE_DIR}: /usr/local + # + # Then we can get our include directory: /usr/local/include + get_filename_component(ARROW_LIB_INCLUDE_DIR "${ARROW_LIB_${LIB_NAME}}" + PATH) + get_filename_component(ARROW_LIB_INCLUDE_DIR "${ARROW_LIB_INCLUDE_DIR}" + PATH) + + set_target_properties( + Arrow::${LIB_NAME} + PROPERTIES IMPORTED_LOCATION ${ARROW_LIB_${LIB_NAME}} + INTERFACE_INCLUDE_DIRECTORIES ${ARROW_LIB_INCLUDE_DIR}/include) endif() endfunction()