blob: a57b6eb483beb3118b769493ef482aee840d13e5 [file] [log] [blame]
cmake_minimum_required(VERSION 3.19)
project(arrow-cookbook)
set(CMAKE_CXX_STANDARD 17)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
endif()
# Add googletest
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG e2239ee6043f73722e7aa812a459f54a28552929 # release-1.11.0
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
# Add Arrow
find_package(Arrow REQUIRED COMPONENTS dataset parquet)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_CLANG_TIDY "clang-tidy")
endif()
# Create test targets
enable_testing()
include(GoogleTest)
function(RECIPE TARGET)
add_executable(
${TARGET}
${TARGET}.cc
common.cc
main.cc
)
target_link_libraries(
${TARGET}
arrow_shared
arrow_dataset
parquet
gtest
)
if (MSVC)
target_compile_options(${TARGET} PRIVATE /W4 /WX)
else ()
target_compile_options(${TARGET} PRIVATE -Wall -Wextra -Wpedantic -Werror)
endif ()
gtest_discover_tests(${TARGET})
endfunction()
recipe(basic_arrow)
recipe(creating_arrow_objects)
recipe(datasets)