Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen Anfängerfreundlich
#973 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
88/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
cmake, cpp
Bereich
build-system

Rechercherichtung

Beginne in cmake_modules/IcebergThirdpartyToolchain.cmake bei resolve_avro_dependency() und untersuche anschließend iceberg_find_dependencies() in der installierten Konfiguration. Reproduziere das Problem mit einer systemweiten avro-cpp-Abhängigkeit und einem Consumer, der find_package(iceberg CONFIG REQUIRED) aufruft. Erledigt ist die Aufgabe, wenn die installierte Konfiguration avro-cpp anfordert und mit dem Systempaket erfolgreich konfiguriert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
C++
Sterne
223
Forks
127
Ø Merge
1 T. 13 Std.
Gemergte PRs (30 T.)
28

Entwicklungsumgebung

Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/iceberg-cpp

Alle Issues in apache/iceberg-cpp

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.