JKQTPlotter trunk/v5.0.0
an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Loading...
Searching...
No Matches
jkqtplotter_imexport.h
1#ifndef JKQTPLOTTER_IMPORT_H
2#define JKQTPLOTTER_IMPORT_H
3
4
5/*
6 Copyright (c) 2008-2024 Jan W. Krieger (<jan@jkrieger.de>)
7
8 last modification: $LastChangedDate: 2015-04-02 13:55:22 +0200 (Do, 02 Apr 2015) $ (revision $Rev: 3902 $)
9
10 This software is free software: you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License (LGPL) as published by
12 the Free Software Foundation, either version 2.1 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU Lesser General Public License (LGPL) for more details.
19
20 You should have received a copy of the GNU Lesser General Public License (LGPL)
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
22*/
23
24
25
26
27/*! \def JKQTPLOTTER_LIB_EXPORT
28 \ingroup jkqtpplottersupprt
29
30 This define allows to export functions and classes from the jkqtcommon-library when building a dynamic/shared library.
31 Usage is as follows:
32 \code
33 #include "jkqtplotter/jkqtplotter_imexport.h.h"
34
35 class JKQTPLOTTER_LIB_EXPORT exportedClassName {
36 ...
37 };
38
39 JKQTPLOTTER_LIB_EXPORT void exportedFunctionName();
40 \endcode
41
42 These macros append the appropriate \c Q_DECL_EXPORT and \c Q_DECL_IMPORT
43 to the function/class body and thus tell windows compilers to export these sysmbols from
44 the shared library, or import them from a shared library.
45
46 Note that these attributes are only necessary on windows systems!
47
48 These macros are controlled by two other macros:
49 - \c JKQTPLOTTER_LIB_IN_DLL declares that the application should link against a shared version of
50 JKQTPlotter, i.e. \c JKQTPlotterSharedLib_XYZ .
51 This needs to be defined while compiling the library and while compiling
52 any application linking against \c JKQTPlotterSharedLib_XYZ.
53 - \c JKQTPLOTTER_LIB_EXPORT_LIBRARY is only defined while compiling JKQTPlotter into \c JKQTPlotterSharedLib_XYZ
54 and ensures thet the symbols are exported. If it is not defined (e.g. while
55 compiling an application), the symbols are imported
56 .
57
58 */
59
60// necessary to add this define to the Doxygen autodoc!!!
61#ifdef DOXYGEN
62# define JKQTPLOTTER_LIB_IN_DLL
63#endif
64/*! \def JKQTPLOTTER_LIB_IN_DLL
65 \ingroup jkqtpplottersupprt
66 \brief declares that the application should link against a shared version of
67 JKQTPlotter, i.e. \c JKQTPlotterSharedLib_XYZ .
68 This needs to be defined while compiling the library and while compiling
69 any application linking against \c JKQTPlotterSharedLib_XYZ.
70*/
71
72// necessary to add this define to the Doxygen autodoc!!!
73#ifdef DOXYGEN
74# define JKQTPLOTTER_LIB_EXPORT_LIBRARY
75#endif
76/*! \def JKQTPLOTTER_LIB_EXPORT_LIBRARY
77 \ingroup jkqtpplottersupprt
78 \brief is only defined while compiling JKQTPlotter into \c JKQTPlotterSharedLib_XYZ
79 and ensures thet the symbols are exported. If it is not defined (e.g. while
80 compiling an application), the symbols are imported
81*/
82
83#include <QtCore/QtGlobal>
84
85# ifdef JKQTPLOTTER_LIB_IN_DLL
86# ifndef JKQTPLOTTER_LIB_EXPORT
87# ifdef JKQTPLOTTER_LIB_EXPORT_LIBRARY
88 /* We are building this library */
89# define JKQTPLOTTER_LIB_EXPORT Q_DECL_EXPORT
90# else
91 /* We are using this library */
92# define JKQTPLOTTER_LIB_EXPORT Q_DECL_IMPORT
93# endif
94# endif
95# else
96# ifndef JKQTPLOTTER_LIB_EXPORT
97# define JKQTPLOTTER_LIB_EXPORT
98# endif
99# endif
100
101
102
103
104
105
106#endif // JKQTPLOTTER_IMPORT_H
107