This is an automated email from the ASF dual-hosted git repository.

SYaoJun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-graphar.git


The following commit(s) were added to refs/heads/main by this push:
     new 8887a150 fix(cpp): restore Arrow 17 devcontainer compatibility (#952)
8887a150 is described below

commit 8887a1503c918d225226c093e6790434fed1c056
Author: alex <[email protected]>
AuthorDate: Tue Aug 18 02:40:58 2026 +0300

    fix(cpp): restore Arrow 17 devcontainer compatibility (#952)
    
    * fix(cpp): restore Arrow 17 devcontainer compatibility
    
    Support the Arrow 17 compute and Parquet reader APIs packaged by the 
published development container while preserving the Arrow 21+ path.
    
    Tests: graphar-cpplint; CMake build; ctest (20/20) in devcontainer
    Fixes: #945
    
    * fix(cpp): keep the info headers free of Arrow and guard ARROW_VERSION
    
    Review feedback on apache/incubator-graphar#952.
    
    Including arrow/util/config.h in fwd.h coupled the info API chain
    (api/info.h -> graph_info.h/types.h/result.h) to Arrow. Since the graphar
    target links Arrow PRIVATE and graphar-config.cmake does not export the 
Arrow
    include directories, a downstream consumer of the info API alone would need
    Arrow development headers on its include path. Every use of ARROW_VERSION in
    this branch is in a translation unit that already depends on Arrow, so the
    include belongs there instead.
    
    Also spell the version checks as defined(ARROW_VERSION) && ..., matching the
    checks already present in filesystem.cc and util.h.
    
    Verified in ghcr.io/apache/graphar-dev:latest (Arrow 17): a translation unit
    including only graphar/graph_info.h compiles with the Arrow headers removed
    from the include path, which fails before this change; the full Debug build
    succeeds and ctest reports 20/20 passed.
    
    ---------
    
    Co-authored-by: keksmd <[email protected]>
---
 cmake.log                                  | 33 +++++++++++
 cpp/src/graphar/arrow/chunk_reader.cc      |  5 ++
 cpp/src/graphar/arrow/chunk_writer.cc      |  8 ++-
 cpp/src/graphar/expression.cc              |  3 +
 cpp/src/graphar/filesystem.cc              | 15 +++++
 cpp/src/graphar/high-level/graph_reader.cc |  3 +
 cpp/src/graphar/reader_util.cc             |  3 +
 cpp/src/graphar/util.h                     |  1 +
 cpp/test/test_arrow_chunk_writer.cc        | 12 ++--
 cpp/test/test_builder.cc                   |  8 +--
 cpp/test/util.h                            | 16 ++++++
 make.log                                   | 90 ++++++++++++++++++++++++++++++
 12 files changed, 187 insertions(+), 10 deletions(-)

diff --git a/cmake.log b/cmake.log
new file mode 100644
index 00000000..ddcc018d
--- /dev/null
+++ b/cmake.log
@@ -0,0 +1,33 @@
+-- The C compiler identification is GNU 11.4.0
+-- The CXX compiler identification is GNU 11.4.0
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Check for working C compiler: /usr/bin/cc - skipped
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Check for working CXX compiler: /usr/bin/c++ - skipped
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- [graphar] will build in type: Debug
+-- [graphar] GRAPHAR_ENABLE_SANITIZER: ON
+-- [graphar] GRAPHAR_ENABLE_COVERAGE: OFF
+-- Checking for modules 'libbrotlicommon;libbrotlienc;libbrotlidec'
+--   Found libbrotlicommon, version 1.0.9
+--   Found libbrotlienc, version 1.0.9
+--   Found libbrotlidec, version 1.0.9
+-- Checking for module 'liblz4'
+--   Found liblz4, version 1.9.3
+-- Checking for module 'libzstd'
+--   Found libzstd, version 1.4.8
+-- Zstandard library: /usr/lib/aarch64-linux-gnu/libzstd.so
+-- Zstandard include directory: /usr/include
+-- Checking for module 're2'
+--   Found re2, version 0.0.0
+-- Checking for module 'thrift'
+--   Found thrift, version 0.16.0
+-- [graphar] using C++ standard: 17
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /w/cpp/build
diff --git a/cpp/src/graphar/arrow/chunk_reader.cc 
b/cpp/src/graphar/arrow/chunk_reader.cc
index 71e2ffa9..687cff6a 100644
--- a/cpp/src/graphar/arrow/chunk_reader.cc
+++ b/cpp/src/graphar/arrow/chunk_reader.cc
@@ -24,6 +24,7 @@
 
 #include "arrow/api.h"
 #include "arrow/compute/api.h"
+#include "arrow/util/config.h"
 
 #include "graphar/arrow/chunk_reader.h"
 #include "graphar/filesystem.h"
@@ -75,7 +76,9 @@ Status GeneralCast(const std::shared_ptr<arrow::Array>& in,
                    std::shared_ptr<arrow::Array>* out) {
   static bool initialized = false;
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
+#endif
     initialized = true;
   }
   GAR_RETURN_ON_ARROW_ERROR_AND_ASSIGN(*out,
@@ -117,7 +120,9 @@ Status CastTableWithSchema(const 
std::shared_ptr<arrow::Table>& table,
                            std::shared_ptr<arrow::Table>* out_table) {
   static bool initialized = false;
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
+#endif
     initialized = true;
   }
   if (table->schema()->Equals(*schema)) {
diff --git a/cpp/src/graphar/arrow/chunk_writer.cc 
b/cpp/src/graphar/arrow/chunk_writer.cc
index 564ea614..8a9c6921 100644
--- a/cpp/src/graphar/arrow/chunk_writer.cc
+++ b/cpp/src/graphar/arrow/chunk_writer.cc
@@ -24,6 +24,7 @@
 #include <utility>
 #include "arrow/api.h"
 #include "arrow/compute/api.h"
+#include "arrow/util/config.h"
 #include "graphar/fwd.h"
 #include "graphar/writer_util.h"
 #if defined(ARROW_VERSION) && ARROW_VERSION >= 12000000
@@ -94,8 +95,11 @@ Result<std::shared_ptr<arrow::Table>> 
ExecutePlanAndCollectAsTable(
   GAR_RETURN_ON_ARROW_ERROR_AND_ASSIGN(
       response_table, arrow::Table::FromRecordBatchReader(sink_reader.get()));
 
-  // stop producing
+  // Arrow 17 marks an already drained plan as cancelled when StopProducing is
+  // called. Newer Arrow versions retain the existing explicit shutdown.
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
   plan->StopProducing();
+#endif
   // plan mark finished
   RETURN_NOT_ARROW_OK(plan->finished().status());
   return response_table;
@@ -1021,8 +1025,10 @@ Result<std::shared_ptr<arrow::Table>> 
EdgeChunkWriter::getOffsetTable(
 Result<std::shared_ptr<arrow::Table>> EdgeChunkWriter::sortTable(
     const std::shared_ptr<arrow::Table>& input_table,
     const std::string& column_name) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
   RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
   arrow::dataset::internal::Initialize();
+#endif
   auto exec_context = arrow::compute::default_exec_context();
   auto plan = arrow_acero_namespace::ExecPlan::Make(exec_context).ValueOrDie();
   auto table_source_options =
diff --git a/cpp/src/graphar/expression.cc b/cpp/src/graphar/expression.cc
index 18f22392..70648291 100644
--- a/cpp/src/graphar/expression.cc
+++ b/cpp/src/graphar/expression.cc
@@ -18,6 +18,7 @@
  */
 
 #include "graphar/expression.h"
+#include "arrow/util/config.h"
 #include "graphar/result.h"
 
 namespace graphar {
@@ -25,7 +26,9 @@ namespace graphar {
 Status EnsureComputeInitialized() {
   static bool initialized = false;
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
+#endif
     initialized = true;
   }
   return Status::OK();
diff --git a/cpp/src/graphar/filesystem.cc b/cpp/src/graphar/filesystem.cc
index 08cd9edd..454e0bc4 100644
--- a/cpp/src/graphar/filesystem.cc
+++ b/cpp/src/graphar/filesystem.cc
@@ -22,6 +22,7 @@
 #include "graphar/writer_util.h"
 #ifdef ARROW_ORC
 #include "arrow/adapters/orc/adapter.h"
+#include "arrow/util/config.h"
 #endif
 #include <arrow/compute/api.h>
 #include "arrow/api.h"
@@ -99,12 +100,16 @@ Status EnsureDatasetScannerInitialized() {
   static bool initialized = false;
   static Status init_status = Status::OK();
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     auto st = arrow::compute::Initialize();
     if (!st.ok()) {
       init_status = Status::ArrowError(st.ToString());
     } else {
       arrow::dataset::internal::Initialize();
     }
+#else
+    arrow::dataset::internal::Initialize();
+#endif
     initialized = true;
   }
   return init_status;
@@ -141,6 +146,15 @@ Result<std::shared_ptr<arrow::Table>> 
FileSystem::ReadFileToTable(
   }
   builder.memory_pool(arrow::default_memory_pool());
   GAR_RETURN_ON_ARROW_ERROR_AND_ASSIGN(auto reader, builder.Build());
+#if defined(ARROW_VERSION) && ARROW_VERSION <= 20000000
+  std::shared_ptr<arrow::Table> table;
+  if (column_indices.empty()) {
+    RETURN_NOT_ARROW_OK(reader->ReadTable(&table));
+    return table;
+  }
+  RETURN_NOT_ARROW_OK(reader->ReadTable(column_indices, &table));
+  return table;
+#else
   if (column_indices.empty()) {
     GAR_RETURN_ON_ARROW_ERROR_AND_ASSIGN(auto table, reader->ReadTable());
     return table;
@@ -148,6 +162,7 @@ Result<std::shared_ptr<arrow::Table>> 
FileSystem::ReadFileToTable(
   GAR_RETURN_ON_ARROW_ERROR_AND_ASSIGN(auto table,
                                        reader->ReadTable(column_indices));
   return table;
+#endif
 }
 
 Result<std::shared_ptr<arrow::Table>> FileSystem::ReadFileToTable(
diff --git a/cpp/src/graphar/high-level/graph_reader.cc 
b/cpp/src/graphar/high-level/graph_reader.cc
index 96c7d496..139138a8 100644
--- a/cpp/src/graphar/high-level/graph_reader.cc
+++ b/cpp/src/graphar/high-level/graph_reader.cc
@@ -23,6 +23,7 @@
 #include "arrow/array.h"
 #include "arrow/dataset/dataset.h"
 #include "arrow/dataset/plan.h"
+#include "arrow/util/config.h"
 #include "graphar/api/arrow_reader.h"
 #include "graphar/convert_to_arrow_type.h"
 #include "graphar/label.h"
@@ -948,7 +949,9 @@ Result<std::shared_ptr<EdgesCollection>> 
EdgesCollection::Make(
     const IdType vertex_chunk_end) noexcept {
   static bool initialized = false;
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
+#endif
     arrow::dataset::internal::Initialize();
     initialized = true;
   }
diff --git a/cpp/src/graphar/reader_util.cc b/cpp/src/graphar/reader_util.cc
index df1f2791..6c9c9a1b 100644
--- a/cpp/src/graphar/reader_util.cc
+++ b/cpp/src/graphar/reader_util.cc
@@ -19,6 +19,7 @@
 
 #ifdef ARROW_ORC
 #include "arrow/adapters/orc/adapter.h"
+#include "arrow/util/config.h"
 #endif
 #include "arrow/api.h"
 #include "arrow/csv/api.h"
@@ -47,7 +48,9 @@ Status CheckFilterOptions(
     const std::shared_ptr<PropertyGroup>& property_group) noexcept {
   static bool initialized = false;
   if (!initialized) {
+#if defined(ARROW_VERSION) && ARROW_VERSION >= 21000000
     RETURN_NOT_ARROW_OK(arrow::compute::Initialize());
+#endif
     initialized = true;
   }
   if (filter_options.filter) {
diff --git a/cpp/src/graphar/util.h b/cpp/src/graphar/util.h
index 1ef13a3e..9b885aaa 100644
--- a/cpp/src/graphar/util.h
+++ b/cpp/src/graphar/util.h
@@ -33,6 +33,7 @@
 #include "arrow/filesystem/api.h"
 #include "arrow/io/api.h"
 #include "arrow/stl.h"
+#include "arrow/util/config.h"
 #include "arrow/util/uri.h"
 #include "parquet/arrow/reader.h"
 #include "parquet/arrow/writer.h"
diff --git a/cpp/test/test_arrow_chunk_writer.cc 
b/cpp/test/test_arrow_chunk_writer.cc
index b3522705..6deba0d9 100644
--- a/cpp/test/test_arrow_chunk_writer.cc
+++ b/cpp/test/test_arrow_chunk_writer.cc
@@ -145,7 +145,7 @@ TEST_CASE_METHOD(GlobalFixture, "TestVertexPropertyWriter") 
{
     st = graphar::util::OpenParquetArrowReader(path2, pool, &arrow_reader);
 
     // Read entire file as a single Arrow table
-    auto maybe_table2 = arrow_reader->ReadTable();
+    auto maybe_table2 = ReadParquetTable(arrow_reader.get());
     REQUIRE(maybe_table2.ok());
     auto table2 = maybe_table2.ValueOrDie();
 
@@ -218,7 +218,7 @@ TEST_CASE_METHOD(GlobalFixture, "TestVertexPropertyWriter") 
{
     auto st = graphar::util::OpenParquetArrowReader(
         parquet_file, arrow::default_memory_pool(), &parquet_reader);
     REQUIRE(st.ok());
-    auto maybe_parquet_table = parquet_reader->ReadTable();
+    auto maybe_parquet_table = ReadParquetTable(parquet_reader.get());
     REQUIRE(maybe_parquet_table.ok());
     auto parquet_table = maybe_parquet_table.ValueOrDie();
     auto parquet_metadata = parquet_reader->parquet_reader()->metadata();
@@ -281,7 +281,7 @@ TEST_CASE_METHOD(GlobalFixture, "TestEdgeChunkWriter") {
   std::unique_ptr<parquet::arrow::FileReader> arrow_reader;
   st = graphar::util::OpenParquetArrowReader(path, pool, &arrow_reader);
   // Read entire file as a single Arrow table
-  auto maybe_table = arrow_reader->ReadTable();
+  auto maybe_table = ReadParquetTable(arrow_reader.get());
   REQUIRE(maybe_table.ok());
 
   std::shared_ptr<arrow::Table> table =
@@ -377,7 +377,9 @@ TEST_CASE_METHOD(GlobalFixture, "TestEdgeChunkWriter") {
     auto writer = maybe_writer.value();
 
     // Valid: Write adj list with options
-    REQUIRE(writer->SortAndWriteAdjListTable(table, 0, 0).ok());
+    auto write_status = writer->SortAndWriteAdjListTable(table, 0, 0);
+    INFO(write_status.message());
+    REQUIRE(write_status.ok());
     // Valid: Write edge count
     REQUIRE(writer->WriteEdgesNum(0, table->num_rows()).ok());
     // Valid: Write vertex count
@@ -429,7 +431,7 @@ TEST_CASE_METHOD(GlobalFixture, "TestEdgeChunkWriter") {
     auto st = graphar::util::OpenParquetArrowReader(
         parquet_file, arrow::default_memory_pool(), &parquet_reader);
     REQUIRE(st.ok());
-    auto maybe_parquet_table = parquet_reader->ReadTable();
+    auto maybe_parquet_table = ReadParquetTable(parquet_reader.get());
     REQUIRE(maybe_parquet_table.ok());
     auto parquet_table = maybe_parquet_table.ValueOrDie();
     auto parquet_metadata = parquet_reader->parquet_reader()->metadata();
diff --git a/cpp/test/test_builder.cc b/cpp/test/test_builder.cc
index 244f0d8c..16ba5a21 100644
--- a/cpp/test/test_builder.cc
+++ b/cpp/test/test_builder.cc
@@ -174,7 +174,7 @@ TEST_CASE_METHOD(GlobalFixture, "Test_vertices_builder") {
   REQUIRE(graphar::util::OpenParquetArrowReader(
               parquet_file, arrow::default_memory_pool(), &parquet_reader)
               .ok());
-  auto maybe_parquet_table = parquet_reader->ReadTable();
+  auto maybe_parquet_table = ReadParquetTable(parquet_reader.get());
   REQUIRE(maybe_parquet_table.ok());
   auto parquet_table = maybe_parquet_table.ValueOrDie();
   auto parquet_metadata = parquet_reader->parquet_reader()->metadata();
@@ -193,7 +193,7 @@ TEST_CASE_METHOD(GlobalFixture, "Test_vertices_builder") {
 
   auto id_col = parquet_table->GetColumnByName("id");
 
-  auto maybe_name_table = name_reader->ReadTable();
+  auto maybe_name_table = ReadParquetTable(name_reader.get());
   REQUIRE(maybe_name_table.ok());
   auto name_table = maybe_name_table.ValueOrDie();
   auto name_col = name_table->GetColumnByName("firstName");
@@ -332,7 +332,7 @@ TEST_CASE_METHOD(GlobalFixture, "test_edges_builder") {
     REQUIRE(graphar::util::OpenParquetArrowReader(
                 parquet_file, arrow::default_memory_pool(), &reader)
                 .ok());
-    auto maybe_table = reader->ReadTable();
+    auto maybe_table = ReadParquetTable(reader.get());
     REQUIRE(maybe_table.ok());
     auto table = maybe_table.ValueOrDie();
     auto col = table->GetColumnByName("creationDate");
@@ -381,7 +381,7 @@ TEST_CASE_METHOD(GlobalFixture, "test_edges_builder") {
   REQUIRE(graphar::util::OpenParquetArrowReader(
               parquet_file, arrow::default_memory_pool(), &parquet_reader)
               .ok());
-  auto maybe_parquet_table = parquet_reader->ReadTable();
+  auto maybe_parquet_table = ReadParquetTable(parquet_reader.get());
   REQUIRE(maybe_parquet_table.ok());
   auto parquet_table = maybe_parquet_table.ValueOrDie();
   auto parquet_metadata = parquet_reader->parquet_reader()->metadata();
diff --git a/cpp/test/util.h b/cpp/test/util.h
index 32630de2..3ba95cc4 100644
--- a/cpp/test/util.h
+++ b/cpp/test/util.h
@@ -21,10 +21,26 @@
 
 #include <filesystem>
 #include <iostream>
+#include <memory>
 #include <string>
 
+#include "arrow/table.h"
+#include "arrow/util/config.h"
+#include "parquet/arrow/reader.h"
+
 namespace graphar {
 
+inline arrow::Result<std::shared_ptr<arrow::Table>> ReadParquetTable(
+    parquet::arrow::FileReader* reader) {
+#if ARROW_VERSION <= 20000000
+  std::shared_ptr<arrow::Table> table;
+  ARROW_RETURN_NOT_OK(reader->ReadTable(&table));
+  return table;
+#else
+  return reader->ReadTable();
+#endif
+}
+
 // Define the fixture
 struct GlobalFixture {
   GlobalFixture() {
diff --git a/make.log b/make.log
new file mode 100644
index 00000000..821c0fe5
--- /dev/null
+++ b/make.log
@@ -0,0 +1,90 @@
+make: Entering directory '/w/cpp/build'
+make[1]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+[  2%] Building CXX object 
src/CMakeFiles/graphar_thirdparty.dir/__/thirdparty/mini-yaml/yaml/Yaml.cpp.o
+[  5%] Linking CXX static library libgraphar_thirdparty.a
+make[2]: Leaving directory '/w/cpp/build'
+[  5%] Built target graphar_thirdparty
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+[  8%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/arrow/chunk_writer.cc.o
+[ 11%] Building CXX object src/CMakeFiles/graphar.dir/graphar/graph_info.cc.o
+[ 13%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/chunk_info_reader.cc.o
+[ 16%] Building CXX object src/CMakeFiles/graphar.dir/graphar/filesystem.cc.o
+[ 22%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/arrow/chunk_reader.cc.o
+[ 22%] Building CXX object src/CMakeFiles/graphar.dir/graphar/expression.cc.o
+[ 25%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/high-level/edges_builder.cc.o
+[ 27%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/chunk_info_writer.cc.o
+[ 30%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/high-level/graph_reader.cc.o
+[ 33%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/high-level/vertices_builder.cc.o
+[ 36%] Building CXX object src/CMakeFiles/graphar.dir/graphar/label.cc.o
+[ 38%] Building CXX object src/CMakeFiles/graphar.dir/graphar/reader_util.cc.o
+[ 41%] Building CXX object src/CMakeFiles/graphar.dir/graphar/types.cc.o
+[ 44%] Building CXX object src/CMakeFiles/graphar.dir/graphar/util.cc.o
+[ 47%] Building CXX object 
src/CMakeFiles/graphar.dir/graphar/version_parser.cc.o
+[ 50%] Building CXX object src/CMakeFiles/graphar.dir/graphar/writer_util.cc.o
+[ 52%] Building CXX object src/CMakeFiles/graphar.dir/graphar/yaml.cc.o
+[ 55%] Linking CXX shared library libgraphar.so
+make[2]: Leaving directory '/w/cpp/build'
+[ 55%] Built target graphar
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+make[2]: Leaving directory '/w/cpp/build'
+make[2]: Entering directory '/w/cpp/build'
+[ 58%] Building CXX object 
test/CMakeFiles/test_arrow_chunk_writer.dir/test_arrow_chunk_writer.cc.o
+[ 61%] Building CXX object test/CMakeFiles/test_graph.dir/test_graph.cc.o
+[ 63%] Building CXX object test/CMakeFiles/test_info.dir/test_info.cc.o
+[ 69%] Building CXX object 
test/CMakeFiles/test_multi_label.dir/test_multi_label.cc.o
+[ 69%] Building CXX object 
test/CMakeFiles/test_multi_property.dir/test_multi_property.cc.o
+[ 72%] Building CXX object 
test/CMakeFiles/test_chunk_info_reader.dir/test_chunk_info_reader.cc.o
+[ 75%] Building CXX object test/CMakeFiles/test_builder.dir/test_builder.cc.o
+[ 77%] Building CXX object 
test/CMakeFiles/test_arrow_chunk_reader.dir/test_arrow_chunk_reader.cc.o
+[ 80%] Linking CXX executable test_multi_label
+make[2]: Leaving directory '/w/cpp/build'
+[ 80%] Built target test_multi_label
+[ 83%] Linking CXX executable test_chunk_info_reader
+[ 86%] Linking CXX executable test_arrow_chunk_writer
+make[2]: Leaving directory '/w/cpp/build'
+[ 86%] Built target test_chunk_info_reader
+make[2]: Leaving directory '/w/cpp/build'
+[ 86%] Built target test_arrow_chunk_writer
+[ 88%] Linking CXX executable test_builder
+[ 91%] Linking CXX executable test_multi_property
+[ 94%] Linking CXX executable test_graph
+[ 97%] Linking CXX executable test_info
+[100%] Linking CXX executable test_arrow_chunk_reader
+make[2]: Leaving directory '/w/cpp/build'
+[100%] Built target test_builder
+make[2]: Leaving directory '/w/cpp/build'
+[100%] Built target test_multi_property
+make[2]: Leaving directory '/w/cpp/build'
+[100%] Built target test_graph
+make[2]: Leaving directory '/w/cpp/build'
+[100%] Built target test_info
+make[2]: Leaving directory '/w/cpp/build'
+[100%] Built target test_arrow_chunk_reader
+make[1]: Leaving directory '/w/cpp/build'
+make: Leaving directory '/w/cpp/build'


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to