QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
QtFit_global.h
Go to the documentation of this file.
1 /*
2  Copyright 2021 Paul Colby
3 
4  This file is part of QtFit.
5 
6  QtFit is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  QtFit is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with QtFit. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 /*!
21  * \file
22  * Global QtFit library macros.
23  */
24 
25 #ifndef QTFIT_GLOBAL_H
26 #define QTFIT_GLOBAL_H
27 
28 #include <QtGlobal>
29 
30 /// \cond internal
31 
32 /*!
33  * QtFit library export/import macro.
34  */
35 #if defined(QTFIT_SHARED) || !defined(QTFIT_STATIC)
36 # ifdef QTFIT_STATIC
37 # error "Both QTFIT_SHARED and QTFIT_STATIC defined."
38 # endif
39 # if defined(QTFIT_LIBRARY)
40 # define QTFIT_EXPORT Q_DECL_EXPORT
41 # else
42 # define QTFIT_EXPORT Q_DECL_IMPORT
43 # endif
44 #else
45 # define QTFIT_EXPORT
46 #endif
47 
48 /*!
49  * Top-most namespace for all QtFit library symbols.
50  *
51  * \sa QTFIT_BEGIN_NAMESPACE
52  * \sa QTFIT_END_NAMESPACE
53  */
54 #ifndef QTFIT_NAMESPACE
55 #define QTFIT_NAMESPACE fit ///< \todo Consider moving this to a CMake option.
56 #endif
57 
58 /*!
59  * \def QTFIT_BEGIN_NAMESPACE
60  *
61  * Macro for starting the QtFit library's top-most namespace (if one is defined).
62  *
63  * \sa QTFIT_END_NAMESPACE
64  * \sa QTFIT_NAMESPACE
65  */
66 
67 /*!
68  * \def QTFIT_END_NAMESPACE
69  *
70  * Macro for ending the QtFit library's top-most namespace (if one is defined).
71  *
72  * \sa QTFIT_BEGIN_NAMESPACE
73  * \sa QTFIT_NAMESPACE
74  */
75 
76 #ifdef QTFIT_NAMESPACE
77  #define QTFIT_BEGIN_NAMESPACE namespace QTFIT_NAMESPACE {
78  #define QTFIT_END_NAMESPACE }
79 #else
80  #define QTFIT_BEGIN_NAMESPACE
81  #define QTFIT_END_NAMESPACE
82 #endif
83 
84 /// \endcond
85 
86 #endif // QTFIT_GLOBAL_H