X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=gst%2Fgstconfig.h.in;h=7be1b194afdced1285fa0a12e66c1e38e5dd0829;hb=92b38d2a001d6a3d4be154cd541589c66b3c92e1;hp=8a951fb2a7073dd785bd78b6329896702069d43f;hpb=48088867db20094c8aafc7f50ce1bc0d8c633df5;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in index 8a951fb..7be1b19 100644 --- a/gst/gstconfig.h.in +++ b/gst/gstconfig.h.in @@ -55,11 +55,8 @@ #if 0 #define GST_DISABLE_GST_DEBUG 1 #define GST_DISABLE_PARSE 1 -#define GST_DISABLE_TRACE 1 -#define GST_DISABLE_ALLOC_TRACE 1 #define GST_DISABLE_REGISTRY 1 #define GST_DISABLE_PLUGIN 1 -#define GST_HAVE_GLIB_2_8 1 #endif /***** default padding of structures *****/ @@ -86,36 +83,56 @@ @GST_DISABLE_PARSE_DEFINE@ /** - * GST_DISABLE_TRACE: + * GST_DISABLE_REGISTRY: * - * Configures the inclusion of a resource tracing facility - * (seems to be unused) + * Configures the use of the plugin registry. + * If one disables this, required plugins need to be loaded and registered + * manually */ -@GST_DISABLE_TRACE_DEFINE@ +@GST_DISABLE_REGISTRY_DEFINE@ /** - * GST_DISABLE_ALLOC_TRACE: + * GST_DISABLE_CAST_CHECKS: * - * Configures the use of a memory tracer based on the resource tracer - * if TRACE is disabled, ALLOC_TRACE is disabled as well + * Disable run-time GObject cast checks */ -@GST_DISABLE_ALLOC_TRACE_DEFINE@ +#define GST_DISABLE_CAST_CHECKS @GST_DISABLE_CAST_CHECKS_DEFINE@ /** - * GST_DISABLE_REGISTRY: + * GST_DISABLE_GLIB_ASSERTS: * - * Configures the use of the plugin registry. - * If one disables this, required plugins need to be loaded and registered - * manually + * Disable GLib assertion */ -@GST_DISABLE_REGISTRY_DEFINE@ +#define GST_DISABLE_GLIB_ASSERTS @GST_DISABLE_GLIB_ASSERTS_DEFINE@ + +/** + * GST_DISABLE_GLIB_CHECKS: + * + * Disable GLib checks such as API guards + */ +#define GST_DISABLE_GLIB_CHECKS @GST_DISABLE_GLIB_CHECKS_DEFINE@ + /* FIXME: test and document these! */ /* Configures the use of external plugins */ @GST_DISABLE_PLUGIN_DEFINE@ -/* whether or not the CPU supports unaligned access */ -@GST_HAVE_UNALIGNED_ACCESS_DEFINE@ +/* Whether or not the CPU supports unaligned access + * The macros used are defined consistently by GCC, Clang, MSVC, Sun, and ICC + * + * References: + * https://sourceforge.net/p/predef/wiki/Architectures/ + * https://msdn.microsoft.com/en-us/library/b0084kay.aspx + * http://docs.oracle.com/cd/E19205-01/820-4155/c++_faq.html#Vers6 + * https://software.intel.com/en-us/node/583402 + */ +#if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__) || defined(__riscv) +# define GST_HAVE_UNALIGNED_ACCESS 0 +#elif defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__m68k__) || defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) +# define GST_HAVE_UNALIGNED_ACCESS 1 +#else +# error "Could not detect architecture; don't know whether it supports unaligned access! Please file a bug." +#endif /** * GST_EXPORT: @@ -133,26 +150,57 @@ * On Windows, this exports the plugin definition from the DLL. * On other platforms, this gets defined as a no-op. */ -/* Macro _WIN32 is defined on 32-bit and 64-bit Windows; by both GCC and MSVC +/* Only use __declspec(dllexport/import) when we have been built with MSVC or + * the user is linking to us with MSVC. The only remaining case is when we were + * built with MinGW and are linking with MinGW in which case we rely on the + * linker to auto-export/import symbols. Of course all this is only used when + * not linking statically. * - * NOTE: To link to Windows statically on Windows, you must define + * NOTE: To link to GStreamer statically on Windows, you must define * GST_STATIC_COMPILATION or the prototypes will cause the compiler to search - * for the symbol inside a DLL + * for the symbol inside a DLL. */ -#if defined(_WIN32) && !defined(GST_STATIC_COMPILATION) -# define GST_PLUGIN_EXPORT __declspec(dllexport) extern +#if (@GSTCONFIG_BUILT_WITH_MSVC@ || defined(_MSC_VER)) && !defined(GST_STATIC_COMPILATION) +# define GST_PLUGIN_EXPORT __declspec(dllexport) # ifdef GST_EXPORTS -# define GST_EXPORT __declspec(dllexport) extern +# define GST_EXPORT __declspec(dllexport) # else # define GST_EXPORT __declspec(dllimport) extern # endif -#else /* !_WIN32 */ -# define GST_PLUGIN_EXPORT -# if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +#else +# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +# define GST_PLUGIN_EXPORT __attribute__ ((visibility ("default"))) # define GST_EXPORT extern __attribute__ ((visibility ("default"))) # else +# define GST_PLUGIN_EXPORT # define GST_EXPORT extern # endif #endif +#if defined(_MSC_VER) && !defined(GST_STATIC_COMPILATION) +# define GST_API_IMPORT __declspec(dllimport) extern +#else +# define GST_API_IMPORT extern +#endif + +#ifndef GST_API +# ifdef BUILDING_GST +# define GST_API GST_API_EXPORT /* from config.h */ +# else +# define GST_API GST_API_IMPORT +# endif +#endif + +/* These macros are used to mark deprecated functions in GStreamer headers, + * and thus have to be exposed in installed headers. But please + * do *not* use them in other projects. Instead, use G_DEPRECATED + * or define your own wrappers around it. */ +#ifndef GST_DISABLE_DEPRECATED +#define GST_DEPRECATED GST_API +#define GST_DEPRECATED_FOR(f) GST_API +#else +#define GST_DEPRECATED G_DEPRECATED GST_API +#define GST_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) GST_API +#endif + #endif /* __GST_CONFIG_H__ */