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_configmacros.h
1#ifndef JKQTPLOTTER_CONFIGMACROS_H
2#define JKQTPLOTTER_CONFIGMACROS_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#include <QtGlobal>
25
26// necessary to add this define to the Doxygen autodoc!!!
27#ifdef DOXYGEN
28# define JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
29#endif
30/*! \def JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
31 \ingroup jkqtpplottersupprt
32 \brief This is defined if JKQtPlotter shall be compiled without print-support, or print-support is not available.
33
34 This can be used by surrounding code that requires print-support with
35 \code
36 #ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
37 // ...
38 // Code that require Print Support
39 // ...
40 #endif
41 \endcode
42*/
43
44#if defined(QT_NO_PRINTPREVIEWDIALOG) || defined(QT_NO_PRINTER) || defined(JKQTPLOTTER_HAS_NO_PRINTSUPPORT)
45# define JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
46#else
47# ifdef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
48# undef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
49# endif
50#endif
51
52
53// necessary to add this define to the Doxygen autodoc!!!
54#ifdef DOXYGEN
55# define JKQTPLOTTER_WORKAROUND_QGADGET_BUG
56#endif
57/*! \def JKQTPLOTTER_WORKAROUND_QGADGET_BUG
58 \ingroup jkqtpplottersupprt
59 \brief This \c \#define is used to work around a bug in Qt when compiled with CLANG (see https://bugreports.qt.io/browse/QTBUG-104874):
60 Multiple inheritance does not work with Q_GADGET in this setup.
61
62 This can be used by surrounding code that causes compile-errors due to this bug with
63 \code
64 #ifndef JKQTPLOTTER_COMPILE_WITHOUT_PRINTSUPPORT
65 // ...
66 // Code that require Print Support
67 // ...
68 #endif
69 \endcode
70*/
71#if defined(Q_CC_CLANG) && (QT_VERSION < QT_VERSION_CHECK(7, 0, 0))
72# define JKQTPLOTTER_WORKAROUND_QGADGET_BUG
73# warning("deactivating some Q_GADGET-declarations due to a bug in Qt on CLANG: https://bugreports.qt.io/browse/QTBUG-104874")
74#else
75# ifdef JKQTPLOTTER_WORKAROUND_QGADGET_BUG
76# undef JKQTPLOTTER_WORKAROUND_QGADGET_BUG
77# endif
78#endif
79
80
81#endif // JKQTPLOTTER_CONFIGMACROS_H
82