Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qtsymbolmacros.h
Go to the documentation of this file.
1
// Copyright (C) 2023 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QTSYMBOLMACROS_H
6
#
define
QTSYMBOLMACROS_H
7
8
#
if
0
9
#
pragma
qt_sync_stop_processing
10
#
endif
11
12
// For GHS symbol keeping.
13
#
include
<
QtCore
/
qcompilerdetection
.
h
>
14
#
include
<
QtCore
/
qtpreprocessorsupport
.
h
>
15
16
// For handling namespaced resources.
17
#
ifdef
QT_NAMESPACE
18
#
define
QT_RCC_MANGLE_NAMESPACE0
(
x
)
x
19
#
define
QT_RCC_MANGLE_NAMESPACE1
(
a
,
b
)
a
##
_
##
b
20
#
define
QT_RCC_MANGLE_NAMESPACE2
(
a
,
b
)
QT_RCC_MANGLE_NAMESPACE1
(
a
,
b
)
21
#
define
QT_RCC_MANGLE_NAMESPACE
(
name
)
QT_RCC_MANGLE_NAMESPACE2
(
22
QT_RCC_MANGLE_NAMESPACE0
(
name
)
,
QT_RCC_MANGLE_NAMESPACE0
(
QT_NAMESPACE
)
)
23
#
else
24
#
define
QT_RCC_MANGLE_NAMESPACE
(
name
)
name
25
#
endif
26
27
// GHS needs special handling to keep a symbol around.
28
#
if
defined
(
Q_CC_GHS
)
29
#
define
Q_GHS_KEEP_REFERENCE
(
S
)
QT_DO_PRAGMA
(
ghs
reference
S
##
__Fv
)
30
#
else
31
#
define
Q_GHS_KEEP_REFERENCE
(
S
)
32
#
endif
33
34
// Macros to ensure a symbol is not dropped by the linker even if it's not used.
35
#
define
QT_DECLARE_EXTERN_SYMBOL
(
NAME
,
RETURN_TYPE
)
36
extern
RETURN_TYPE
NAME
(
)
;
37
Q_GHS_KEEP_REFERENCE
(
NAME
)
38
39
#
define
QT_DECLARE_EXTERN_SYMBOL_INT
(
NAME
)
40
QT_DECLARE_EXTERN_SYMBOL
(
NAME
,
int
)
41
42
#
define
QT_DECLARE_EXTERN_SYMBOL_VOID
(
NAME
)
43
QT_DECLARE_EXTERN_SYMBOL
(
NAME
,
void
)
44
45
#
define
QT_KEEP_SYMBOL_VAR_NAME
(
NAME
)
NAME
##
_keep
46
47
#
define
QT_KEEP_SYMBOL_HELPER
(
NAME
,
VAR_NAME
)
48
volatile
auto
VAR_NAME
=
&
NAME
;
49
Q_UNUSED
(
VAR_NAME
)
50
51
#
define
QT_KEEP_SYMBOL
(
NAME
)
52
QT_KEEP_SYMBOL_HELPER
(
NAME
,
QT_KEEP_SYMBOL_VAR_NAME
(
NAME
)
)
53
54
55
// Similar to the ones above, but for rcc resource symbols specifically.
56
#
define
QT_GET_RESOURCE_INIT_SYMBOL
(
NAME
)
57
QT_RCC_MANGLE_NAMESPACE
(
qInitResources_
##
NAME
)
58
59
#
define
QT_DECLARE_EXTERN_RESOURCE
(
NAME
)
60
QT_DECLARE_EXTERN_SYMBOL_INT
(
QT_GET_RESOURCE_INIT_SYMBOL
(
NAME
)
)
61
62
#
define
QT_KEEP_RESOURCE
(
NAME
)
63
QT_KEEP_SYMBOL
(
QT_GET_RESOURCE_INIT_SYMBOL
(
NAME
)
)
64
65
#
endif
// QTSYMBOLMACROS_H
QT_KEEP_SYMBOL
#define QT_KEEP_SYMBOL(NAME)
Definition
qtsymbolmacros.h:51
QT_GET_RESOURCE_INIT_SYMBOL
#define QT_GET_RESOURCE_INIT_SYMBOL(NAME)
Definition
qtsymbolmacros.h:56
QT_RCC_MANGLE_NAMESPACE
#define QT_RCC_MANGLE_NAMESPACE(name)
Definition
qtsymbolmacros.h:24
QT_DECLARE_EXTERN_SYMBOL
#define QT_DECLARE_EXTERN_SYMBOL(NAME, RETURN_TYPE)
Definition
qtsymbolmacros.h:35
QT_KEEP_SYMBOL_VAR_NAME
#define QT_KEEP_SYMBOL_VAR_NAME(NAME)
Definition
qtsymbolmacros.h:45
Q_GHS_KEEP_REFERENCE
#define Q_GHS_KEEP_REFERENCE(S)
Definition
qtsymbolmacros.h:31
QT_DECLARE_EXTERN_SYMBOL_INT
#define QT_DECLARE_EXTERN_SYMBOL_INT(NAME)
Definition
qtsymbolmacros.h:39
QT_KEEP_SYMBOL_HELPER
#define QT_KEEP_SYMBOL_HELPER(NAME, VAR_NAME)
Definition
qtsymbolmacros.h:47
qtbase
src
corelib
global
qtsymbolmacros.h
Generated on
for Qt by
1.18.0