@@ -147,8 +147,11 @@ function(resolve_avro_dependency)
147
147
148
148
fetchcontent_declare(Avro
149
149
${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
152
155
SOURCE_SUBDIR
153
156
lang/c++
154
157
FIND_PACKAGE_ARGS
@@ -159,33 +162,39 @@ function(resolve_avro_dependency)
159
162
fetchcontent_makeavailable(Avro)
160
163
161
164
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++)
166
170
endif ()
167
171
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} " )
173
180
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)
187
185
endif ()
186
+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES ZLIB)
187
+ else ()
188
+ set (AVRO_VENDORED FALSE )
189
+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES Avro)
188
190
endif ()
191
+
192
+ set (ICEBERG_SYSTEM_DEPENDENCIES
193
+ ${ICEBERG_SYSTEM_DEPENDENCIES}
194
+ PARENT_SCOPE)
195
+ set (AVRO_VENDORED
196
+ ${AVRO_VENDORED}
197
+ PARENT_SCOPE)
189
198
endfunction ()
190
199
191
200
if (ICEBERG_AVRO)
0 commit comments