GenerateExportHeader: Support deprecation messages

Add message variants of the deprecation macros. With CXX_ATTRIBUTES,
prefer the standard [[deprecated]] as of C++14 and place it before the
export marker, since a C++11 attribute cannot follow __declspec.

Fixes: #20527
This commit is contained in:
Sergiu Deitsch committed 2026-10-31 13:54:22 +01:00
1 parent 1abe59f5d4
commit 07dbb31e69
44 files changed
+835 -78

No files matched your search

@@ -0,0 +1,9 @@
GenerateExportHeader-deprecated-msg
-----------------------------------
* The :module:`GenerateExportHeader` module's
:command:`generate_export_header` command now defines
``<MACRO>_DEPRECATED_MSG(<message>)`` and the corresponding ``_EXPORT_MSG``
and ``_NO_EXPORT_MSG`` macros, which add a message to the deprecation
warning. With the ``CXX_ATTRIBUTES`` option, deprecation uses the
standard ``[[deprecated]]`` attribute as of C++14.
+138 -31
View File
@@ -96,6 +96,22 @@ Generating Export Header
* ``<MACRO>_DEPRECATED_NO_EXPORT``: Marks a deprecated symbol that should
not be exported (internal and deprecated).
* ``<MACRO>_DEPRECATED_MSG(<message>)``,
``<MACRO>_DEPRECATED_EXPORT_MSG(<message>)`` and
``<MACRO>_DEPRECATED_NO_EXPORT_MSG(<message>)``:
.. versionadded:: 4.6
Act like the three deprecation macros above. The compiler warning also
shows the string literal ``<message>``, which typically names the
replacement. Compilers that support deprecation only without a message
ignore ``<message>``:
.. code-block:: c++
EXAMPLE_DEPRECATED_EXPORT_MSG("use doSomething() instead")
void legacyPublicFunction();
* ``<MACRO>_NO_DEPRECATED``: A macro that can be used in source code to
conditionally exclude deprecated code parts from the build via
preprocessor logic.
@@ -143,9 +159,13 @@ Generating Export Header
export markers)
* ``<deprecated-macro-name>_NO_EXPORT`` (macro for deprecated symbols
with no-export markers)
* ``<deprecated-macro-name>_MSG``,
``<deprecated-macro-name>_EXPORT_MSG`` and
``<deprecated-macro-name>_NO_EXPORT_MSG`` (the above macros with a
deprecation message)
instead of the default names in format of
``<MACRO>_DEPRECATED{,_EXPORT,_NO_EXPORT}``.
``<MACRO>_DEPRECATED{,_EXPORT,_NO_EXPORT}{,_MSG}``.
``DEFINE_NO_DEPRECATED``
If specified, this will define a macro named ``<MACRO>_NO_DEPRECATED``.
@@ -196,8 +216,10 @@ Generating Export Header
If specified, the export, no-export and deprecation macros expand to
C++11 attributes, such as ``[[gnu::visibility("default")]]``,
``[[gnu::dllexport]]`` and ``[[gnu::deprecated]]``, which can be
combined with other C++11 attributes. The generated header falls back
``[[gnu::dllexport]]`` and ``[[deprecated]]``, which can be combined
with other C++11 attributes. Deprecation uses the standard
``[[deprecated]]`` as of C++14 and ``[[gnu::deprecated]]`` in C++11.
The generated header falls back
to the compiler-specific spellings, such as ``__attribute__`` and
``__declspec``, if the consumer compiles C, compiles C++ older than
C++11, does not support the attribute, or is Qt's ``moc``. The
@@ -602,18 +624,51 @@ endmacro()
macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY)
set(DEFINE_DEPRECATED)
set(DEFINE_DEPRECATED_MSG)
set(DEFINE_EXPORT)
set(DEFINE_IMPORT)
set(DEFINE_NO_EXPORT)
set(CXX_ATTRIBUTE_DEPRECATED "gnu::deprecated")
# Values of __cplusplus for the language levels of C++11 attributes
set(cplusplus11 201103L)
set(cplusplus14 201402L)
# Values of __has_cpp_attribute for any support of a vendor attribute and
# for the standard deprecation attribute
set(has_attribute 1)
set(has_deprecated 201309L)
# GCC and Clang report the standard deprecation attribute in C++11 too, but
# Clang rejects it there with -pedantic-errors as a C++14 extension. The
# standard attribute therefore requires C++14, and its GNU spelling covers
# C++11.
set(CXX_ATTRIBUTE_DEPRECATED
"deprecated" ${cplusplus14} ${has_deprecated}
"gnu::deprecated" ${cplusplus11} ${has_attribute}
)
set(CXX_ATTRIBUTE_EXPORT)
set(CXX_ATTRIBUTE_IMPORT)
set(CXX_ATTRIBUTE_NO_EXPORT)
if (COMPILER_HAS_DEPRECATED_ATTR AND NOT WIN32)
set(DEFINE_DEPRECATED "__attribute__ ((__deprecated__))")
set(DEFINE_DEPRECATED_MSG "__attribute__ ((__deprecated__(msg)))")
elseif(COMPILER_HAS_DEPRECATED)
set(DEFINE_DEPRECATED "__declspec(deprecated)")
set(DEFINE_DEPRECATED_MSG "__declspec(deprecated(msg))")
endif()
# Older compilers, such as GCC before 4.5, accept the deprecation attribute
# only without a message.
if(DEFINE_DEPRECATED_MSG)
string(REPLACE "(msg)" "(\"msg\")" deprecated_msg_probe
"${DEFINE_DEPRECATED_MSG}")
if(CMAKE_CXX_COMPILER_LOADED)
_check_cxx_compiler_attribute("${deprecated_msg_probe}"
COMPILER_HAS_DEPRECATED_MSG)
else()
_check_c_compiler_attribute("${deprecated_msg_probe}"
COMPILER_HAS_DEPRECATED_MSG)
endif()
if(NOT COMPILER_HAS_DEPRECATED_MSG)
set(DEFINE_DEPRECATED_MSG "${DEFINE_DEPRECATED}")
endif()
endif()
get_property(type TARGET ${TARGET_LIBRARY} PROPERTY TYPE)
@@ -622,39 +677,72 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY)
if(WIN32 OR CYGWIN)
set(DEFINE_EXPORT "__declspec(dllexport)")
set(DEFINE_IMPORT "__declspec(dllimport)")
set(CXX_ATTRIBUTE_EXPORT "gnu::dllexport")
set(CXX_ATTRIBUTE_IMPORT "gnu::dllimport")
set(CXX_ATTRIBUTE_EXPORT "gnu::dllexport"
${cplusplus11} ${has_attribute})
set(CXX_ATTRIBUTE_IMPORT "gnu::dllimport"
${cplusplus11} ${has_attribute})
elseif(COMPILER_HAS_HIDDEN_VISIBILITY)
set(DEFINE_EXPORT "__attribute__((visibility(\"default\")))")
set(DEFINE_IMPORT "__attribute__((visibility(\"default\")))")
set(DEFINE_NO_EXPORT "__attribute__((visibility(\"hidden\")))")
set(CXX_ATTRIBUTE_EXPORT "gnu::visibility(\"default\")")
set(CXX_ATTRIBUTE_IMPORT "gnu::visibility(\"default\")")
set(CXX_ATTRIBUTE_NO_EXPORT "gnu::visibility(\"hidden\")")
set(CXX_ATTRIBUTE_EXPORT "gnu::visibility(\"default\")"
${cplusplus11} ${has_attribute})
set(CXX_ATTRIBUTE_IMPORT "gnu::visibility(\"default\")"
${cplusplus11} ${has_attribute})
set(CXX_ATTRIBUTE_NO_EXPORT "gnu::visibility(\"hidden\")"
${cplusplus11} ${has_attribute})
endif()
endif()
endmacro()
# Sets <out> to the preprocessor lines indented by <indent> that define the
# macro <name> as <value>. Given a C++11 <attribute>, the lines prefer
# [[<attribute>]] in consumers that support it and fall back to <value>
# otherwise. Qt's moc always sees <value> because older versions of moc skip
# classes declared with C++11 attributes.
function(_generate_export_header_definition out indent name value attribute)
if(NOT attribute)
# macro <name>, which may include a parameter list, as <value>. The remaining
# arguments are triples of a C++11 attribute, the minimum value of __cplusplus
# it requires and the minimum value of __has_cpp_attribute for it. The lines
# prefer [[<attribute>]] of the first triple the consumer supports and fall
# back to <value> otherwise. Qt's moc always
# sees <value> because older versions of moc skip classes declared with C++11
# attributes.
function(_generate_export_header_definition out indent name value)
if(NOT ARGN)
set(${out} "#${indent}define ${name} ${value}" PARENT_SCOPE)
return()
endif()
string(REGEX REPLACE "\\(.*" "" token "${attribute}")
string(JOIN "\n" definition
"#${indent}if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)"
"#${indent} if __has_cpp_attribute(${token})"
"#${indent} define ${name} [[${attribute}]]"
"#${indent} endif"
"#${indent}endif"
"#${indent}ifndef ${name}"
"#${indent} define ${name} ${value}"
string(REGEX REPLACE "\\(.*" "" macro "${name}")
set(definition "")
set(undefined "")
# Take one candidate triple at a time, keeping each attribute next to its
# requirements instead of in parallel lists.
while(ARGN)
list(POP_FRONT ARGN attribute cplusplus minimum)
string(REGEX REPLACE "\\(.*" "" token "${attribute}")
# Any positive value indicates support, so a minimum of 1 needs no
# comparison.
set(supported "__has_cpp_attribute(${token})")
if(NOT minimum STREQUAL "1")
string(APPEND supported " >= ${minimum}")
endif()
if(token MATCHES "::")
# Intel C++ for Windows reports GNU attributes it ignores, and Oracle
# Developer Studio cannot parse scoped attribute names.
set(language "defined(__cplusplus) && __cplusplus >= ${cplusplus} && !defined(__SUNPRO_CC)")
else()
# MSVC keeps __cplusplus at C++98 by default.
set(language "(defined(__cplusplus) && __cplusplus >= ${cplusplus} || defined(_MSVC_LANG) && _MSVC_LANG >= ${cplusplus})")
endif()
string(APPEND definition
"#${indent}if ${language} && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)${undefined}\n"
"#${indent} if ${supported}\n"
"#${indent} define ${name} [[${attribute}]]\n"
"#${indent} endif\n"
"#${indent}endif\n"
)
set(undefined " && !defined(${macro})")
endwhile()
string(APPEND definition
"#${indent}ifndef ${macro}\n"
"#${indent} define ${name} ${value}\n"
"#${indent}endif"
)
set(${out} "${definition}" PARENT_SCOPE)
@@ -756,20 +844,39 @@ function(_DO_GENERATE_EXPORT_HEADER TARGET_LIBRARY)
set(CXX_ATTRIBUTE_IMPORT)
set(CXX_ATTRIBUTE_NO_EXPORT)
endif()
# Append the message parameter to the attributes but not to their minimum
# values, which start with a digit.
list(TRANSFORM CXX_ATTRIBUTE_DEPRECATED APPEND "(msg)" REGEX "^[^0-9]"
OUTPUT_VARIABLE CXX_ATTRIBUTE_DEPRECATED_MSG)
_generate_export_header_definition(EXPORT_DEFINITION " "
"${EXPORT_MACRO_NAME}" "${DEFINE_EXPORT}" "${CXX_ATTRIBUTE_EXPORT}")
"${EXPORT_MACRO_NAME}" "${DEFINE_EXPORT}" ${CXX_ATTRIBUTE_EXPORT})
_generate_export_header_definition(IMPORT_DEFINITION " "
"${EXPORT_MACRO_NAME}" "${DEFINE_IMPORT}" "${CXX_ATTRIBUTE_IMPORT}")
"${EXPORT_MACRO_NAME}" "${DEFINE_IMPORT}" ${CXX_ATTRIBUTE_IMPORT})
_generate_export_header_definition(NO_EXPORT_DEFINITION " "
"${NO_EXPORT_MACRO_NAME}" "${DEFINE_NO_EXPORT}"
"${CXX_ATTRIBUTE_NO_EXPORT}")
# The GNU spelling of deprecation shares the availability of the export
# attributes, so that the combined macros never mix C++11 attributes with
# the legacy spellings, which Clang rejects after __declspec.
${CXX_ATTRIBUTE_NO_EXPORT})
_generate_export_header_definition(DEPRECATED_DEFINITION " "
"${DEPRECATED_MACRO_NAME}" "${DEFINE_DEPRECATED}"
"${CXX_ATTRIBUTE_DEPRECATED}")
${CXX_ATTRIBUTE_DEPRECATED})
_generate_export_header_definition(DEPRECATED_MSG_DEFINITION " "
"${DEPRECATED_MACRO_NAME}_MSG(msg)" "${DEFINE_DEPRECATED_MSG}"
${CXX_ATTRIBUTE_DEPRECATED_MSG})
# A C++11 attribute must precede __declspec in a declaration, so the
# combined macros place the deprecation first if it can expand to one.
foreach(visibility IN ITEMS EXPORT NO_EXPORT)
set(marker "${${visibility}_MACRO_NAME}")
if(_GEH_CXX_ATTRIBUTES)
set(DEPRECATED_${visibility} "${DEPRECATED_MACRO_NAME} ${marker}")
set(DEPRECATED_${visibility}_MSG
"${DEPRECATED_MACRO_NAME}_MSG(msg) ${marker}")
else()
set(DEPRECATED_${visibility} "${marker} ${DEPRECATED_MACRO_NAME}")
set(DEPRECATED_${visibility}_MSG
"${marker} ${DEPRECATED_MACRO_NAME}_MSG(msg)")
endif()
endforeach()
configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/exportheader.cmake.in"
"${EXPORT_FILE_NAME}" @ONLY)
+14 -2
View File
@@ -25,12 +25,24 @@
@DEPRECATED_DEFINITION@
#endif
#ifndef @DEPRECATED_MACRO_NAME@_MSG
@DEPRECATED_MSG_DEFINITION@
#endif
#ifndef @DEPRECATED_MACRO_NAME@_EXPORT
# define @DEPRECATED_MACRO_NAME@_EXPORT @EXPORT_MACRO_NAME@ @DEPRECATED_MACRO_NAME@
# define @DEPRECATED_MACRO_NAME@_EXPORT @DEPRECATED_EXPORT@
#endif
#ifndef @DEPRECATED_MACRO_NAME@_EXPORT_MSG
# define @DEPRECATED_MACRO_NAME@_EXPORT_MSG(msg) @DEPRECATED_EXPORT_MSG@
#endif
#ifndef @DEPRECATED_MACRO_NAME@_NO_EXPORT
# define @DEPRECATED_MACRO_NAME@_NO_EXPORT @NO_EXPORT_MACRO_NAME@ @DEPRECATED_MACRO_NAME@
# define @DEPRECATED_MACRO_NAME@_NO_EXPORT @DEPRECATED_NO_EXPORT@
#endif
#ifndef @DEPRECATED_MACRO_NAME@_NO_EXPORT_MSG
# define @DEPRECATED_MACRO_NAME@_NO_EXPORT_MSG(msg) @DEPRECATED_NO_EXPORT_MSG@
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
+5
View File
@@ -10,3 +10,8 @@ int LibB::foo()
{
return a.foo();
}
DeprecatedLibB::DeprecatedLibB(QObject* parent)
: QObject(parent)
{
}
+9
View File
@@ -19,4 +19,13 @@ private:
LibA a;
};
// moc processes a class marked with a deprecation message only if the
// generated export header shows it the compiler-specific spelling.
class LIBB_DEPRECATED_EXPORT_MSG("use LibB") DeprecatedLibB : public QObject
{
Q_OBJECT
public:
explicit DeprecatedLibB(QObject* parent = 0);
};
#endif
+1
View File
@@ -80,6 +80,7 @@ int main(int argv, char** args)
yaf.doYaf();
LibC lc;
DeprecatedLibB dlb;
lc.foo();
ResourceTester rt;
@@ -0,0 +1,12 @@
# The build of an object library of the deprecated_msg directory must warn
# with the message of each deprecation macro of the library it uses.
string(REGEX REPLACE "^deprecated_msg_([a-z]+).*" "\\1" library
"${deprecated_msg_target}")
foreach(macro IN ITEMS DEPRECATED_MSG DEPRECATED_EXPORT_MSG
DEPRECATED_NO_EXPORT_MSG)
if(NOT actual_stdout MATCHES "${library} ${macro}")
string(APPEND RunCMake_TEST_FAILED
"Building ${deprecated_msg_target} does not warn with the message "
"\"${library} ${macro}\".\n")
endif()
endforeach()
@@ -79,6 +79,7 @@ macro_add_test_library(libstatic)
macro_add_test_library(libattributes)
add_subdirectory(nodeprecated)
add_subdirectory(deprecated_msg)
add_subdirectory(includeguard)
if(NOT BORLAND)
add_subdirectory(c_identifier)
@@ -122,5 +123,8 @@ target_compile_definitions(GenerateExportHeader
"SRC_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/reference/${_platform}\""
"BIN_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
)
if(COMPILER_HAS_DEPRECATED AND NOT COMPILER_HAS_DEPRECATED_MSG)
target_compile_definitions(GenerateExportHeader PRIVATE DEPRECATED_WITHOUT_MSG)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/GEH-failures.cmake)
@@ -24,6 +24,19 @@ function(run_GEH)
--config Debug
--target ${failure_test_target})
endforeach()
file(STRINGS "${RunCMake_TEST_BINARY_DIR}/deprecated_msg_targets"
deprecated_msg_targets)
# Generators print compiler warnings to either stream.
set(RunCMake_TEST_OUTPUT_MERGE 1)
foreach(deprecated_msg_target ${deprecated_msg_targets})
run_cmake_command(GEH-deprecated-msg ${CMAKE_COMMAND}
--build .
--config Debug
--target ${deprecated_msg_target})
endforeach()
unset(RunCMake_TEST_OUTPUT_MERGE)
endfunction()
# remove these flags from the environment if they have been set
@@ -32,6 +45,8 @@ set(env_cxx_flags $ENV{CXXFLAGS})
if(env_cxx_flags)
string(REPLACE "-fvisibility=hidden" "" env_cxx_flags "${env_cxx_flags}")
string(REPLACE "-fvisibility-inlines-hidden" "" env_cxx_flags "${env_cxx_flags}")
# The deprecation message checks need warnings.
string(REGEX REPLACE "(^| )-w( |$)" " " env_cxx_flags "${env_cxx_flags}")
set(ENV{CXXFLAGS} "${env_cxx_flags}")
endif()
run_GEH()
@@ -0,0 +1,36 @@
# Show that the compiler warning about a deprecated symbol includes the
# message given to the deprecation macros. The objects are only compiled, so
# the symbols need not be exported, and each is built in a separate step that
# checks the warnings.
add_library(deprecated_msg_libshared OBJECT EXCLUDE_FROM_ALL libshared.cpp)
add_library(deprecated_msg_libattributes OBJECT EXCLUDE_FROM_ALL
libattributes.cpp)
set_property(TARGET deprecated_msg_libattributes PROPERTY CXX_STANDARD 14)
set(targets deprecated_msg_libshared deprecated_msg_libattributes)
# Only GCC and Clang support the GNU spelling that C++11 consumers get.
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
add_library(deprecated_msg_libattributes_cxx11 OBJECT EXCLUDE_FROM_ALL
libattributes.cpp)
set_property(TARGET deprecated_msg_libattributes_cxx11
PROPERTY CXX_STANDARD 11)
list(APPEND targets deprecated_msg_libattributes_cxx11)
endif()
# Undo -Wno-deprecated-declarations from the environment.
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
foreach(target IN LISTS targets)
target_compile_options(${target} PRIVATE -Wdeprecated-declarations)
endforeach()
endif()
# Messages are unsupported by some compilers, ignored by Oracle Developer
# Studio and not shown by OrangeC.
if(NOT COMPILER_HAS_DEPRECATED_MSG
OR CMAKE_CXX_COMPILER_ID MATCHES "^(SunPro|OrangeC)$")
set(targets "")
endif()
list(JOIN targets "\n" targets)
file(WRITE ${CMAKE_BINARY_DIR}/deprecated_msg_targets "${targets}")
@@ -0,0 +1,8 @@
#include "libattributes.h"
int use_deprecated_msg()
{
return libattributes::function_deprecated_msg() +
libattributes::function_deprecated_exported_msg() +
libattributes::function_deprecated_excluded_msg();
}
@@ -0,0 +1,8 @@
#include "libshared.h"
int use_deprecated_msg()
{
return libshared::function_deprecated_msg() +
libshared::function_deprecated_exported_msg() +
libshared::function_deprecated_excluded_msg();
}
@@ -17,6 +17,15 @@ static void rtrim(std::string& str, char byte)
}
}
static void replace(std::string& str, std::string const& from,
std::string const& to)
{
std::string::size_type const pos = str.find(from);
if (pos != std::string::npos) {
str.replace(pos, from.size(), to);
}
}
void compare(char const* refName, char const* testName)
{
std::ifstream ref;
@@ -48,6 +57,11 @@ void compare(char const* refName, char const* testName)
// on some platforms.
rtrim(refLine, '\r');
rtrim(testLine, '\r');
#ifdef DEPRECATED_WITHOUT_MSG
// Compilers without deprecation messages get the spelling without one.
replace(refLine, "__deprecated__(msg)", "__deprecated__");
replace(refLine, "__declspec(deprecated(msg))", "__declspec(deprecated)");
#endif
if (refLine != testLine) {
std::cout << "Ref and test are not the same:\n Ref: \"" << refLine
<< "\"\n Test: \"" << testLine << "\"\n";
@@ -110,6 +124,9 @@ int main()
libshared::function_exported();
// libshared::function_deprecated(); LINK ERROR
libshared::function_deprecated_exported();
// libshared::function_deprecated_msg(); LINK ERROR
libshared::function_deprecated_exported_msg();
// libshared::function_deprecated_excluded_msg(); LINK ERROR
// libshared::function_excluded(); LINK ERROR
// use_int(libshared::data); LINK ERROR
@@ -159,6 +176,7 @@ int main()
libstatic::function_exported();
libstatic::function_deprecated();
libstatic::function_deprecated_exported();
libstatic::function_deprecated_exported_msg();
libstatic::function_excluded();
use_int(libstatic::data);
@@ -191,6 +209,17 @@ int main()
libattributes::function_exported();
libattributes::function_deprecated_exported();
// libattributes::function_excluded(); LINK ERROR
// libattributes::function_deprecated_msg(); LINK ERROR
libattributes::function_deprecated_exported_msg();
// libattributes::function_deprecated_excluded_msg(); LINK ERROR
// OrangeC cannot declare the deprecated class.
#ifndef __ORANGEC__
{
libattributes::DeprecatedClass l;
l.method();
}
#endif
// use_int(libattributes::data); LINK ERROR
use_int(libattributes::data_exported);
@@ -25,13 +25,17 @@ if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
target_link_libraries(libattributes_c PRIVATE libattributes)
endif()
# The C++11 consumer must not get the C++14 deprecation attribute, which
# Clang rejects with -pedantic-errors although __has_cpp_attribute reports it.
if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
add_executable(libattributes_cxx98 main.cpp)
set_target_properties(libattributes_cxx98 PROPERTIES
CXX_STANDARD 98
CXX_EXTENSIONS OFF
)
target_compile_options(libattributes_cxx98 PRIVATE
-pedantic-errors ${no_line_marker_errors})
target_link_libraries(libattributes_cxx98 PRIVATE libattributes)
foreach(standard IN ITEMS 98 11)
add_executable(libattributes_cxx${standard} main.cpp)
set_target_properties(libattributes_cxx${standard} PROPERTIES
CXX_STANDARD ${standard}
CXX_EXTENSIONS OFF
)
target_compile_options(libattributes_cxx${standard} PRIVATE
-pedantic-errors ${no_line_marker_errors})
target_link_libraries(libattributes_cxx${standard} PRIVATE libattributes)
endforeach()
endif()
@@ -36,6 +36,14 @@ int libattributes::ExportedClass::method_excluded() const
return 0;
}
// OrangeC cannot declare the deprecated class.
#ifndef __ORANGEC__
int libattributes::DeprecatedClass::method() const
{
return 0;
}
#endif
int libattributes::function()
{
return 0;
@@ -56,6 +64,21 @@ int libattributes::function_excluded()
return 0;
}
int libattributes::function_deprecated_msg()
{
return 0;
}
int libattributes::function_deprecated_exported_msg()
{
return 0;
}
int libattributes::function_deprecated_excluded_msg()
{
return 0;
}
int const libattributes::data = 1;
int const libattributes::data_exported = 1;
@@ -32,6 +32,15 @@ public:
LIBATTRIBUTES_NO_EXPORT int method_excluded() const;
};
// OrangeC fails to parse two __declspec specifiers on a class.
#ifndef __ORANGEC__
class LIBATTRIBUTES_DEPRECATED_EXPORT_MSG("use ExportedClass") DeprecatedClass
{
public:
int method() const;
};
#endif
int function();
LIBATTRIBUTES_EXPORT int function_exported();
@@ -40,6 +49,16 @@ LIBATTRIBUTES_DEPRECATED_EXPORT int function_deprecated_exported();
LIBATTRIBUTES_NO_EXPORT int function_excluded();
LIBATTRIBUTES_DEPRECATED_MSG("libattributes DEPRECATED_MSG")
int function_deprecated_msg();
LIBATTRIBUTES_DEPRECATED_EXPORT_MSG("libattributes DEPRECATED_EXPORT_MSG")
int function_deprecated_exported_msg();
LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(
"libattributes DEPRECATED_NO_EXPORT_MSG")
int function_deprecated_excluded_msg();
extern int const data;
LIBATTRIBUTES_EXPORT extern int const data_exported;
@@ -101,6 +101,21 @@ int libshared::function_deprecated_exported()
return 0;
}
int libshared::function_deprecated_msg()
{
return 0;
}
int libshared::function_deprecated_exported_msg()
{
return 0;
}
int libshared::function_deprecated_excluded_msg()
{
return 0;
}
int libshared::function_excluded()
{
return 0;
@@ -67,6 +67,15 @@ int LIBSHARED_DEPRECATED function_deprecated();
int LIBSHARED_DEPRECATED_EXPORT function_deprecated_exported();
int LIBSHARED_DEPRECATED_MSG("libshared DEPRECATED_MSG")
function_deprecated_msg();
int LIBSHARED_DEPRECATED_EXPORT_MSG("libshared DEPRECATED_EXPORT_MSG")
function_deprecated_exported_msg();
int LIBSHARED_DEPRECATED_NO_EXPORT_MSG("libshared DEPRECATED_NO_EXPORT_MSG")
function_deprecated_excluded_msg();
int LIBSHARED_NO_EXPORT function_excluded();
extern int const data;
@@ -113,6 +113,11 @@ int libstatic::function_deprecated_exported()
return 0;
}
int libstatic::function_deprecated_exported_msg()
{
return 0;
}
int libstatic::function_excluded()
{
return 0;
@@ -73,6 +73,9 @@ int LIBSTATIC_DEPRECATED function_deprecated();
int LIBSTATIC_DEPRECATED_EXPORT function_deprecated_exported();
int LIBSTATIC_DEPRECATED_EXPORT_MSG("use function_exported")
function_deprecated_exported_msg();
int LIBSTATIC_NO_EXPORT function_excluded();
extern int const data;
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllexport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllexport]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllimport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllimport]]
# endif
@@ -36,7 +36,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -46,12 +51,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -22,7 +22,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -32,12 +37,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg)
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllexport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllexport]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllimport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllimport]]
# endif
@@ -36,7 +36,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -46,12 +51,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::visibility)
# define LIBATTRIBUTES_EXPORT [[gnu::visibility("default")]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::visibility)
# define LIBATTRIBUTES_EXPORT [[gnu::visibility("default")]]
# endif
@@ -31,7 +31,7 @@
# endif
# ifndef LIBATTRIBUTES_NO_EXPORT
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::visibility)
# define LIBATTRIBUTES_NO_EXPORT [[gnu::visibility("hidden")]]
# endif
@@ -43,7 +43,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -53,12 +58,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -22,7 +22,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -32,12 +37,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __attribute__ ((__deprecated__(msg)))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllexport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllexport]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllimport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllimport]]
# endif
@@ -36,7 +36,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -46,12 +51,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllexport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllexport]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllimport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllimport]]
# endif
@@ -36,7 +36,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -46,12 +51,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED __declspec(deprecated)
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg) __declspec(deprecated(msg))
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED
@@ -9,7 +9,7 @@
# ifndef LIBATTRIBUTES_EXPORT
# ifdef libattributes_EXPORTS
/* We are building this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllexport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllexport]]
# endif
@@ -19,7 +19,7 @@
# endif
# else
/* We are using this library */
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(gnu::dllimport)
# define LIBATTRIBUTES_EXPORT [[gnu::dllimport]]
# endif
@@ -36,7 +36,12 @@
#endif
#ifndef LIBATTRIBUTES_DEPRECATED
# if defined(__cplusplus) && __cplusplus >= 201103L && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED [[deprecated]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED [[gnu::deprecated]]
# endif
@@ -46,12 +51,36 @@
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_MSG
# if (defined(__cplusplus) && __cplusplus >= 201402L || defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN)
# if __has_cpp_attribute(deprecated) >= 201309L
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[deprecated(msg)]]
# endif
# endif
# if defined(__cplusplus) && __cplusplus >= 201103L && !defined(__SUNPRO_CC) && defined(__has_cpp_attribute) && !defined(Q_MOC_RUN) && !defined(LIBATTRIBUTES_DEPRECATED_MSG)
# if __has_cpp_attribute(gnu::deprecated)
# define LIBATTRIBUTES_DEPRECATED_MSG(msg) [[gnu::deprecated(msg)]]
# endif
# endif
# ifndef LIBATTRIBUTES_DEPRECATED_MSG
# define LIBATTRIBUTES_DEPRECATED_MSG(msg)
# endif
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_NO_EXPORT LIBATTRIBUTES_DEPRECATED
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT LIBATTRIBUTES_DEPRECATED LIBATTRIBUTES_NO_EXPORT
#endif
#ifndef LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG
# define LIBATTRIBUTES_DEPRECATED_NO_EXPORT_MSG(msg) LIBATTRIBUTES_DEPRECATED_MSG(msg) LIBATTRIBUTES_NO_EXPORT
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
@@ -25,14 +25,26 @@
# define LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_MSG
# define LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT_MSG
# define LIBSHARED_DEPRECATED_EXPORT_MSG(msg) LIBSHARED_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT_MSG
# define LIBSHARED_DEPRECATED_NO_EXPORT_MSG(msg) LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
@@ -25,14 +25,26 @@
# define LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_MSG
# define LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT
# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_EXPORT_MSG(msg) LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED
#endif
#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT_MSG
# define LIBSTATIC_DEPRECATED_NO_EXPORT_MSG(msg) LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED_MSG(msg)
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSTATIC_NO_DEPRECATED