Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン 初心者向け
#973 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
cmake, cpp
領域
build-system

調査の方向性

cmake_modules/IcebergThirdpartyToolchain.cmake の resolve_avro_dependency() から始め、次にインストール済みの config にある iceberg_find_dependencies() を調べます。システムの avro-cpp 依存関係と、find_package(iceberg CONFIG REQUIRED) を呼び出す consumer を使って再現します。インストール済みの構成が avro-cpp を要求し、システムパッケージで正常に構成できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
C++
スター
223
フォーク
127
平均マージ
1日 13時間
マージ済み PR(30日)
28

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/iceberg-cpp のほかの issue

apache/iceberg-cpp の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。