annotate oct-conf-post-public.in.h @ 31487:2ec625c04947 stable

Mark exceptions with default visibility also where they are used (bug #61704). For exceptions that are thrown across library borders to work correctly, the definition of those exceptions needs to be attributed with default visibility both in the library where they are defined and in the code where they are caught. * oct-conf-post-public.in.h: Add new preprocessor macros for visibility attributes of exception classes. * liboctave/util/quit.h (execution_exception), liboctave/util/lo-array-errwarn.h (index_exception): Use new preprocessor macro to flag exception classes that are thrown across library borders.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 19 Nov 2022 16:55:11 +0100
parents e7fc6251b698
children d5415300e53b e88a07dec498
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 ////////////////////////////////////////////////////////////////////////
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 // Copyright (C) 1993-2022 The Octave Project Developers
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 // distribution or <https://octave.org/copyright/>.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 // This file is part of Octave.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 // under the terms of the GNU General Public License as published by
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 // (at your option) any later version.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 // GNU General Public License for more details.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 // You should have received a copy of the GNU General Public License
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 // along with Octave; see the file COPYING. If not, see
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 // <https://www.gnu.org/licenses/>.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 ////////////////////////////////////////////////////////////////////////
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 #if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 # include <cinttypes>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 # include <inttypes.h>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 # define OCTAVE_NAMESPACE_BEGIN namespace octave {
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 # define OCTAVE_NAMESPACE_END }
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 /* The C++ standard is evolving to allow attribute hints in a
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 compiler-independent manner. In C++ 2011 support for noreturn was
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 added. In C++ 2014 support for deprecated was added. The Octave
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 code base has been future-proofed by using macros of the form
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 mechanisms. As compilers evolve, the underlying implementation can
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 be changed with the macro definitions below. FIXME: Update macros
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 to use C++ standard attribute syntax when Octave moves to C++ 2011
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 standard. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 #if defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 /* The following attributes are used with gcc and clang compilers. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52 # define HAVE_OCTAVE_DEPRECATED_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54 # define OCTAVE_NORETURN __attribute__ ((__noreturn__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55 # define HAVE_OCTAVE_NORETURN_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57 # define OCTAVE_UNUSED __attribute__ ((__unused__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58 # define HAVE_OCTAVE_UNUSED_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
59 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60 # define OCTAVE_DEPRECATED(ver, msg)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 # define OCTAVE_NORETURN
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62 # define OCTAVE_UNUSED
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
63
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
64 /* # undef HAVE_OCTAVE_DEPRECATED_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65 /* # undef HAVE_OCTAVE_NORETURN_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
66 /* # undef HAVE_OCTAVE_UNUSED_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
67 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
69 #if defined (__MINGW32__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
70 /* MinGW requires special handling due to different format specifiers
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
71 * on different platforms. The macro __MINGW_PRINTF_FORMAT maps to
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
72 * either gnu_printf or ms_printf depending on where we are compiling
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
73 * to avoid warnings on format specifiers that are legal.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
74 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349 */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
75 # if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
76 # include <cstdio>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
77 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78 # include <stdio.h>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
79 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
80
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
81 # define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
82 __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
83
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
84 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
85 #elif defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
86 /* The following attributes are used with gcc and clang compilers. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
87 # define OCTAVE_FORMAT_PRINTF(index, first) \
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
88 __attribute__ ((__format__(printf, index, first)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
89
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
90 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
91 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
92 # define OCTAVE_FORMAT_PRINTF(index, first)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
93
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
94 /* # undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
95 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
96
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97 #if ! defined (OCTAVE_FALLTHROUGH)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
98 # if defined (__cplusplus) && __cplusplus > 201402L
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
99 # define OCTAVE_FALLTHROUGH [[fallthrough]]
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
100 # elif defined (__GNUC__) && __GNUC__ < 7
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
101 # define OCTAVE_FALLTHROUGH ((void) 0)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
102 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
103 # define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
104 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
105 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
106
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
107 #if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
108 template <typename T>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
109 static inline void
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
110 octave_unused_parameter (const T&)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
111 { }
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
113 # define octave_unused_parameter(param) (void) param;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
114 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
115
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116 #if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
117 # if defined (_WIN32) || defined (__CYGWIN__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
118 # if defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
119 /* GCC */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
120 # define OCTAVE_EXPORT __attribute__ ((dllexport))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
121 # define OCTAVE_IMPORT __attribute__ ((dllimport))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
122 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
123 /* MSVC */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
124 # define OCTAVE_EXPORT __declspec(dllexport)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
125 # define OCTAVE_IMPORT __declspec(dllimport)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
127 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
128 /* All other platforms. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
129 # define OCTAVE_EXPORT __attribute__ ((visibility ("default")))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
130 # define OCTAVE_IMPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
131 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
132 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133 # define OCTAVE_EXPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
134 # define OCTAVE_IMPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
135 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
136
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
137 /* API macros for liboctave */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
138 #if defined (OCTAVE_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
139 # define OCTAVE_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
140 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
141 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
142 # define OCTAVE_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
143 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
144 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
145 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
146 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
147 # define OCTAVE_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
148 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
149 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
150 # define OCTAVE_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
151 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
152 # define OCTAVE_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
153 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
154 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
155 # define OCTAVE_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
156 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
157 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
158 # define OCTAVE_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
159 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
160 # define OCTAVE_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
161 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
162 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
163 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
164 # define OCTAVE_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
165 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
166 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
167 # define OCTAVE_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
168 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
170 /* API macros for liboctinterp */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
171 #if defined (OCTINTERP_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 # define OCTINTERP_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
173 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
174 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
175 # define OCTINTERP_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
176 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
177 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
178 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
179 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
180 # define OCTINTERP_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
181 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
182 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
183 # define OCTINTERP_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
184 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
185 # define OCTINTERP_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
186 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
187 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
188 # define OCTINTERP_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
189 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
190 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
191 # define OCTINTERP_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
192 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
193 # define OCTINTERP_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
194 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
195 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
196 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
197 # define OCTINTERP_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
198 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
199 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
200 # define OCTINTERP_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
201 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
202
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
203 /* API macros for the Array class in liboctave and liboctinterp */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
204 #if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
205 # define OCTARRAY_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
206 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
207 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
208 # define OCTARRAY_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
209 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
210 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
211 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
212 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
213 # define OCTARRAY_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
214 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
215 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
216 # define OCTARRAY_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
217 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
218 # define OCTARRAY_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
219 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
220 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
221 # define OCTARRAY_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
222 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
223 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
224 # define OCTARRAY_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
225 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
226 # define OCTARRAY_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
227 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
228 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
229 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
230 # define OCTARRAY_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
231 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
232 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
233 # define OCTARRAY_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
234 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
235
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
236 /* API macros for libinterp/graphics */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
237 #if defined (OCTGRAPHICS_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
238 # define OCTGRAPHICS_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
239 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
240 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
241 # define OCTGRAPHICS_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
242 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
243 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
244 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
245 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
246 # define OCTGRAPHICS_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
247 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
248 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
249 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
250 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
251 # define OCTGRAPHICS_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
252 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
253 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
254 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
255 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
256 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
257 # define OCTGRAPHICS_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
258 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
259 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
260 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
261 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
262 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
263 # define OCTGRAPHICS_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
264 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
265 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
266 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
267 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
268
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
269 /* API macros for libgui */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
270 #if defined (OCTGUI_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
271 # define OCTGUI_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
272 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
273 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
274 # define OCTGUI_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
275 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
276 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
277 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
278 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
279 # define OCTGUI_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
280 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
281 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
282 # define OCTGUI_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
283 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
284 # define OCTGUI_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
285 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
286 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
287 # define OCTGUI_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
288 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
289 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
290 # define OCTGUI_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
291 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
292 # define OCTGUI_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
293 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
294 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
295 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
296 # define OCTGUI_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
297 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
298 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
299 # define OCTGUI_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
300 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
301
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
302 #if defined (OCTAVE_ENABLE_64)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
303 # define OCTAVE_IDX_TYPE_FORMAT PRId64
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
304 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
305 # define OCTAVE_IDX_TYPE_FORMAT PRId32
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
306 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
307
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
308 #if OCTAVE_SIZEOF_F77_INT_TYPE == 8
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
309 # define OCTAVE_F77_INT_TYPE_FORMAT PRId64
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
310 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
311 # define OCTAVE_F77_INT_TYPE_FORMAT PRId32
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
312 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
313
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
314 #define OCTAVE_HAVE_F77_INT_TYPE 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
315
30827
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
316 /* time type in API is always 64 bits wide */
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
317 #define OCTAVE_TIME_T int64_t
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
318
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
319 #if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
320 # define OCTAVE_THREAD_LOCAL
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
321 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
322
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
323 typedef OCTAVE_IDX_TYPE octave_idx_type;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
324 typedef OCTAVE_F77_INT_TYPE octave_f77_int_type;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
325
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
326 /* Backward compatibility */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
327
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
328 #if defined (OCTAVE_ENABLE_64)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
329 # define USE_64_BIT_IDX_T 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
330 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
331
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
332 #if defined (OCTAVE_ENABLE_OPENMP)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
333 # define HAVE_OPENMP 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
334 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
335
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
336 #if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
337 # define OCTAVE_FLOAT_TRUNCATE volatile
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
338 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
339 # define OCTAVE_FLOAT_TRUNCATE
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
340 #endif