dust3d/thirdparty/cgal/CGAL-5.1/include/CGAL/internal/deprecation_warning.h

102 lines
3.9 KiB
C

// Copyright (c) 2011 GeometryFactory (France). All rights reserved.
// All rights reserved.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is part of CGAL (www.cgal.org)
//
// $URL: https://github.com/CGAL/cgal/blob/v5.1/Installation/include/CGAL/internal/deprecation_warning.h $
// $Id: deprecation_warning.h 52164b1 2019-10-19T15:34:59+02:00 Sébastien Loriot
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
//
// Author(s) : Philipp Möller, Mael Rouxel-Labbé
// Including this header will cause compilation to fail
// if CGAL_NO_DEPRECATED_CODE is defined. If this is not the case, it will issue
// a warning during compilation, unless CGAL_NO_DEPRECATION_WARNINGS is defined.
// CGAL_DEPRECATED_HEADER, CGAL_REPLACEMENT_HEADER, and
// CGAL_DEPRECATED_MESSAGE_DETAILS can be defined
// to a string literal to customize the warning.
// CGAL_DEPRECATED_HEADER, CGAL_REPLACEMENT_HEADER, and
// CGAL_DEPRECATED_MESSAGE_DETAILS are undefined after the file is included.
// The lack of an include guard is intentional and necessary.
#include <CGAL/assertions.h>
// whether to print Warning or Error
#if defined(CGAL_NO_DEPRECATED_CODE)
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_STATUS "Error: "
# define CGAL_INTERNAL_NO_DEPRECATED_CODE_MESSAGE " and CGAL_NO_DEPRECATED_CODE is defined."
#else
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_STATUS "Warning: "
# define CGAL_INTERNAL_NO_DEPRECATED_CODE_MESSAGE "."
#endif
// if the name of the deprecated header is given, print it
#if defined(CGAL_DEPRECATED_HEADER)
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_DEPRECATED_HEADER \
"The header `" CGAL_DEPRECATED_HEADER "` is deprecated"
#else
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_DEPRECATED_HEADER \
"A deprecated header has been included"
#endif
// if a replacement header is given, print it
#if defined(CGAL_REPLACEMENT_HEADER)
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_HEADERS \
CGAL_INTERNAL_DEPRECATED_MESSAGE_DEPRECATED_HEADER \
CGAL_INTERNAL_NO_DEPRECATED_CODE_MESSAGE \
" Please use `" CGAL_REPLACEMENT_HEADER "` instead. "
#else
# define CGAL_INTERNAL_DEPRECATED_MESSAGE_HEADERS \
CGAL_INTERNAL_DEPRECATED_MESSAGE_DEPRECATED_HEADER \
CGAL_INTERNAL_NO_DEPRECATED_CODE_MESSAGE " "
#endif
// if more details are given, print them
#if defined(CGAL_DEPRECATED_MESSAGE_DETAILS)
# define CGAL_INTERNAL_DEPRECATED_MESSAGE \
CGAL_INTERNAL_DEPRECATED_MESSAGE_STATUS \
CGAL_INTERNAL_DEPRECATED_MESSAGE_HEADERS \
"Additional information: "\
CGAL_DEPRECATED_MESSAGE_DETAILS
#else
# define CGAL_INTERNAL_DEPRECATED_MESSAGE \
CGAL_INTERNAL_DEPRECATED_MESSAGE_STATUS \
CGAL_INTERNAL_DEPRECATED_MESSAGE_HEADERS
#endif
#if defined(CGAL_NO_DEPRECATED_CODE) // No deprecated code.
CGAL_static_assertion_msg(false, CGAL_INTERNAL_DEPRECATED_MESSAGE);
#elif !defined(CGAL_NO_DEPRECATION_WARNINGS) // don't trigger on NO_DEPRECATION_WARNINGS
# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
# pragma message (CGAL_INTERNAL_DEPRECATED_MESSAGE)
# elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
// warning does not expand its arguments, issue a warning and add the message.
# warning "A deprecated header has been included."
# pragma message (CGAL_INTERNAL_DEPRECATED_MESSAGE)
# endif //defined
#endif
// those macros have been defined in all cases
#undef CGAL_INTERNAL_DEPRECATED_MESSAGE_STATUS
#undef CGAL_INTERNAL_DEPRECATED_MESSAGE_DEPRECATED_HEADER
#undef CGAL_INTERNAL_DEPRECATED_MESSAGE_HEADERS
#undef CGAL_INTERNAL_DEPRECATED_MESSAGE
#if defined(CGAL_DEPRECATED_MESSAGE_DETAILS)
# undef CGAL_DEPRECATED_MESSAGE_DETAILS
#endif
#if defined(CGAL_DEPRECATED_HEADER)
# undef CGAL_DEPRECATED_HEADER
#endif
#if defined(CGAL_REPLACEMENT_HEADER)
# undef CGAL_REPLACEMENT_HEADER
#endif