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

Reply via email to