supersonic with cmake
cmake_minimum_required(VERSION 2.8)
project(supersonic)
MESSAGE(STATUS "This is BINARY dir " ${supersonic_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${supersonic_SOURCE_DIR})
#============================================================================
# HEADERS
#============================================================================
# protobuf
set(protos_H
${supersonic_BINARY_DIR}/supersonic/utils/exception/stack_trace.pb.h
${supersonic_BINARY_DIR}/supersonic/utils/proto/expressions.pb.h
${supersonic_BINARY_DIR}/supersonic/utils/proto/types.pb.h
${supersonic_BINARY_DIR}/supersonic/cursor/proto/cursors.pb.h
${supersonic_BINARY_DIR}/supersonic/expression/proto/operators.pb.h
${supersonic_BINARY_DIR}/supersonic/proto/specification.pb.h
${supersonic_BINARY_DIR}/supersonic/proto/supersonic.pb.h
)
set(sources_H
supersonic/utils/algorithm.h
supersonic/utils/arm_instruction_set_select.h
supersonic/utils/atomicops.h
supersonic/utils/auxiliary/atomicops-internals-macosx.h
supersonic/utils/auxiliary/atomicops-internals-arm-v6plus.h
supersonic/utils/auxiliary/atomicops-internals-arm-generic.h
supersonic/utils/atomicops-internals-x86.h
supersonic/utils/atomicops-internals-powerpc.h
supersonic/utils/auxiliary/atomicops-internals-windows.h
supersonic/utils/atomic_refcount.h
supersonic/utils/basictypes.h
supersonic/utils/bits.h
supersonic/utils/charmap.h
supersonic/utils/container_literal.h
supersonic/utils/container_literal_generated.h
supersonic/utils/cycleclock-inl.h
supersonic/utils/demangle.h
supersonic/utils/dynamic_annotations.h
supersonic/utils/fixedarray.h
supersonic/utils/integral_types.h
supersonic/utils/iterator_adaptors.h
supersonic/utils/endian.h
supersonic/utils/casts.h
supersonic/utils/int128.h
supersonic/utils/linked_ptr.h
supersonic/utils/logging-inl.h
supersonic/utils/macros.h
supersonic/utils/manual_constructor.h
supersonic/utils/map-util.h
supersonic/utils/mathlimits.h
supersonic/utils/mutex.h
supersonic/utils/once.h
supersonic/utils/paranoid.h
supersonic/utils/pointer_vector.h
supersonic/utils/port.h
supersonic/utils/scoped_ptr.h
supersonic/utils/scoped_ptr_internals.h
supersonic/utils/singleton.h
supersonic/utils/shared_ptr.h
supersonic/utils/sparsetable.h
supersonic/utils/spinlock_linux-inl.h
supersonic/utils/spinlock_posix-inl.h
supersonic/utils/spinlock_win32-inl.h
supersonic/utils/spinlock_wait.h
supersonic/utils/strtoint.h
supersonic/utils/stl_util.h
supersonic/utils/stringprintf.h
supersonic/utils/template_util.h
supersonic/utils/thread_annotations.h
supersonic/utils/type_traits.h
supersonic/utils/valgrind.h
supersonic/utils/atomic/atomic.h
supersonic/utils/atomic/atomic_internal.h
supersonic/utils/atomic/atomic_std.h
supersonic/utils/atomic/forward.h
supersonic/utils/atomic/locking.h
supersonic/utils/atomic/tsan.h
supersonic/utils/atomic/x86-gcc.h
supersonic/utils/hash/builtin_type_hash.h
supersonic/utils/hash/city.h
supersonic/utils/hash/hash.h
supersonic/utils/hash/hash128to64.h
supersonic/utils/hash/jenkins.h
supersonic/utils/hash/jenkins_lookup2.h
supersonic/utils/hash/legacy_hash.h
supersonic/utils/hash/string_hash.h
supersonic/utils/exception/coowned_pointer.h
supersonic/utils/exception/failureor.h
supersonic/utils/exception/stack_trace.h
supersonic/utils/strings/fastmem.h
supersonic/utils/strings/join.h
supersonic/utils/strings/escaping.h
supersonic/utils/strings/memutil.h
supersonic/utils/strings/numbers.h
supersonic/utils/strings/split_internal.h
supersonic/utils/strings/strcat.h
supersonic/utils/strings/stringpiece.h
supersonic/utils/strings/substitute.h
supersonic/utils/strings/strip.h
supersonic/utils/utf/utfdef.h
supersonic/utils/timer.h
supersonic/utils/random.h
supersonic/utils/walltime.h
supersonic/utils/file.h
supersonic/utils/file_util.h
supersonic/base/exception/exception_macros.h
supersonic/base/exception/exception.h
supersonic/base/exception/result.h
supersonic/base/infrastructure/aggregation_operators.h
supersonic/base/infrastructure/bit_pointers.h
supersonic/base/infrastructure/block.h
supersonic/base/infrastructure/copy_column.h
supersonic/base/infrastructure/double_buffered_block.h
supersonic/base/infrastructure/init.h
supersonic/base/infrastructure/operators.h
supersonic/base/infrastructure/projector.h
supersonic/base/infrastructure/tuple_schema.h
supersonic/base/infrastructure/types_infrastructure.h
supersonic/base/infrastructure/types.h
supersonic/base/infrastructure/variant_pointer.h
supersonic/base/infrastructure/variant.h
supersonic/base/infrastructure/view_copier.h
supersonic/base/memory/arena.h
supersonic/base/memory/memory.h
supersonic/cursor/base/cursor.h
supersonic/cursor/base/lookup_index.h
supersonic/cursor/base/operation.h
supersonic/cursor/core/aggregate.h
supersonic/cursor/core/aggregator.h
supersonic/cursor/core/benchmarks.h
supersonic/cursor/core/coalesce.h
supersonic/cursor/core/column_aggregator.h
supersonic/cursor/core/compute.h
supersonic/cursor/core/filter.h
supersonic/cursor/core/foreign_filter.h
supersonic/cursor/core/generate.h
supersonic/cursor/core/hash_join.h
supersonic/cursor/core/hybrid_group_utils.h
supersonic/cursor/core/limit.h
supersonic/cursor/core/merge_union_all.h
supersonic/cursor/core/ownership_taker.h
supersonic/cursor/core/project.h
supersonic/cursor/core/rowid_merge_join.h
supersonic/cursor/core/scan_view.h
supersonic/cursor/core/sort.h
supersonic/cursor/core/specification_builder.h
supersonic/cursor/core/splitter.h
supersonic/cursor/core/spy.h
supersonic/cursor/infrastructure/basic_cursor.h
supersonic/cursor/infrastructure/basic_operation.h
supersonic/cursor/infrastructure/file_io.h
supersonic/cursor/infrastructure/file_io-internal.h
supersonic/cursor/infrastructure/history_transformer.h
supersonic/cursor/infrastructure/iterators.h
supersonic/cursor/infrastructure/ordering.h
supersonic/cursor/infrastructure/row_copier.h
supersonic/cursor/infrastructure/row.h
supersonic/cursor/infrastructure/row_hash_set.h
supersonic/cursor/infrastructure/table.h
supersonic/cursor/infrastructure/value_ref.h
supersonic/cursor/infrastructure/view_cursor.h
supersonic/cursor/infrastructure/view_printer.h
supersonic/expression/base/expression.h
supersonic/expression/core/arithmetic_bound_expressions.h
supersonic/expression/core/arithmetic_expressions.h
supersonic/expression/core/comparison_bound_expressions.h
supersonic/expression/core/comparison_expressions.h
supersonic/expression/core/date_bound_expressions.h
supersonic/expression/core/date_evaluators.h
supersonic/expression/core/date_expressions.h
supersonic/expression/core/elementary_bound_expressions.h
supersonic/expression/core/elementary_expressions.h
supersonic/expression/core/math_bound_expressions.h
supersonic/expression/core/math_evaluators.h
supersonic/expression/core/math_expressions.h
supersonic/expression/core/projecting_bound_expressions.h
supersonic/expression/core/projecting_expressions.h
supersonic/expression/core/stateful_bound_expressions.h
supersonic/expression/core/stateful_expressions.h
supersonic/expression/core/string_bound_expressions.h
supersonic/expression/core/string_bound_expressions_internal.h
supersonic/expression/core/string_evaluators.h
supersonic/expression/core/string_expressions.h
supersonic/expression/ext/hashing/hashing_bound_expressions.h
supersonic/expression/ext/hashing/hashing_evaluators.h
supersonic/expression/ext/hashing/hashing_expressions.h
supersonic/expression/infrastructure/basic_bound_expression.h
supersonic/expression/infrastructure/basic_expressions.h
supersonic/expression/infrastructure/bound_expression_creators.h
supersonic/expression/infrastructure/elementary_bound_const_expressions.h
supersonic/expression/infrastructure/elementary_const_expressions.h
supersonic/expression/infrastructure/expression_utils.h
supersonic/expression/infrastructure/terminal_bound_expressions.h
supersonic/expression/infrastructure/terminal_expressions.h
supersonic/expression/templated/abstract_bound_expressions.h
supersonic/expression/templated/abstract_expressions.h
supersonic/expression/templated/bound_expression_factory.h
supersonic/expression/templated/cast_bound_expression.h
supersonic/expression/templated/cast_expression.h
supersonic/expression/vector/binary_column_computers.h
supersonic/expression/vector/column_validity_checkers.h
supersonic/expression/vector/expression_evaluators.h
supersonic/expression/vector/expression_traits.h
supersonic/expression/vector/simd_operators.h
supersonic/expression/vector/ternary_column_computers.h
supersonic/expression/vector/unary_column_computers.h
supersonic/expression/vector/vector_logic.h
supersonic/serialization/build_expression_from_proto.h
supersonic/expression/vector/vector_primitives.h
supersonic/cursor/infrastructure/writer.h
supersonic/utils/utf/utf.h
supersonic/supersonic.h
supersonic/supersonic-config.h
)
set(nobase_supersonic_include_HEADERS
${protos_H}
${sources_H}
)
#============================================================================
# SOURCES
#============================================================================
set(supersonic_S)
# cpp sources
# protoc output
set(protos_S =
${supersonic_BINARY_DIR}/supersonic/utils/exception/stack_trace.pb.cc
${supersonic_BINARY_DIR}/supersonic/utils/proto/expressions.pb.cc
${supersonic_BINARY_DIR}/supersonic/utils/proto/types.pb.cc
${supersonic_BINARY_DIR}/supersonic/cursor/proto/cursors.pb.cc
${supersonic_BINARY_DIR}/supersonic/expression/proto/operators.pb.cc
${supersonic_BINARY_DIR}/supersonic/proto/specification.pb.cc
${supersonic_BINARY_DIR}/supersonic/proto/supersonic.pb.cc
)
set(supersonic_S ${supersonic_S} ${protos_H})
set(supersonic_S
${supersonic_S}
supersonic/utils/atomicops-internals-x86.cc
supersonic/utils/bits.cc
supersonic/utils/demangle.cc
supersonic/utils/dynamic_annotations.c
supersonic/utils/int128.cc
supersonic/utils/mathlimits.cc
supersonic/utils/once.cc
supersonic/utils/spinlock_wait.cc
supersonic/utils/strtoint.cc
supersonic/utils/stringprintf.cc
supersonic/utils/atomic/locking.cc
supersonic/utils/atomic/x86-gcc.cc
supersonic/utils/hash/city.cc
supersonic/utils/hash/hash.cc
supersonic/utils/hash/jenkins.cc
supersonic/utils/exception/stack_trace.cc
supersonic/utils/strings/join.cc
supersonic/utils/strings/stringpiece.cc
supersonic/utils/strings/ascii_ctype.cc
supersonic/utils/strings/charset.cc
supersonic/utils/strings/escaping.cc
supersonic/utils/strings/memutil.cc
supersonic/utils/strings/numbers.cc
supersonic/utils/strings/serialize.cc
supersonic/utils/strings/split.cc
supersonic/utils/strings/strcat.cc
supersonic/utils/strings/substitute.cc
supersonic/utils/strings/strip.cc
supersonic/utils/strings/util.cc
supersonic/utils/utf/rune.c
)
set(supersonic_S
${supersonic_S}
supersonic/utils/random.cc
supersonic/utils/walltime.cc
supersonic/utils/file.cc
supersonic/utils/file_util.cc
)
# base
set(supersonic_S
${supersonic_S}
supersonic/base/infrastructure/bit_pointers.cc
supersonic/base/infrastructure/block.cc
supersonic/base/infrastructure/copy_column.cc
supersonic/base/infrastructure/double_buffered_block.cc
supersonic/base/infrastructure/projector.cc
supersonic/base/infrastructure/tuple_schema.cc
supersonic/base/infrastructure/types_infrastructure.cc
supersonic/base/infrastructure/types.cc
supersonic/base/infrastructure/view_copier.cc
supersonic/base/memory/arena.cc
supersonic/base/memory/memory.cc
)
# cursor
set(supersonic_S
${supersonic_S}
supersonic/cursor/base/cursor.cc
supersonic/cursor/base/lookup_index.cc
supersonic/cursor/core/aggregate_clusters.cc
supersonic/cursor/core/aggregate_groups.cc
supersonic/cursor/core/aggregate_scalar.cc
supersonic/cursor/core/aggregator.cc
supersonic/cursor/core/benchmarks.cc
supersonic/cursor/core/coalesce.cc
supersonic/cursor/core/column_aggregator.cc
supersonic/cursor/core/compute.cc
supersonic/cursor/core/filter.cc
supersonic/cursor/core/foreign_filter.cc
supersonic/cursor/core/generate.cc
supersonic/cursor/core/hash_join.cc
supersonic/cursor/core/hybrid_group_utils.cc
supersonic/cursor/core/limit.cc
supersonic/cursor/core/merge_union_all.cc
supersonic/cursor/core/project.cc
supersonic/cursor/core/rowid_merge_join.cc
supersonic/cursor/core/scan_view.cc
supersonic/cursor/core/sort.cc
supersonic/cursor/core/specification_builder.cc
supersonic/cursor/core/splitter.cc
supersonic/cursor/core/spy.cc
supersonic/cursor/infrastructure/basic_cursor.cc
supersonic/cursor/infrastructure/basic_operation.cc
supersonic/cursor/infrastructure/file_io.cc
supersonic/cursor/infrastructure/iterators.cc
supersonic/cursor/infrastructure/ordering.cc
supersonic/cursor/infrastructure/row_hash_set.cc
supersonic/cursor/infrastructure/table.cc
supersonic/cursor/infrastructure/view_cursor.cc
supersonic/cursor/infrastructure/view_printer.cc
supersonic/cursor/infrastructure/writer.cc
)
# expression
set(supersonic_S
${supersonic_S}
supersonic/expression/base/expression.cc
supersonic/expression/core/arithmetic_bound_expressions.cc
supersonic/expression/core/arithmetic_expressions.cc
supersonic/expression/core/comparison_bound_expressions.cc
supersonic/expression/core/comparison_expressions.cc
supersonic/expression/core/date_bound_expressions.cc
supersonic/expression/core/date_evaluators.cc
supersonic/expression/core/date_expressions.cc
supersonic/expression/core/elementary_bound_expressions.cc
supersonic/expression/core/elementary_expressions.cc
supersonic/expression/core/math_bound_expressions.cc
supersonic/expression/core/math_expressions.cc
supersonic/expression/core/projecting_bound_expressions.cc
supersonic/expression/core/projecting_expressions.cc
supersonic/expression/core/stateful_bound_expressions.cc
supersonic/expression/core/stateful_expressions.cc
supersonic/expression/core/string_bound_expressions.cc
supersonic/expression/core/string_expressions.cc
supersonic/expression/ext/hashing/hashing_bound_expressions.cc
supersonic/expression/ext/hashing/hashing_expressions.cc
supersonic/expression/infrastructure/basic_bound_expression.cc
supersonic/expression/infrastructure/basic_expressions.cc
supersonic/expression/infrastructure/expression_utils.cc
supersonic/expression/infrastructure/terminal_bound_expressions.cc
supersonic/expression/infrastructure/terminal_expressions.cc
supersonic/expression/templated/bound_expression_factory.cc
supersonic/expression/templated/cast_bound_expression.cc
supersonic/expression/templated/cast_expression.cc
supersonic/expression/vector/vector_logic.cc
)
# serialization
set(supersonic_S
${supersonic_S}
supersonic/serialization/build_expression_from_proto.cc
)
# Source list
set(nodist_libsupersonic_la_SOURCES
${supersonic_S}
${nobase_supersonic_include_HEADERS}
)
find_program(PROTOC_EXECUTABLE protoc)
if( NOT PROTOC_EXECUTABLE )
message(FATAL_ERROR "Unable to find protoc, required for builds")
endif()
function(exec_protoc file)
message(STATUS "file" ${file})
execute_process(
COMMAND ${PROTOC_EXECUTABLE}
--proto_path=${supersonic_SOURCE_DIR}
--cpp_out=${supersonic_BINARY_DIR}
${supersonic_SOURCE_DIR}/${file}
)
endfunction()
exec_protoc(supersonic/utils/exception/stack_trace.proto)
exec_protoc(supersonic/expression/proto/operators.proto)
exec_protoc(supersonic/cursor/proto/cursors.proto)
exec_protoc(supersonic/proto/supersonic.proto)
exec_protoc(supersonic/proto/specification.proto)
exec_protoc(supersonic/utils/proto/types.proto)
exec_protoc(supersonic/utils/proto/expressions.proto)
include_directories(${supersonic_SOURCE_DIR} ${supersonic_BINARY_DIR})
add_library(supersonic SHARED ${nodist_libsupersonic_la_SOURCES})