Skip to content

Commit

Permalink
apacheGH-39919: [C++][Dataset] Add missing Protobuf static link depen…
Browse files Browse the repository at this point in the history
…dency (apache#40015)

### Rationale for this change

We need to link system libprotobuf.a too when we link libarrow.a, ORC is enabled and system Protobuf is used.

If we don't link system libprotobuf.a, some symbols are missing.

### What changes are included in this PR?

Add missing `${ARROW_PROTOBUF_LIBPROTOBUF}` to `ARROW_STATIC_INSTALL_INTERFACE_LIBS`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: apache#39919

Lead-authored-by: Sutou Kouhei <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
  • Loading branch information
2 people authored and zanmato1984 committed Feb 28, 2024
1 parent 8a8cb54 commit d6c6d25
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -774,8 +774,7 @@ if(ARROW_ORC)
list(APPEND ARROW_SHARED_LINK_LIBS orc::orc ${ARROW_PROTOBUF_LIBPROTOBUF})
list(APPEND ARROW_STATIC_LINK_LIBS orc::orc ${ARROW_PROTOBUF_LIBPROTOBUF})
if(ORC_SOURCE STREQUAL "SYSTEM")
list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS orc::orc
${ARROW_PROTOBUF_LIBPROTOBUF})
list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS orc::orc)
endif()
endif()

Expand Down Expand Up @@ -824,9 +823,6 @@ if(ARROW_WITH_OPENTELEMETRY)
opentelemetry-cpp::ostream_span_exporter
opentelemetry-cpp::otlp_http_exporter)
endif()
if(Protobuf_SOURCE STREQUAL "SYSTEM")
list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS ${ARROW_PROTOBUF_LIBPROTOBUF})
endif()
list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS CURL::libcurl)
endif()

Expand Down Expand Up @@ -861,6 +857,14 @@ if(ARROW_USE_XSIMD)
list(APPEND ARROW_STATIC_LINK_LIBS ${ARROW_XSIMD})
endif()

# This should be done after if(ARROW_ORC) and if(ARROW_WITH_OPENTELEMETRY)
# because they depend on Protobuf.
if(ARROW_WITH_PROTOBUF)
if(Protobuf_SOURCE STREQUAL "SYSTEM")
list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS ${ARROW_PROTOBUF_LIBPROTOBUF})
endif()
endif()

add_custom_target(arrow_dependencies)
add_custom_target(arrow_benchmark_dependencies)
add_custom_target(arrow_test_dependencies)
Expand Down

0 comments on commit d6c6d25

Please sign in to comment.