This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/main by this push:
new 8281e610a AVRO-4015: [C++] fixed the c++ build to facilitate using it
with FetchContent (#3008)
8281e610a is described below
commit 8281e610ab5666bb3ae6e22a2cc2b11af0fb9226
Author: Viper Bailey <[email protected]>
AuthorDate: Wed Jul 10 05:29:46 2024 -0600
AVRO-4015: [C++] fixed the c++ build to facilitate using it with
FetchContent (#3008)
- exposed the include libraries in such a way that they can be accessed
- added the necessary libs to the static target
Co-authored-by: Michael Bailey <[email protected]>
---
lang/c++/CMakeLists.txt | 19 ++++++++++++++-----
lang/c++/{api => include/avro}/AvroParse.hh | 0
lang/c++/{api => include/avro}/AvroSerialize.hh | 0
lang/c++/{api => include/avro}/AvroTraits.hh | 0
lang/c++/{api => include/avro}/Compiler.hh | 0
lang/c++/{api => include/avro}/Config.hh | 0
lang/c++/{api => include/avro}/CustomAttributes.hh | 0
lang/c++/{api => include/avro}/DataFile.hh | 0
lang/c++/{api => include/avro}/Decoder.hh | 0
lang/c++/{api => include/avro}/Encoder.hh | 0
lang/c++/{api => include/avro}/Exception.hh | 0
lang/c++/{api => include/avro}/Generic.hh | 0
lang/c++/{api => include/avro}/GenericDatum.hh | 0
lang/c++/{api => include/avro}/Layout.hh | 0
lang/c++/{api => include/avro}/LogicalType.hh | 0
lang/c++/{api => include/avro}/Node.hh | 0
lang/c++/{api => include/avro}/NodeConcepts.hh | 0
lang/c++/{api => include/avro}/NodeImpl.hh | 0
lang/c++/{api => include/avro}/Parser.hh | 0
lang/c++/{api => include/avro}/Reader.hh | 0
lang/c++/{api => include/avro}/Resolver.hh | 0
lang/c++/{api => include/avro}/ResolverSchema.hh | 0
lang/c++/{api => include/avro}/ResolvingReader.hh | 0
lang/c++/{api => include/avro}/Schema.hh | 0
lang/c++/{api => include/avro}/SchemaResolution.hh | 0
lang/c++/{api => include/avro}/Serializer.hh | 0
lang/c++/{api => include/avro}/Specific.hh | 0
lang/c++/{api => include/avro}/Stream.hh | 0
lang/c++/{api => include/avro}/Types.hh | 0
lang/c++/{api => include/avro}/ValidSchema.hh | 0
lang/c++/{api => include/avro}/Validator.hh | 0
lang/c++/{api => include/avro}/Writer.hh | 0
lang/c++/{api => include/avro}/Zigzag.hh | 0
lang/c++/{api => include/avro}/buffer/Buffer.hh | 0
lang/c++/{api => include/avro}/buffer/BufferPrint.hh | 0
lang/c++/{api => include/avro}/buffer/BufferReader.hh | 0
lang/c++/{api => include/avro}/buffer/BufferStream.hh | 0
.../{api => include/avro}/buffer/BufferStreambuf.hh | 0
.../avro}/buffer/detail/BufferDetail.hh | 0
.../avro}/buffer/detail/BufferDetailIterator.hh | 0
40 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/lang/c++/CMakeLists.txt b/lang/c++/CMakeLists.txt
index 62c04ff2f..197d8f985 100644
--- a/lang/c++/CMakeLists.txt
+++ b/lang/c++/CMakeLists.txt
@@ -108,7 +108,7 @@ add_definitions (${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
add_definitions
(-DAVRO_VERSION="${AVRO_VERSION_MAJOR}.${AVRO_VERSION_MINOR}.${AVRO_VERSION_PATCH}")
-include_directories (api ${CMAKE_CURRENT_BINARY_DIR} ${Boost_INCLUDE_DIRS})
+include_directories (include/avro ${CMAKE_CURRENT_BINARY_DIR}
${Boost_INCLUDE_DIRS})
set (AVRO_SOURCE_FILES
impl/Compiler.cc impl/Node.cc impl/LogicalType.cc
@@ -135,7 +135,7 @@ set_property (TARGET avrocpp
add_library (avrocpp_s STATIC ${AVRO_SOURCE_FILES})
target_include_directories(avrocpp_s PRIVATE ${SNAPPY_INCLUDE_DIR})
-target_link_libraries(avrocpp_s fmt::fmt-header-only)
+target_link_libraries(avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES}
fmt::fmt-header-only)
set_property (TARGET avrocpp avrocpp_s
APPEND PROPERTY COMPILE_DEFINITIONS AVRO_SOURCE)
@@ -151,7 +151,7 @@ target_include_directories(avrocpp PRIVATE
${SNAPPY_INCLUDE_DIR})
add_executable (precompile test/precompile.cc)
-target_link_libraries (precompile avrocpp_s ${Boost_LIBRARIES}
${SNAPPY_LIBRARIES})
+target_link_libraries (precompile avrocpp_s)
macro (gen file ns)
add_custom_command (OUTPUT ${file}.hh
@@ -183,7 +183,16 @@ gen (cpp_reserved_words cppres)
gen (cpp_reserved_words_union_typedef cppres_union)
add_executable (avrogencpp impl/avrogencpp.cc)
-target_link_libraries (avrogencpp avrocpp_s ${Boost_LIBRARIES}
${SNAPPY_LIBRARIES})
+target_link_libraries (avrogencpp avrocpp_s)
+
+target_include_directories(avrocpp_s PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>
+)
+target_include_directories(avrocpp PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>
+)
enable_testing()
@@ -230,7 +239,7 @@ install (TARGETS avrocpp avrocpp_s
install (TARGETS avrogencpp RUNTIME DESTINATION bin)
-install (DIRECTORY api/ DESTINATION include/avro
+install (DIRECTORY include/avro DESTINATION include
FILES_MATCHING PATTERN *.hh)
if (NOT CMAKE_BUILD_TYPE)
diff --git a/lang/c++/api/AvroParse.hh b/lang/c++/include/avro/AvroParse.hh
similarity index 100%
rename from lang/c++/api/AvroParse.hh
rename to lang/c++/include/avro/AvroParse.hh
diff --git a/lang/c++/api/AvroSerialize.hh
b/lang/c++/include/avro/AvroSerialize.hh
similarity index 100%
rename from lang/c++/api/AvroSerialize.hh
rename to lang/c++/include/avro/AvroSerialize.hh
diff --git a/lang/c++/api/AvroTraits.hh b/lang/c++/include/avro/AvroTraits.hh
similarity index 100%
rename from lang/c++/api/AvroTraits.hh
rename to lang/c++/include/avro/AvroTraits.hh
diff --git a/lang/c++/api/Compiler.hh b/lang/c++/include/avro/Compiler.hh
similarity index 100%
rename from lang/c++/api/Compiler.hh
rename to lang/c++/include/avro/Compiler.hh
diff --git a/lang/c++/api/Config.hh b/lang/c++/include/avro/Config.hh
similarity index 100%
rename from lang/c++/api/Config.hh
rename to lang/c++/include/avro/Config.hh
diff --git a/lang/c++/api/CustomAttributes.hh
b/lang/c++/include/avro/CustomAttributes.hh
similarity index 100%
rename from lang/c++/api/CustomAttributes.hh
rename to lang/c++/include/avro/CustomAttributes.hh
diff --git a/lang/c++/api/DataFile.hh b/lang/c++/include/avro/DataFile.hh
similarity index 100%
rename from lang/c++/api/DataFile.hh
rename to lang/c++/include/avro/DataFile.hh
diff --git a/lang/c++/api/Decoder.hh b/lang/c++/include/avro/Decoder.hh
similarity index 100%
rename from lang/c++/api/Decoder.hh
rename to lang/c++/include/avro/Decoder.hh
diff --git a/lang/c++/api/Encoder.hh b/lang/c++/include/avro/Encoder.hh
similarity index 100%
rename from lang/c++/api/Encoder.hh
rename to lang/c++/include/avro/Encoder.hh
diff --git a/lang/c++/api/Exception.hh b/lang/c++/include/avro/Exception.hh
similarity index 100%
rename from lang/c++/api/Exception.hh
rename to lang/c++/include/avro/Exception.hh
diff --git a/lang/c++/api/Generic.hh b/lang/c++/include/avro/Generic.hh
similarity index 100%
rename from lang/c++/api/Generic.hh
rename to lang/c++/include/avro/Generic.hh
diff --git a/lang/c++/api/GenericDatum.hh
b/lang/c++/include/avro/GenericDatum.hh
similarity index 100%
rename from lang/c++/api/GenericDatum.hh
rename to lang/c++/include/avro/GenericDatum.hh
diff --git a/lang/c++/api/Layout.hh b/lang/c++/include/avro/Layout.hh
similarity index 100%
rename from lang/c++/api/Layout.hh
rename to lang/c++/include/avro/Layout.hh
diff --git a/lang/c++/api/LogicalType.hh b/lang/c++/include/avro/LogicalType.hh
similarity index 100%
rename from lang/c++/api/LogicalType.hh
rename to lang/c++/include/avro/LogicalType.hh
diff --git a/lang/c++/api/Node.hh b/lang/c++/include/avro/Node.hh
similarity index 100%
rename from lang/c++/api/Node.hh
rename to lang/c++/include/avro/Node.hh
diff --git a/lang/c++/api/NodeConcepts.hh
b/lang/c++/include/avro/NodeConcepts.hh
similarity index 100%
rename from lang/c++/api/NodeConcepts.hh
rename to lang/c++/include/avro/NodeConcepts.hh
diff --git a/lang/c++/api/NodeImpl.hh b/lang/c++/include/avro/NodeImpl.hh
similarity index 100%
rename from lang/c++/api/NodeImpl.hh
rename to lang/c++/include/avro/NodeImpl.hh
diff --git a/lang/c++/api/Parser.hh b/lang/c++/include/avro/Parser.hh
similarity index 100%
rename from lang/c++/api/Parser.hh
rename to lang/c++/include/avro/Parser.hh
diff --git a/lang/c++/api/Reader.hh b/lang/c++/include/avro/Reader.hh
similarity index 100%
rename from lang/c++/api/Reader.hh
rename to lang/c++/include/avro/Reader.hh
diff --git a/lang/c++/api/Resolver.hh b/lang/c++/include/avro/Resolver.hh
similarity index 100%
rename from lang/c++/api/Resolver.hh
rename to lang/c++/include/avro/Resolver.hh
diff --git a/lang/c++/api/ResolverSchema.hh
b/lang/c++/include/avro/ResolverSchema.hh
similarity index 100%
rename from lang/c++/api/ResolverSchema.hh
rename to lang/c++/include/avro/ResolverSchema.hh
diff --git a/lang/c++/api/ResolvingReader.hh
b/lang/c++/include/avro/ResolvingReader.hh
similarity index 100%
rename from lang/c++/api/ResolvingReader.hh
rename to lang/c++/include/avro/ResolvingReader.hh
diff --git a/lang/c++/api/Schema.hh b/lang/c++/include/avro/Schema.hh
similarity index 100%
rename from lang/c++/api/Schema.hh
rename to lang/c++/include/avro/Schema.hh
diff --git a/lang/c++/api/SchemaResolution.hh
b/lang/c++/include/avro/SchemaResolution.hh
similarity index 100%
rename from lang/c++/api/SchemaResolution.hh
rename to lang/c++/include/avro/SchemaResolution.hh
diff --git a/lang/c++/api/Serializer.hh b/lang/c++/include/avro/Serializer.hh
similarity index 100%
rename from lang/c++/api/Serializer.hh
rename to lang/c++/include/avro/Serializer.hh
diff --git a/lang/c++/api/Specific.hh b/lang/c++/include/avro/Specific.hh
similarity index 100%
rename from lang/c++/api/Specific.hh
rename to lang/c++/include/avro/Specific.hh
diff --git a/lang/c++/api/Stream.hh b/lang/c++/include/avro/Stream.hh
similarity index 100%
rename from lang/c++/api/Stream.hh
rename to lang/c++/include/avro/Stream.hh
diff --git a/lang/c++/api/Types.hh b/lang/c++/include/avro/Types.hh
similarity index 100%
rename from lang/c++/api/Types.hh
rename to lang/c++/include/avro/Types.hh
diff --git a/lang/c++/api/ValidSchema.hh b/lang/c++/include/avro/ValidSchema.hh
similarity index 100%
rename from lang/c++/api/ValidSchema.hh
rename to lang/c++/include/avro/ValidSchema.hh
diff --git a/lang/c++/api/Validator.hh b/lang/c++/include/avro/Validator.hh
similarity index 100%
rename from lang/c++/api/Validator.hh
rename to lang/c++/include/avro/Validator.hh
diff --git a/lang/c++/api/Writer.hh b/lang/c++/include/avro/Writer.hh
similarity index 100%
rename from lang/c++/api/Writer.hh
rename to lang/c++/include/avro/Writer.hh
diff --git a/lang/c++/api/Zigzag.hh b/lang/c++/include/avro/Zigzag.hh
similarity index 100%
rename from lang/c++/api/Zigzag.hh
rename to lang/c++/include/avro/Zigzag.hh
diff --git a/lang/c++/api/buffer/Buffer.hh
b/lang/c++/include/avro/buffer/Buffer.hh
similarity index 100%
rename from lang/c++/api/buffer/Buffer.hh
rename to lang/c++/include/avro/buffer/Buffer.hh
diff --git a/lang/c++/api/buffer/BufferPrint.hh
b/lang/c++/include/avro/buffer/BufferPrint.hh
similarity index 100%
rename from lang/c++/api/buffer/BufferPrint.hh
rename to lang/c++/include/avro/buffer/BufferPrint.hh
diff --git a/lang/c++/api/buffer/BufferReader.hh
b/lang/c++/include/avro/buffer/BufferReader.hh
similarity index 100%
rename from lang/c++/api/buffer/BufferReader.hh
rename to lang/c++/include/avro/buffer/BufferReader.hh
diff --git a/lang/c++/api/buffer/BufferStream.hh
b/lang/c++/include/avro/buffer/BufferStream.hh
similarity index 100%
rename from lang/c++/api/buffer/BufferStream.hh
rename to lang/c++/include/avro/buffer/BufferStream.hh
diff --git a/lang/c++/api/buffer/BufferStreambuf.hh
b/lang/c++/include/avro/buffer/BufferStreambuf.hh
similarity index 100%
rename from lang/c++/api/buffer/BufferStreambuf.hh
rename to lang/c++/include/avro/buffer/BufferStreambuf.hh
diff --git a/lang/c++/api/buffer/detail/BufferDetail.hh
b/lang/c++/include/avro/buffer/detail/BufferDetail.hh
similarity index 100%
rename from lang/c++/api/buffer/detail/BufferDetail.hh
rename to lang/c++/include/avro/buffer/detail/BufferDetail.hh
diff --git a/lang/c++/api/buffer/detail/BufferDetailIterator.hh
b/lang/c++/include/avro/buffer/detail/BufferDetailIterator.hh
similarity index 100%
rename from lang/c++/api/buffer/detail/BufferDetailIterator.hh
rename to lang/c++/include/avro/buffer/detail/BufferDetailIterator.hh