Nuria Framework - Core
Core module of the NuriaProject Framework
 All Classes Functions Typedefs Enumerations Enumerator Groups
core_global.hpp
1 /* Copyright (c) 2014, The Nuria Project
2  * This software is provided 'as-is', without any express or implied
3  * warranty. In no event will the authors be held liable for any damages
4  * arising from the use of this software.
5  * Permission is granted to anyone to use this software for any purpose,
6  * including commercial applications, and to alter it and redistribute it
7  * freely, subject to the following restrictions:
8  * 1. The origin of this software must not be misrepresented; you must not
9  * claim that you wrote the original software. If you use this software
10  * in a product, an acknowledgment in the product documentation would be
11  * appreciated but is not required.
12  * 2. Altered source versions must be plainly marked as such, and must not be
13  * misrepresented as being the original software.
14  * 3. This notice may not be removed or altered from any source
15  * distribution.
16  */
17 
18 #ifndef NURIA_CORE_GLOBAL_HPP
19 #define NURIA_CORE_GLOBAL_HPP
20 
21 #include <qglobal.h>
22 
23 // Version info
24 #define NURIA_VERSION 0x000100
25 #define NURIA_VERSION_STR "0.1.0"
26 
27 // Tria annotations.
28 // See Nuria::MetaObject for information.
29 #ifdef TRIA_RUN
30 // Clang parses attributes in reversed order
31 #define NURIA_ANNOTATE(name, ...) \
32  __attribute__((annotate("nuria_annotate:" QT_STRINGIFY(#name) "=" #__VA_ARGS__)))
33 #define NURIA_INTROSPECT __attribute__((annotate("nuria_introspect")))
34 #define NURIA_SKIP __attribute__((annotate("nuria_skip")))
35 #define NURIA_READ(field) __attribute__((annotate("nuria_read:" #field)))
36 #define NURIA_WRITE(field) __attribute__((annotate("nuria_write:" #field)))
37 #define NURIA_REQUIRE(...) __attribute__((annotate("nuria_require:" #__VA_ARGS__)))
38 #else
39 #define NURIA_ANNOTATE(name, ...)
40 #define NURIA_INTROSPECT
41 #define NURIA_SKIP
42 #define NURIA_READ(field)
43 #define NURIA_WRITE(field)
44 #define NURIA_REQUIRE(...)
45 #endif
46 
47 //
48 #if defined(CORE_LIBRARY)
49 # define NURIA_CORE_EXPORT Q_DECL_EXPORT
50 #else
51 # define NURIA_CORE_EXPORT Q_DECL_IMPORT
52 #endif
53 
54 #endif // NURIA_CORE_GLOBAL_HPP