Skip to content

Commit

Permalink
fix: correct cmake library interdependencies (#100)
Browse files Browse the repository at this point in the history
This eliminates the cycles described in #99.

PlanPrinterVisitor is now part of symbol_table.
BasePlanProtoVisitor (which PlanPrinterVisitor depends on) is now its
own library.
  • Loading branch information
EpsilonPrime committed Mar 15, 2024
1 parent 3f84014 commit fd555a6
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 18 deletions.
2 changes: 0 additions & 2 deletions scripts/setup-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ sudo --preserve-env apt install -y \
clang-tidy \
git \
wget \
libprotobuf-dev \
libprotobuf23 \
protobuf-compiler \
clang-format \
uuid-dev \
Expand Down
6 changes: 4 additions & 2 deletions src/substrait/proto/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,7 @@ add_library(substrait_proto ${PROTO_SRCS} ${PROTO_HDRS} ProtoUtils.cpp
target_link_libraries(substrait_proto protobuf::libprotobuf)

# Make sure we can see our own generated include files.
target_include_directories(substrait_proto
PUBLIC "${PROTO_OUTPUT_TOPLEVEL_DIR}/src")
target_include_directories(
substrait_proto
PUBLIC "${PROTO_OUTPUT_TOPLEVEL_DIR}/src"
PUBLIC "${protobuf_SOURCE_DIR}/src")
13 changes: 11 additions & 2 deletions src/substrait/textplan/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ add_library(
symbol_table
Location.cpp
Location.h
PlanPrinterVisitor.cpp
PlanPrinterVisitor.h
StringManipulation.cpp
StringManipulation.h
SymbolTable.cpp
Expand All @@ -23,8 +25,15 @@ add_library(parse_result ParseResult.cpp ParseResult.h)
add_dependencies(symbol_table substrait_proto substrait_common absl::strings
fmt::fmt-header-only)

target_link_libraries(symbol_table fmt::fmt-header-only absl::strings
substrait_textplan_converter)
target_link_libraries(
symbol_table
substrait_base_proto_visitor
substrait_proto
substrait_common
substrait_expression
absl::strings
fmt::fmt-header-only
date::date)

# Provide access to the generated protobuffer headers hierarchy.
target_include_directories(symbol_table
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: Apache-2.0 */

#include "substrait/textplan/converter/PlanPrinterVisitor.h"
#include "substrait/textplan/PlanPrinterVisitor.h"
#include <unistd.h>

#include <sstream>
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/substrait/textplan/SymbolTablePrinter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
#include "substrait/common/Exceptions.h"
#include "substrait/proto/algebra.pb.h"
#include "substrait/textplan/Any.h"
#include "substrait/textplan/PlanPrinterVisitor.h"
#include "substrait/textplan/StructuredSymbolData.h"
#include "substrait/textplan/SymbolTable.h"
#include "substrait/textplan/converter/PlanPrinterVisitor.h"

namespace io::substrait::textplan {

Expand Down
22 changes: 14 additions & 8 deletions src/substrait/textplan/converter/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,36 @@ include(../../../../third_party/datetime.cmake)
set(TEXTPLAN_SRCS
InitialPlanProtoVisitor.cpp
InitialPlanProtoVisitor.h
BasePlanProtoVisitor.cpp
BasePlanProtoVisitor.h
PipelineVisitor.cpp
PipelineVisitor.h
PlanPrinterVisitor.cpp
PlanPrinterVisitor.h
LoadBinary.cpp
LoadBinary.h
SaveBinary.cpp
SaveBinary.h
ParseBinary.cpp
ParseBinary.h)

add_library(substrait_base_proto_visitor BasePlanProtoVisitor.cpp
BasePlanProtoVisitor.h)

target_link_libraries(
substrait_base_proto_visitor
substrait_common
substrait_proto
error_listener
fmt::fmt-header-only
absl::status
absl::statusor)

add_library(substrait_textplan_converter ${TEXTPLAN_SRCS})

target_link_libraries(
substrait_textplan_converter
substrait_base_proto_visitor
substrait_common
substrait_expression
substrait_io
substrait_proto
symbol_table
error_listener
date::date
fmt::fmt-header-only
absl::status
absl::statusor)
Expand All @@ -39,7 +45,7 @@ endif()

add_executable(planconverter Tool.cpp)

target_link_libraries(planconverter substrait_textplan_converter)
target_link_libraries(planconverter substrait_textplan_converter substrait_io)

set(NORMALIZER_SRCS ReferenceNormalizer.cpp ReferenceNormalizer.h)

Expand Down
2 changes: 1 addition & 1 deletion src/substrait/textplan/converter/ParseBinary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
#include "substrait/textplan/converter/ParseBinary.h"

#include "substrait/proto/plan.pb.h"
#include "substrait/textplan/PlanPrinterVisitor.h"
#include "substrait/textplan/converter/InitialPlanProtoVisitor.h"
#include "substrait/textplan/converter/PipelineVisitor.h"
#include "substrait/textplan/converter/PlanPrinterVisitor.h"

namespace io::substrait::textplan {

Expand Down
3 changes: 2 additions & 1 deletion src/substrait/textplan/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ add_library(parse_result_matchers ParseResultMatchers.cpp ParseResultMatchers.h)

add_dependencies(parse_result_matchers parse_result)

target_link_libraries(parse_result_matchers parse_result substrait_proto gmock)
target_link_libraries(parse_result_matchers parse_result symbol_table
substrait_proto gmock)

add_test_case(
symbol_table_test
Expand Down

0 comments on commit fd555a6

Please sign in to comment.