@@ -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} " )
175181elseif (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)
@@ -245,7 +245,10 @@ else ()
245245
246246 add_library (orc_protobuf INTERFACE IMPORTED )
247247 target_link_libraries (orc_protobuf INTERFACE protobuf::libprotobuf)
248- set (PROTOBUF_EXECUTABLE protobuf::protoc)
248+ # Sometimes downstream environments (e.g. conda) need to override PROTOBUF_EXECUTABLE
249+ if (NOT PROTOBUF_EXECUTABLE)
250+ set (PROTOBUF_EXECUTABLE protobuf::protoc)
251+ endif ()
249252 endblock()
250253endif ()
251254
@@ -275,6 +278,16 @@ elseif (NOT "${SNAPPY_HOME}" STREQUAL "")
275278 list (APPEND ORC_SYSTEM_DEPENDENCIES SnappyAlt)
276279 list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:Snappy::snappy>" )
277280 orc_provide_find_module (SnappyAlt)
281+ elseif (TARGET Snappy::snappy)
282+ # Used by Apache Arrow only, remove this once Arrow leverages FetchContent for Snappy
283+ add_library (orc_snappy INTERFACE IMPORTED )
284+ target_link_libraries (orc_snappy INTERFACE Snappy::snappy)
285+ message (STATUS "Using existing Snappy::snappy" )
286+ elseif (TARGET Snappy::snappy-static )
287+ # Used by Apache Arrow only, remove this once Arrow leverages FetchContent for Snappy
288+ add_library (orc_snappy INTERFACE IMPORTED )
289+ target_link_libraries (orc_snappy INTERFACE Snappy::snappy-static )
290+ message (STATUS "Using existing Snappy::snappy-static" )
278291else ()
279292 block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS)
280293 prepare_fetchcontent()
@@ -357,6 +370,11 @@ elseif (NOT "${ZLIB_HOME}" STREQUAL "")
357370 list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIBAlt)
358371 list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$<INSTALL_INTERFACE:ZLIB::ZLIB>" )
359372 orc_provide_find_module (ZLIBAlt)
373+ elseif (TARGET ZLIB::ZLIB)
374+ # Used by Apache Arrow only, remove this once Arrow leverages FetchContent for ZLIB
375+ add_library (orc_zlib INTERFACE IMPORTED )
376+ target_link_libraries (orc_zlib INTERFACE ZLIB::ZLIB)
377+ message (STATUS "Using existing ZLIB::ZLIB" )
360378else ()
361379 block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS)
362380 prepare_fetchcontent()
@@ -448,6 +466,16 @@ elseif (NOT "${ZSTD_HOME}" STREQUAL "")
448466 endif ()
449467 list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTDAlt)
450468 orc_provide_find_module (ZSTDAlt)
469+ elseif (TARGET zstd::libzstd_shared)
470+ # Used by Apache Arrow only, remove this once Arrow leverages FetchContent for zstd
471+ add_library (orc_zstd INTERFACE IMPORTED )
472+ target_link_libraries (orc_zstd INTERFACE zstd::libzstd_shared)
473+ message (STATUS "Using existing zstd::libzstd_shared" )
474+ elseif (TARGET zstd::libzstd_static)
475+ # Used by Apache Arrow only, remove this once Arrow leverages FetchContent for zstd
476+ add_library (orc_zstd INTERFACE IMPORTED )
477+ target_link_libraries (orc_zstd INTERFACE zstd::libzstd_static)
478+ message (STATUS "Using existing zstd::libzstd_static" )
451479else ()
452480 block(PROPAGATE ORC_SYSTEM_DEPENDENCIES ORC_INSTALL_INTERFACE_TARGETS)
453481 prepare_fetchcontent()
0 commit comments