Crow  1.1
A C++ microframework for the web
settings.h
1 #pragma once
2 // settings for crow
3 // TODO(ipkn) replace with runtime config. libucl?
4 
5 /* #ifdef - enables debug mode */
6 //#define CROW_ENABLE_DEBUG
7 
8 /* #ifdef - enables logging */
9 #define CROW_ENABLE_LOGGING
10 
11 /* #ifdef - enforces section 5.2 and 6.1 of RFC6455 (only accepting masked messages from clients) */
12 //#define CROW_ENFORCE_WS_SPEC
13 
14 /* #define - specifies log level */
15 /*
16  Debug = 0
17  Info = 1
18  Warning = 2
19  Error = 3
20  Critical = 4
21 
22  default to INFO
23 */
24 #ifndef CROW_LOG_LEVEL
25 #define CROW_LOG_LEVEL 1
26 #endif
27 
28 #ifndef CROW_STATIC_DIRECTORY
29 #define CROW_STATIC_DIRECTORY "static/"
30 #endif
31 #ifndef CROW_STATIC_ENDPOINT
32 #define CROW_STATIC_ENDPOINT "/static/<path>"
33 #endif
34 
35 // compiler flags
36 #if defined(_MSVC_LANG) && _MSVC_LANG >= 201402L
37 #define CROW_CAN_USE_CPP14
38 #endif
39 #if __cplusplus >= 201402L
40 #define CROW_CAN_USE_CPP14
41 #endif
42 
43 #if defined(_MSVC_LANG) && _MSVC_LANG >= 201703L
44 #define CROW_CAN_USE_CPP17
45 #endif
46 #if __cplusplus >= 201703L
47 #define CROW_CAN_USE_CPP17
48 #if defined(__GNUC__) && __GNUC__ < 8
49 #define CROW_FILESYSTEM_IS_EXPERIMENTAL
50 #endif
51 #endif
52 
53 #if defined(_MSC_VER)
54 #if _MSC_VER < 1900
55 #define CROW_MSVC_WORKAROUND
56 #define constexpr const
57 #define noexcept throw()
58 #endif
59 #endif
60 
61 #if defined(__GNUC__) && __GNUC__ == 8 && __GNUC_MINOR__ < 4
62 #if __cplusplus > 201103L
63 #define CROW_GCC83_WORKAROUND
64 #else
65 #error "GCC 8.1 - 8.3 has a bug that prevents Crow from compiling with C++11. Please update GCC to > 8.3 or use C++ > 11."
66 #endif
67 #endif