if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif() message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}") if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") add_compile_options(-stdlib=libc++) else() add_compile_options(-Wlogical-op) add_compile_options(-Wnoexcept) add_compile_options(-Wstrict-null-sentinel) add_compile_options(-Wuseless-cast) endif() add_compile_options(-Wall -Wextra -Wpedantic) add_compile_options(-Wcast-align -Wcast-qual) add_compile_options(-Wctor-dtor-privacy) add_compile_options(-Wconversion -Wno-sign-conversion) add_compile_options(-Wdisabled-optimization) add_compile_options(-Wdouble-promotion) add_compile_options(-Wformat=2) add_compile_options(-Winit-self) add_compile_options(-Wmissing-include-dirs) add_compile_options(-Wold-style-cast) add_compile_options(-Woverloaded-virtual) add_compile_options(-Wredundant-decls) add_compile_options(-Wshadow) add_compile_options(-Wstrict-aliasing=1) add_compile_options(-Wstrict-overflow=5) add_compile_options(-Wswitch-default) add_compile_options(-Wundef) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} source_files) foreach(src IN LISTS source_files) get_filename_component(name_we ${src} NAME_WE) add_executable(test-${name_we} ${src}) target_link_libraries(test-${name_we} ${PROJECT_NAME}::${PROJECT_NAME}) set_target_properties(test-${name_we} PROPERTIES CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF ) add_test(NAME ${name_we} COMMAND $) endforeach()