From d7ae73f7302368a38a1e8848a71b229d38d96631 Mon Sep 17 00:00:00 2001 From: David Sisson Date: Wed, 18 Oct 2023 21:12:50 -0700 Subject: [PATCH] feat: update CMAKE files to work in a submodule --- CMakeLists.txt | 16 ++++++++++++---- src/substrait/proto/CMakeLists.txt | 10 +++++----- .../textplan/parser/grammar/CMakeLists.txt | 4 ++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d4f78ef9..e69ee47e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,11 +11,19 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -add_compile_options($<$:-fsanitize=undefined>) -add_link_options($<$:-fsanitize=undefined>) +option( + SUBSTRAIT_CPP_SANITIZE_DEBUG_BUILD + "Turns on address and undefined memory sanitization runtime checking." + ON +) + +if (${SUBSTRAIT_CPP_SANITIZE_DEBUG_BUILD}) + add_compile_options($<$:-fsanitize=undefined>) + add_link_options($<$:-fsanitize=undefined>) -add_compile_options($<$:-fsanitize=address>) -add_link_options($<$:-fsanitize=address>) + add_compile_options($<$:-fsanitize=address>) + add_link_options($<$:-fsanitize=address>) +endif() option( SUBSTRAIT_CPP_BUILD_TESTING diff --git a/src/substrait/proto/CMakeLists.txt b/src/substrait/proto/CMakeLists.txt index 0c5d5a62..69be6d9a 100644 --- a/src/substrait/proto/CMakeLists.txt +++ b/src/substrait/proto/CMakeLists.txt @@ -1,5 +1,4 @@ # SPDX-License-Identifier: Apache-2.0 - find_package(Protobuf REQUIRED) include_directories(${Protobuf_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -8,8 +7,9 @@ find_package(Perl REQUIRED) set(UPDATE_PROTO_PACKAGE_TOOL "${CMAKE_CURRENT_SOURCE_DIR}/update_proto_package.pl") -set(PROTO_INCLUDE_DIR - "${CMAKE_SOURCE_DIR}/third_party/substrait/proto/substrait") +set(RAW_PROTO_INCLUDE_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/substrait/proto/substrait") +cmake_path(SET PROTO_INCLUDE_DIR NORMALIZE "${RAW_PROTO_INCLUDE_DIR}") cmake_path(GET PROTO_INCLUDE_DIR PARENT_PATH PROTO_INCLUDE_TOPLEVEL_DIR) set(PROTOBUF_IMPORT_DIRS ${PROTO_INCLUDE_DIR}/extensions) @@ -25,7 +25,7 @@ set(GENERATED_PROTO_MIDLEVEL_DIR set(GENERATED_PROTOBUF_LIST) foreach(PROTO_FILE IN LISTS PROTOBUF_FILELIST) file(RELATIVE_PATH RELATIVE_PROTO_PATH - "${CMAKE_SOURCE_DIR}/third_party/substrait/proto/substrait" + "${PROTO_INCLUDE_DIR}" "${PROTO_FILE}") set(GENERATED_PROTO_FILE ${GENERATED_PROTO_MIDLEVEL_DIR}/${RELATIVE_PROTO_PATH}) @@ -55,7 +55,7 @@ cmake_path(GET PROTO_OUTPUT_MIDLEVEL_DIR PARENT_PATH PROTO_OUTPUT_TOPLEVEL_DIR) foreach(PROTO_FILE IN LISTS PROTOBUF_FILELIST) file(RELATIVE_PATH RELATIVE_PROTO_PATH - "${CMAKE_SOURCE_DIR}/third_party/substrait/proto/substrait" + "${PROTO_INCLUDE_DIR}" "${PROTO_FILE}") set(GENERATED_PROTO_FILE ${GENERATED_PROTO_MIDLEVEL_DIR}/${RELATIVE_PROTO_PATH}) diff --git a/src/substrait/textplan/parser/grammar/CMakeLists.txt b/src/substrait/textplan/parser/grammar/CMakeLists.txt index e04ea81a..e572d917 100644 --- a/src/substrait/textplan/parser/grammar/CMakeLists.txt +++ b/src/substrait/textplan/parser/grammar/CMakeLists.txt @@ -1,12 +1,12 @@ # SPDX-License-Identifier: Apache-2.0 -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/third_party/antlr4/cmake") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../third_party/antlr4/cmake") set(CMAKE_CXX_STANDARD 17) add_definitions(-DANTLR4CPP_STATIC) -set(GRAMMAR_DIR ${CMAKE_BINARY_DIR}/src/substrait/textplan/parser/grammar) +set(GRAMMAR_DIR ${CMAKE_CURRENT_BINARY_DIR}) # using /MD flag for antlr4_runtime (for Visual C++ compilers only) set(ANTLR4_WITH_STATIC_CRT OFF)