summaryrefslogtreecommitdiff
path: root/src/base/configuration_private.h
blob: b348da3809c0599106fdb81cc72c728480178976 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/******************************************************************************
 * Top contributors (to current version):
 *   Christopher L. Conway, Andres Noetzli, Morgan Deters
 *
 * This file is part of the cvc5 project.
 *
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
 * in the top-level source directory and their institutional affiliations.
 * All rights reserved.  See the file COPYING in the top-level source
 * directory for licensing information.
 * ****************************************************************************
 *
 * Provide compile-time configuration information about the cvc5 library.
 */

#include "cvc5_private.h"

#ifndef CVC5__CONFIGURATION_PRIVATE_H
#define CVC5__CONFIGURATION_PRIVATE_H

#include <string>

#include "base/configuration.h"

namespace cvc5 {

#ifdef CVC5_DEBUG
#  define IS_DEBUG_BUILD true
#else /* CVC5_DEBUG */
#  define IS_DEBUG_BUILD false
#endif /* CVC5_DEBUG */

#ifdef CVC5_TRACING
#  define IS_TRACING_BUILD true
#else /* CVC5_TRACING */
#  define IS_TRACING_BUILD false
#endif /* CVC5_TRACING */

#ifdef CVC5_DUMPING
#  define IS_DUMPING_BUILD true
#else /* CVC5_DUMPING */
#  define IS_DUMPING_BUILD false
#endif /* CVC5_DUMPING */

#ifdef CVC5_MUZZLE
#  define IS_MUZZLED_BUILD true
#else /* CVC5_MUZZLE */
#  define IS_MUZZLED_BUILD false
#endif /* CVC5_MUZZLE */

#ifdef CVC5_ASSERTIONS
#  define IS_ASSERTIONS_BUILD true
#else /* CVC5_ASSERTIONS */
#  define IS_ASSERTIONS_BUILD false
#endif /* CVC5_ASSERTIONS */

#ifdef CVC5_COVERAGE
#  define IS_COVERAGE_BUILD true
#else /* CVC5_COVERAGE */
#  define IS_COVERAGE_BUILD false
#endif /* CVC5_COVERAGE */

#ifdef CVC5_PROFILING
#  define IS_PROFILING_BUILD true
#else /* CVC5_PROFILING */
#  define IS_PROFILING_BUILD false
#endif /* CVC5_PROFILING */

#ifdef CVC5_COMPETITION_MODE
#  define IS_COMPETITION_BUILD true
#else /* CVC5_COMPETITION_MODE */
#  define IS_COMPETITION_BUILD false
#endif /* CVC5_COMPETITION_MODE */

#ifdef CVC5_GMP_IMP
#  define IS_GMP_BUILD true
#else /* CVC5_GMP_IMP */
#  define IS_GMP_BUILD false
#endif /* CVC5_GMP_IMP */

#ifdef CVC5_CLN_IMP
#  define IS_CLN_BUILD true
#else /* CVC5_CLN_IMP */
#  define IS_CLN_BUILD false
#endif /* CVC5_CLN_IMP */

#if CVC5_USE_GLPK
#  define IS_GLPK_BUILD true
#else /* CVC5_USE_GLPK */
#  define IS_GLPK_BUILD false
#endif /* CVC5_USE_GLPK */

#if CVC5_USE_ABC
#  define IS_ABC_BUILD true
#else /* CVC5_USE_ABC */
#  define IS_ABC_BUILD false
#endif /* CVC5_USE_ABC */

#if CVC5_USE_CRYPTOMINISAT
#  define IS_CRYPTOMINISAT_BUILD true
#else /* CVC5_USE_CRYPTOMINISAT */
#  define IS_CRYPTOMINISAT_BUILD false
#endif /* CVC5_USE_CRYPTOMINISAT */

#if CVC5_USE_KISSAT
#define IS_KISSAT_BUILD true
#else /* CVC5_USE_KISSAT */
#define IS_KISSAT_BUILD false
#endif /* CVC5_USE_KISSAT */

#if CVC5_USE_POLY
#define IS_POLY_BUILD true
#else /* CVC5_USE_POLY */
#define IS_POLY_BUILD false
#endif /* CVC5_USE_POLY */

#if HAVE_LIBEDITLINE
#define IS_EDITLINE_BUILD true
#else /* HAVE_LIBEDITLINE */
#define IS_EDITLINE_BUILD false
#endif /* HAVE_LIBEDITLINE */

#if CVC5_GPL_DEPS
#  define IS_GPL_BUILD true
#else /* CVC5_GPL_DEPS */
#  define IS_GPL_BUILD false
#endif /* CVC5_GPL_DEPS */

#define IS_ASAN_BUILD false

// GCC test
#if defined(__SANITIZE_ADDRESS__)
#  undef IS_ASAN_BUILD
#  define IS_ASAN_BUILD true
#endif /* defined(__SANITIZE_ADDRESS__) */

// Clang test
#if defined(__has_feature)
#  if __has_feature(address_sanitizer)
#    undef IS_ASAN_BUILD
#    define IS_ASAN_BUILD true
#  endif /* __has_feature(address_sanitizer) */
#endif /* defined(__has_feature) */

#ifdef CVC5_USE_UBSAN
#define IS_UBSAN_BUILD true
#else /* CVC5_USE_UBSAN */
#define IS_UBSAN_BUILD false
#endif /* CVC5_USE_UBSAN */

#define IS_TSAN_BUILD false

// GCC test
#if defined(__SANITIZE_THREAD__)
#undef IS_TSAN_BUILD
#define IS_TSAN_BUILD true
#endif /* defined(__SANITIZE_THREAD__) */

// Clang test
#if defined(__has_feature)
#if __has_feature(thread_sanitizer)
#undef IS_TSAN_BUILD
#define IS_TSAN_BUILD true
#endif /* __has_feature(thread_sanitizer) */
#endif /* defined(__has_feature) */

}  // namespace cvc5

#endif /* CVC5__CONFIGURATION_PRIVATE_H */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback