Files
CMake/Tests/RunCMake/GenerateExportHeader/reference/Cygwin/libshared_export.h
Corentin Damman 1e19936320 GenerateExportHeader: Fix Clang support on Windows
When using Clang with Visual Studio, the GenerateExportHeader function
generates the DEPRECATED definition "__attribute__ ((__deprecated__))",
because Clang can compile such instruction. However, if a user wants to compile
the library with this generated header with MSVC, the declaration is not valid.

We suggest to always use the DEPRECATED definition "__declspec(deprecated)" on
Windows, which is valid for both Clang and MSVC.
2023-02-23 09:19:06 +01:00

43 lines
1007 B
C

#ifndef LIBSHARED_EXPORT_H
#define LIBSHARED_EXPORT_H
#ifdef LIBSHARED_STATIC_DEFINE
# define LIBSHARED_EXPORT
# define LIBSHARED_NO_EXPORT
#else
# ifndef LIBSHARED_EXPORT
# ifdef libshared_EXPORTS
/* We are building this library */
# define LIBSHARED_EXPORT __declspec(dllexport)
# else
/* We are using this library */
# define LIBSHARED_EXPORT __declspec(dllimport)
# endif
# endif
# ifndef LIBSHARED_NO_EXPORT
# define LIBSHARED_NO_EXPORT
# endif
#endif
#ifndef LIBSHARED_DEPRECATED
# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef LIBSHARED_DEPRECATED_EXPORT
# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
#endif
#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED
#endif
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef LIBSHARED_NO_DEPRECATED
# define LIBSHARED_NO_DEPRECATED
# endif
#endif
#endif /* LIBSHARED_EXPORT_H */