48 #define STR_HELPER(x) #x 49 #define STR(x) STR_HELPER(x) 54 static_assert(__cplusplus >= 201703,
"SeqAn3 requires C++17, make sure that you have set -std=c++17.");
56 # error "This is not a C++ compiler." 61 # if __cpp_concepts == 201507 // GCC and Concepts TS 62 # define concept concept bool 64 static_assert(__cpp_concepts >= 201507,
"Your compiler supports Concepts, but the support is not recent enough.");
67 # error "SeqAn3 requires the Concepts TS, make sure that you have set -fconcepts (not all compilers support this)." 71 #if !__has_include(<seqan3/version.hpp>) 72 # error SeqAn3 include directory not set correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS? 76 #if __has_include(<range/v3/version.hpp>) 77 # define RANGE_V3_MINVERSION 400 78 # define RANGE_V3_MAXVERSION 499 80 # define MSG "Your version: " STR(RANGE_V3_VERSION) \ 81 "; minimum version: " STR(RANGE_V3_MINVERSION) \ 82 "; expected maximum version: " STR(RANGE_V3_MAXVERSION) 83 # include <range/v3/version.hpp> 84 # if RANGE_V3_VERSION < RANGE_V3_MINVERSION 85 # error Your range-v3 library is too old. 87 # elif RANGE_V3_VERSION > RANGE_V3_MAXVERSION 88 # pragma GCC warning "Your range-v3 library is possibly too new. Some features might not work correctly." 93 # error The range-v3 library was not included correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS? 97 #if !__has_include(<filesystem>) 98 # if !__has_include(<experimental/filesystem>) 99 # error SeqAn3 requires C++17 filesystem support, but it was not found. 104 #if __has_include(<sdsl/version.hpp>) 105 # include <sdsl/version.hpp> 106 static_assert(sdsl::sdsl_version_major == 3,
"Only version 3 of the SDSL is supported by SeqAn3.");
108 # error The sdsl library was not included correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS? 116 #ifndef SEQAN3_WITH_CEREAL 117 # if __has_include(<cereal/cereal.hpp>) 118 # define SEQAN3_WITH_CEREAL 1 120 # define SEQAN3_WITH_CEREAL 0 122 #elif SEQAN3_WITH_CEREAL != 0 123 # if ! __has_include(<cereal/cereal.hpp>) 124 # error Cereal was marked as required, but not found! 128 #if !SEQAN3_WITH_CEREAL 135 # define CEREAL_SERIALIZE_FUNCTION_NAME serialize 136 # define CEREAL_LOAD_FUNCTION_NAME load 137 # define CEREAL_SAVE_FUNCTION_NAME save 138 # define CEREAL_LOAD_MINIMAL_FUNCTION_NAME load_minimal 139 # define CEREAL_SAVE_MINIMAL_FUNCTION_NAME save_minimal 150 #ifndef SEQAN3_WITH_LEMON 151 # if __has_include(<lemon/config.h>) 152 # define SEQAN3_WITH_LEMON 1 154 # define SEQAN3_WITH_LEMON 0 156 #elif SEQAN3_WITH_LEMON != 0 157 # if !__has_include(<lemon/config.h>) 158 # error Lemon was marked as required, but not found! 161 #if SEQAN3_WITH_LEMON == 1 162 # define LEMON_HAVE_LONG_LONG 1 163 # define LEMON_CXX11 1 164 # if defined(__unix__) || defined(__APPLE__) 165 # define LEMON_USE_PTHREAD 1 166 # define LEMON_USE_WIN32_THREADS 0 167 # define LEMON_WIN32 0 169 # define LEMON_USE_PTHREAD 0 170 # define LEMON_USE_WIN32_THREADS 1 171 # define LEMON_WIN32 1 179 #ifndef SEQAN3_DOXYGEN_ONLY 180 # define SEQAN3_DOXYGEN_ONLY(x)