ff89a3d6ce9984823ce7eaa72c9b8180fcc89512
[cvc5.git] / src / util / configuration.h
1 /********************* */
2 /*! \file configuration.h
3 ** \verbatim
4 ** Original author: mdeters
5 ** Major contributors: none
6 ** Minor contributors (to current version): none
7 ** This file is part of the CVC4 prototype.
8 ** Copyright (c) 2009, 2010 The Analysis of Computer Systems Group (ACSys)
9 ** Courant Institute of Mathematical Sciences
10 ** New York University
11 ** See the file COPYING in the top-level source directory for licensing
12 ** information.\endverbatim
13 **
14 ** \brief Interface to a public class that provides compile-time information
15 ** about the CVC4 library.
16 **
17 ** Interface to a public class that provides compile-time information
18 ** about the CVC4 library.
19 **/
20
21 #include "cvc4_public.h"
22
23 #ifndef __CVC4__CONFIGURATION_H
24 #define __CVC4__CONFIGURATION_H
25
26 #include <string>
27
28 namespace CVC4 {
29
30 /**
31 * Represents the (static) configuration of CVC4.
32 */
33 class CVC4_PUBLIC Configuration {
34
35 /** Private default ctor: Disallow construction of this class */
36 Configuration();
37
38 public:
39
40 static bool isDebugBuild();
41
42 static bool isTracingBuild();
43
44 static bool isMuzzledBuild();
45
46 static bool isAssertionBuild();
47
48 static bool isCoverageBuild();
49
50 static bool isProfilingBuild();
51
52 static bool isCompetitionBuild();
53
54 static std::string getPackageName();
55
56 static std::string getVersionString();
57
58 static unsigned getVersionMajor();
59
60 static unsigned getVersionMinor();
61
62 static unsigned getVersionRelease();
63
64 static std::string about();
65
66 static bool isBuiltWithGmp();
67
68 static bool isBuiltWithCln();
69
70 static bool isBuiltWithTlsSupport();
71 };
72
73 }/* CVC4 namespace */
74
75 #endif /* __CVC4__CONFIGURATION_H */