@@ -147,8 +147,11 @@ function(resolve_avro_dependency)
147147
148148 fetchcontent_declare(Avro
149149 ${FC_DECLARE_COMMON_OPTIONS}
150- GIT_REPOSITORY https://github.com/apache/avro.git
151- GIT_TAG 1144cb7322bab4cd1c8bf330a9c504a0d4252b56
150+ # TODO: switch to upstream once the PR below is merged
151+ # https://github.com/apache/avro/pull/3299
152+ # Eventually, we should switch to Apache Avro 1.3.0.
153+ GIT_REPOSITORY https://github.com/wgtmac/avro.git
154+ GIT_TAG 0aa7adf87a9af6d472a3e9d5966c5e7f1d6baa7d
152155 SOURCE_SUBDIR
153156 lang/c++
154157 FIND_PACKAGE_ARGS
@@ -159,33 +162,39 @@ function(resolve_avro_dependency)
159162 fetchcontent_makeavailable(Avro)
160163
161164 if (avro_SOURCE_DIR)
162- if (NOT TARGET Avro::avro_static)
163- add_library (Avro::avro_static INTERFACE IMPORTED )
164- target_link_libraries (Avro::avro_static INTERFACE avrocpp_s)
165- set_target_properties (avrocpp_s PROPERTIES OUTPUT_NAME "iceberg_vendored_avro" )
165+ if (NOT TARGET Avro::avrocpp_static)
166+ add_library (Avro::avrocpp_static INTERFACE IMPORTED )
167+ target_link_libraries (Avro::avrocpp_static INTERFACE avrocpp_s)
168+ target_include_directories (Avro::avrocpp_static
169+ INTERFACE ${avro_BINARY_DIR} ${avro_SOURCE_DIR} /lang/c++)
166170 endif ()
167171
168- if (NOT TARGET Avro::avro_shared)
169- add_library (Avro::avro_shared INTERFACE IMPORTED )
170- target_link_libraries (Avro::avro_shared INTERFACE avrocpp)
171- set_target_properties (avrocpp PROPERTIES OUTPUT_NAME "iceberg_vendored_avro" )
172- endif ()
172+ set (AVRO_VENDORED TRUE )
173+ set_target_properties (avrocpp_s PROPERTIES OUTPUT_NAME "iceberg_vendored_avrocpp" )
174+ set_target_properties (avrocpp_s PROPERTIES POSITION_INDEPENDENT_CODE ON )
175+ install (TARGETS avrocpp_s
176+ EXPORT iceberg_targets
177+ RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR} "
178+ ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR} "
179+ LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR} " )
173180
174- if (ICEBERG_BUILD_STATIC)
175- install (TARGETS avrocpp_s
176- EXPORT fmt-targets
177- RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR} "
178- ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR} "
179- LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR} " )
180- endif ()
181- if (ICEBERG_BUILD_SHARED)
182- install (TARGETS avrocpp
183- EXPORT fmt-targets
184- RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR} "
185- ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR} "
186- LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR} " )
181+ # TODO: add vendored ZLIB and Snappy support
182+ find_package (Snappy CONFIG)
183+ if (Snappy_FOUND)
184+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES Snappy)
187185 endif ()
186+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES ZLIB)
187+ else ()
188+ set (AVRO_VENDORED FALSE )
189+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES Avro)
188190 endif ()
191+
192+ set (ICEBERG_SYSTEM_DEPENDENCIES
193+ ${ICEBERG_SYSTEM_DEPENDENCIES}
194+ PARENT_SCOPE)
195+ set (AVRO_VENDORED
196+ ${AVRO_VENDORED}
197+ PARENT_SCOPE)
189198endfunction ()
190199
191200if (ICEBERG_AVRO)
0 commit comments