Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Installed iceberg-config.cmake calls find_dependency(Avro) instead of avro-cpp

Đang mở Phù hợp với người mới
#973 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
88/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cmake, cpp
Lĩnh vực
build-system

Hướng nghiên cứu

Bắt đầu trong cmake_modules/IcebergThirdpartyToolchain.cmake tại resolve_avro_dependency(), sau đó kiểm tra iceberg_find_dependencies() trong cấu hình đã cài đặt. Tái hiện vấn đề với một dependency avro-cpp của hệ thống và một consumer gọi find_package(iceberg CONFIG REQUIRED). Hoàn tất khi cấu hình đã cài đặt yêu cầu avro-cpp và cấu hình thành công với package của hệ thống.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

When iceberg-cpp is built against a system Avro (avro-cpp found through FIND_PACKAGE_ARGS), the installed
iceberg-config.cmake can't be consumed: find_package(iceberg CONFIG) fails at find_dependency(Avro).

Cause

In resolve_avro_dependency() (cmake_modules/IcebergThirdpartyToolchain.cmake), the non-vendored branch does:

  else()
    set(AVRO_VENDORED FALSE)
    list(APPEND ICEBERG_SYSTEM_DEPENDENCIES Avro)
  endif()

However, the package that was actually found is avro-cpp. It is declared with fetchcontent_declare(avro-cpp ... FIND_PACKAGE_ARGS ...), and its config exports the avro-cpp::avrocpp_* targets. Avro 1.12 installs
avro-cpp-config.cmake and no Avro package. So iceberg_find_dependencies() in the installed config calls
find_dependency(Avro), which can't be satisfied.

Reproduction

Seen with v0.4.0 (the code is unchanged on main) using vcpkg's avro-cpp 1.12.2 on x64-windows:

  1. Build and install iceberg-cpp with the bundle enabled against the system avro-cpp.
  2. In a consumer project, call find_package(iceberg CONFIG REQUIRED).
  3. Configuring fails because the Avro package can't be found.

Suggested fix

Record the real package name:

    list(APPEND ICEBERG_SYSTEM_DEPENDENCIES avro-cpp)

The same one-line change is carried as a patch in the proposed vcpkg port; I'm happy to open a PR here as well.

Ngôn ngữ chính
C++
Star
223
Fork
127
Merge trung bình
1 ngày 13 giờ
Pull request đã merge (30 ngày)
28

Chuẩn bị môi trường

Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/iceberg-cpp

Tất cả issue của apache/iceberg-cpp

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.