cmake_minimum_required(VERSION 3.30) project( matador VERSION 0.9.8 LANGUAGES C CXX ) include(cmake/CPM.cmake) include(CTest) set(CMAKE_CXX_STANDARD 17) #set(CMAKE_CXX_STANDARD_REQUIRED ON) #set(CMAKE_CXX_EXTENSIONS OFF) #set(CMAKE_EXPORT_COMPILE_COMMANDS ON) #SET(GCC_CLANG_COMMON_FLAGS "-Wall -Wextra -pedantic -ftemplate-backtrace-limit=0") #SET(GCC_CLANG_COMMON_FLAGS_DEBUG "-O0 -g -DDEBUG") #SET(GCC_CLANG_COMMON_FLAGS_RELEASE "-O1 -DNDEBUG") SET(CMAKE_POSITION_INDEPENDENT_CODE ON) message(STATUS "C++ Compiler ID: ${CMAKE_CXX_COMPILER_ID}") find_package(PostgreSQL REQUIRED) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") message(STATUS "GCC detected - Adding compiler flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_CLANG_COMMON_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${GCC_CLANG_COMMON_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_RELEASE "${GCC_CLANG_COMMON_FLAGS_RELEASE}") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message(STATUS "MSVC detected - Adding compiler flags") # set(CMAKE_CXX_FLAGS "/W3 /EHsc /bigobj") # set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Od /Zi /D_DEBUG /DDEBUG") # set(CMAKE_CXX_FLAGS_RELEASE "/O1 /DNDEBUG") add_compile_options(/Zc:preprocessor) endif () #if(ENABLE_COVERAGE) # # set compiler flags # set(CMAKE_CXX_FLAGS "-O0 -coverage") # # # find required tools # find_program(LCOV lcov REQUIRED) # find_program(GENHTML genhtml REQUIRED) # # # add coverage target # add_custom_target(coverage # # gather data # COMMAND ${LCOV} --directory . --exclude catch2 --exclude /usr/include --exclude test --capture --base-directory ${CMAKE_SOURCE_DIR} --output-file coverage.info # # generate report # COMMAND ${GENHTML} --demangle-cpp -o coverage coverage.info # WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) #endif() add_subdirectory(source) add_subdirectory(demo) add_subdirectory(backends) add_subdirectory(test)