Skip to content
Snippets Groups Projects
CMakeLists.txt 1.42 KiB
Newer Older
Josef Schmeißer's avatar
Josef Schmeißer committed
cmake_minimum_required(VERSION 3.5)
project(tpchjoinoptimized C CXX)

set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
set(CMAKE_CXX_STANDARD 17)

# Compiler flags for the different targets
Timo Kersten's avatar
Timo Kersten committed
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -fPIC -Wall -Wextra -fno-omit-frame-pointer -march=native -Wno-unknown-pragmas")
Josef Schmeißer's avatar
Josef Schmeißer committed
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fPIC -Wall -Wextra -fno-omit-frame-pointer -march=native")
Timo Kersten's avatar
Timo Kersten committed
# Only use address sanitizer in debug builds
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -static-libasan")


# Make sure we use O3 optimization level instead of O2
string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -O3")
string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3")
Josef Schmeißer's avatar
Josef Schmeißer committed

find_package(Threads)

include(lib/gtest.cmake)

### Library for join query
add_library(sum src/sum.cpp)
target_include_directories(sum PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)

### Tests
add_executable(test_all test/test_sum.cpp)
target_link_libraries(test_all sum gtest gtest_main pthread)

### main executable
add_executable(main src/main.cpp)
target_link_libraries(main sum)