Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#973 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cmake, cpp
Área
build-system

Línea de trabajo

Comienza en cmake_modules/IcebergThirdpartyToolchain.cmake, en resolve_avro_dependency(), y después inspecciona iceberg_find_dependencies() en la configuración instalada. Reproduce el problema con una dependencia avro-cpp del sistema y un consumidor que llame a find_package(iceberg CONFIG REQUIRED). Se considera terminado cuando la configuración instalada solicita avro-cpp y se configura correctamente con el paquete del sistema.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
C++
Estrellas
223
Forks
127
Merge medio
1 d 13 h
PR fusionados (30 d)
28

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/iceberg-cpp

Todos los issues de apache/iceberg-cpp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.