# 3.12 version is required for `cxx_std_20` cmake_minimum_required(VERSION 3.12 FATAL_ERROR) if(NOT DEFINED PROJECT_NAME) set(BUILD_AS_STANDALONE ON) else() set(BUILD_AS_STANDALONE OFF) endif() project(meta.hpp) add_library(${PROJECT_NAME} INTERFACE) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20) target_include_directories(${PROJECT_NAME} INTERFACE headers) find_package(Threads REQUIRED) target_link_libraries(${PROJECT_NAME} INTERFACE Threads::Threads) target_compile_options(${PROJECT_NAME} INTERFACE $<$: > INTERFACE $<$: > INTERFACE $<$,$>: -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-padded -Wno-shadow-field-in-constructor -Wno-unknown-warning-option -Wno-unused-macros -Wno-weak-vtables >) if(BUILD_AS_STANDALONE) set(DOCTEST_NO_INSTALL ON CACHE BOOL "Don't install doctest") add_subdirectory(vendors/doctest) set(FMT_INSTALL OFF CACHE BOOL "Don't install fmtlib") add_subdirectory(vendors/fmtlib) enable_testing() add_subdirectory(manuals) add_subdirectory(untests) endif()