
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    add_compile_options(-Wall -Wextra -Wno-unused-local-typedefs -Wno-unused-parameter -pedantic -Wno-unused-but-set-variable)
    if (UNIX)
        message("GCC on Linux")
        add_compile_options(-pthread -fconcepts)
        add_link_options(-lpthread)
    endif ()

    #    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -lstdc++fs -Wall -Wno-unused-local-typedefs -pedantic")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
    if (MSVC_VERSION GREATER_EQUAL "1900")
        include(CheckCXXCompilerFlag)
        add_compile_definitions(NOGDI)
        add_compile_definitions(NOMINMAX)
        add_compile_definitions(_ITERATOR_DEBUG_LEVEL=0)
        add_compile_definitions(_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING)
        add_compile_options(/bigobj)
        include_directories(SYSTEM C:/Program\ Files \(x86\)/Windows\ Kits/10/Include/10.0.18362.0/shared)
    endif ()
endif ()