Skip to content

Commit 3156046

Browse files
committed
ORC-2013: [C++][FOLLOWUP] Better CMake integration with Apache Arrow
1 parent d908f96 commit 3156046

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,12 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg")
172172
list (APPEND ORC_SYSTEM_DEPENDENCIES Protobuf)
173173
list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:protobuf::libprotobuf>")
174174
set (PROTOBUF_EXECUTABLE protobuf::protoc)
175+
elseif (TARGET ${ARROW_PROTOBUF_LIBPROTOBUF})
176+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for Protobuf
177+
add_library (orc_protobuf INTERFACE IMPORTED)
178+
target_link_libraries(orc_protobuf INTERFACE ${ARROW_PROTOBUF_LIBPROTOBUF})
179+
set (PROTOBUF_EXECUTABLE ${ARROW_PROTOBUF_PROTOC})
180+
message(STATUS "Using existing ${ARROW_PROTOBUF_LIBPROTOBUF}")
175181
elseif (NOT "${PROTOBUF_HOME}" STREQUAL "")
176182
find_package (ProtobufAlt REQUIRED)
177183

@@ -181,12 +187,6 @@ elseif (NOT "${PROTOBUF_HOME}" STREQUAL "")
181187
orc_add_resolved_library (orc_protobuf ${PROTOBUF_LIBRARY} ${PROTOBUF_INCLUDE_DIR})
182188
endif ()
183189

184-
if (ORC_PREFER_STATIC_PROTOBUF AND PROTOC_STATIC_LIB)
185-
orc_add_resolved_library (orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR})
186-
else ()
187-
orc_add_resolved_library (orc_protoc ${PROTOC_LIBRARY} ${PROTOBUF_INCLUDE_DIR})
188-
endif ()
189-
190190
list (APPEND ORC_SYSTEM_DEPENDENCIES ProtobufAlt)
191191
list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:protobuf::libprotobuf>")
192192
orc_provide_find_module (ProtobufAlt)
@@ -275,6 +275,16 @@ elseif (NOT "${SNAPPY_HOME}" STREQUAL "")
275275
list (APPEND ORC_SYSTEM_DEPENDENCIES SnappyAlt)
276276
list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:Snappy::snappy>")
277277
orc_provide_find_module (SnappyAlt)
278+
elseif (TARGET Snappy::snappy)
279+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for Snappy
280+
add_library (orc_snappy INTERFACE IMPORTED)
281+
target_link_libraries(orc_snappy INTERFACE Snappy::snappy)
282+
message(STATUS "Using existing Snappy::snappy")
283+
elseif (TARGET Snappy::snappy-static)
284+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for Snappy
285+
add_library (orc_snappy INTERFACE IMPORTED)
286+
target_link_libraries(orc_snappy INTERFACE Snappy::snappy-static)
287+
message(STATUS "Using existing Snappy::snappy-static")
278288
else ()
279289
block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS)
280290
prepare_fetchcontent()
@@ -357,6 +367,11 @@ elseif (NOT "${ZLIB_HOME}" STREQUAL "")
357367
list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIBAlt)
358368
list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:ZLIB::ZLIB>")
359369
orc_provide_find_module (ZLIBAlt)
370+
elseif (TARGET ZLIB::ZLIB)
371+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for ZLIB
372+
add_library (orc_zlib INTERFACE IMPORTED)
373+
target_link_libraries(orc_zlib INTERFACE ZLIB::ZLIB)
374+
message(STATUS "Using existing ZLIB::ZLIB")
360375
else ()
361376
block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS)
362377
prepare_fetchcontent()
@@ -448,6 +463,16 @@ elseif (NOT "${ZSTD_HOME}" STREQUAL "")
448463
endif ()
449464
list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTDAlt)
450465
orc_provide_find_module (ZSTDAlt)
466+
elseif (TARGET zstd::libzstd_shared)
467+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for zstd
468+
add_library (orc_zstd INTERFACE IMPORTED)
469+
target_link_libraries(orc_zstd INTERFACE zstd::libzstd_shared)
470+
message(STATUS "Using existing zstd::libzstd_shared")
471+
elseif (TARGET zstd::libzstd_static)
472+
# Used by Apache Arrow only, remove this once Arrow leverages FetchContent for zstd
473+
add_library (orc_zstd INTERFACE IMPORTED)
474+
target_link_libraries(orc_zstd INTERFACE zstd::libzstd_static)
475+
message(STATUS "Using existing zstd::libzstd_static")
451476
else ()
452477
block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS)
453478
prepare_fetchcontent()

0 commit comments

Comments
 (0)