Skip to content

Commit eac745c

Browse files
committed
build: Add support for find_package(Arrow REQUIRED)
The current `CMake/FindArrow.cmake` ignores `REQUIRED` argument in `find_package(Arrow REQUIRED)`. If `-DArrow_SOURCE=SYSTEM` is specified but system Arrow isn't found, `FindArrow.cmake` finishes without an error. With this change, `-DArrow_SOURCE=SYSTEM` and no system Arrow reports an error. `find_package_handle_standard_args()` is a standard function provided by CMake to handle `REQUIRED`: https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html Our other `FindXXX.cmake`s also use it.
1 parent 47aa2b5 commit eac745c

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

CMake/FindArrow.cmake

+10-15
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,27 @@
1414

1515
find_library(ARROW_LIB libarrow.a)
1616
find_library(ARROW_TESTING_LIB libarrow_testing.a)
17-
if("${ARROW_LIB}" STREQUAL "ARROW_LIB-NOTFOUND"
18-
OR "${ARROW_TESTING_LIB}" STREQUAL "ARROW_TESTING_LIB-NOTFOUND")
19-
set(Arrow_FOUND false)
20-
return()
21-
endif()
17+
find_path(ARROW_INCLUDE_PATH arrow/api.h)
2218
find_package(Thrift)
23-
if(NOT Thrift_FOUND)
24-
# Requires building arrow from source with thrift bundled.
25-
set(Arrow_FOUND false)
26-
return()
27-
endif()
28-
add_library(thrift ALIAS thrift::thrift)
2919

30-
set(Arrow_FOUND true)
20+
include(FindPackageHandleStandardArgs)
21+
find_package_handle_standard_args(
22+
Arrow
23+
DEFAULT_MSG
24+
ARROW_LIB
25+
ARROW_TESTING_LIB
26+
ARROW_INCLUDE_PATH
27+
Thrift_FOUND)
3128

3229
# Only add the libraries once.
3330
if(NOT TARGET arrow)
3431
add_library(arrow STATIC IMPORTED GLOBAL)
3532
add_library(arrow_testing STATIC IMPORTED GLOBAL)
3633

37-
find_path(ARROW_INCLUDE_PATH arrow/api.h)
3834
set_target_properties(
3935
arrow arrow_testing PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
4036
${ARROW_INCLUDE_PATH})
41-
set_target_properties(arrow PROPERTIES IMPORTED_LOCATION ${ARROW_LIB}
42-
INTERFACE_LINK_LIBRARIES thrift)
37+
set_target_properties(arrow PROPERTIES IMPORTED_LOCATION ${ARROW_LIB})
4338
set_target_properties(arrow_testing PROPERTIES IMPORTED_LOCATION
4439
${ARROW_TESTING_LIB})
4540
endif()

0 commit comments

Comments
 (0)