WIP: ges: fix API export/import and 'inconsistent linkage' on MSVC
authorTim-Philipp Müller <tim@centricular.com>
Mon, 24 Sep 2018 14:41:24 +0000 (15:41 +0100)
committerThibault Saunier <tsaunier@gnome.org>
Sat, 15 Dec 2018 00:14:51 +0000 (00:14 +0000)
Export GES library API in headers when we're building the
library itself, otherwise import the API from the headers.

This fixes linker warnings on Windows when building with MSVC.

Fix up some missing config.h includes when building the lib which
is needed to get the export api define from config.h

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/42

65 files changed:
configure.ac
ges/Makefile.am
ges/ges-asset.c
ges/ges-audio-source.c
ges/ges-audio-test-source.c
ges/ges-audio-track.c
ges/ges-audio-transition.c
ges/ges-audio-uri-source.c
ges/ges-auto-transition.c
ges/ges-base-effect-clip.c
ges/ges-base-effect.c
ges/ges-base-transition-clip.c
ges/ges-base-xml-formatter.c
ges/ges-clip-asset.c
ges/ges-clip.c
ges/ges-command-line-formatter.c
ges/ges-container.c
ges/ges-effect-asset.c
ges/ges-effect-clip.c
ges/ges-effect.c
ges/ges-enums.c
ges/ges-extractable.c
ges/ges-formatter.c
ges/ges-group.c
ges/ges-image-source.c
ges/ges-layer.c
ges/ges-meta-container.c
ges/ges-multi-file-source.c
ges/ges-operation-clip.c
ges/ges-operation.c
ges/ges-overlay-clip.c
ges/ges-pipeline.c
ges/ges-pitivi-formatter.c
ges/ges-prelude.h
ges/ges-project.c
ges/ges-screenshot.c
ges/ges-smart-adder.c
ges/ges-smart-video-mixer.c
ges/ges-source-clip.c
ges/ges-source.c
ges/ges-structure-parser.c
ges/ges-structured-interface.c
ges/ges-test-clip.c
ges/ges-text-overlay-clip.c
ges/ges-text-overlay.c
ges/ges-timeline-element.c
ges/ges-timeline.c
ges/ges-title-clip.c
ges/ges-title-source.c
ges/ges-track-element-asset.c
ges/ges-track-element.c
ges/ges-track.c
ges/ges-transition-clip.c
ges/ges-transition.c
ges/ges-uri-asset.c
ges/ges-uri-clip.c
ges/ges-utils.c
ges/ges-video-source.c
ges/ges-video-test-source.c
ges/ges-video-track.c
ges/ges-video-transition.c
ges/ges-video-uri-source.c
ges/ges-xml-formatter.c
ges/meson.build
meson.build

index ea89600145d7dfd1977bbefc5d1cd09016b18926..95dd7288a70180524d8a1ee884464fc4ee355e73 100644 (file)
@@ -353,7 +353,13 @@ fi
 AC_SUBST(DEPRECATED_CFLAGS)
 
 VISIBILITY_CFLAGS=""
-AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
+AS_COMPILER_FLAG([-fvisibility=hidden], [
+  VISIBILITY_CFLAGS="-fvisibility=hidden"
+  AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
+], [
+  VISIBILITY_CFLAGS=""
+  AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
+])
 AC_SUBST(VISIBILITY_CFLAGS)
 
 dnl disable strict aliasing
index dae513f768b5d4aa335c94991debcaa7cdcca706..18d2444a3c4d762d306b10415714739531d8eafb 100644 (file)
@@ -155,7 +155,7 @@ noinst_HEADERS = \
 libges_@GST_API_VERSION@_la_CFLAGS = -I$(top_srcdir) $(GST_PBUTILS_CFLAGS) \
                $(GST_VIDEO_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
                $(GST_CFLAGS) $(XML_CFLAGS) $(GIO_CFLAGS) $(GST_VALIDATE_CFLAGS) \
-               -DG_LOG_DOMAIN=\"GES\"
+               -DG_LOG_DOMAIN=\"GES\" -DBUILDING_GES
 libges_@GST_API_VERSION@_la_LIBADD = $(GST_PBUTILS_LIBS) \
                $(GST_VIDEO_LIBS) $(GST_CONTROLLER_LIBS) $(GST_PLUGINS_BASE_LIBS) \
                $(GST_BASE_LIBS) $(GST_LIBS) $(XML_LIBS) $(GIO_LIBS) $(GST_VALIDATE_LIBS)
index a7d5d303340abfdfd6331541828bdb1a60cf2ba9..9503b3ef94aec4dfd38a86b0e33cfa519c77bd9c 100644 (file)
@@ -82,6 +82,9 @@
  * ges_asset_request_async(). All the #GESAssets are cached and thus any asset that has already
  * been created can be requested again without overhead.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges.h"
 #include "ges-internal.h"
index 1588a1e4d7bf08c82121ec6166a61251d8302cd2..8997107dae296e735f32855657a1be5ff2cd3715 100644 (file)
@@ -48,6 +48,9 @@
  * </tgroup>
  * </informaltable>
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges/ges-meta-container.h"
index 03831ad0c348bb258f9be6e3cd01b95d476261cf..81627ab622ddeb19a488f569e142585a7950e7c4 100644 (file)
@@ -27,6 +27,9 @@
  * output silence. Useful for testing pipelines, or to fill gaps in an audio
  * track.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index 68bc2f723acd5221c1391c0209c76f7af94e27c4..1ac8af07c5ff10b48d177e695d9e575a483e3ccb 100644 (file)
@@ -36,6 +36,9 @@
  * - rate: 44100
  * - layout: interleaved
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-smart-adder.h"
index 10c70e2c8039cd79c03c3e5c5172c0cfdd78c65e..3a948769910dba9f88e134ee1f9e059e9d2b6431 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESAudioTransition
  * @short_description: implements audio crossfade transition
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index 11c367542a038926c860a3216ea990b7fc9fac75..755d6e0fa0f94077774e31b5ab8f2a2df1b67bcd 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESAudioUriSource
  * @short_description: outputs a single audio stream from a given file
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-utils.h"
 #include "ges-internal.h"
index 18e41cf295fff4165b7c5d79d490af42dd7d69bd..37ea759c657136c3a4a2148c3c8098a57660000f 100644 (file)
@@ -22,6 +22,9 @@
  *
  * NOTE: This is for internal use exclusively
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-auto-transition.h"
 #include "ges-internal.h"
index 18e03d18f4c5942f210fb264e880987b381d0e6c..4cf1e65be45c607e917e8800171528cf877ea7c1 100644 (file)
@@ -25,6 +25,9 @@
  * The effect will be applied on the sources that have lower priorities
  * (higher number) between the inpoint and the end of it.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index ee11d6c6806dfa90b6fb00fa85bc7d0ff7b65852..b604833c816f35544715e787fe80cf2e7e7ab1d6 100644 (file)
@@ -23,6 +23,9 @@
  * @short_description: adds an effect to a stream in a GESSourceClip or a
  * GESLayer
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <glib/gprintf.h>
 
index b2347bfccc488ef28daa6dd406761e25c2bf90b9..ac3a47cf9abe2ca3f868b60e7f452f60fa81344a 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESBaseTransitionClip
  * @short_description: Base classes for transitions
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index 414fc0c7da972f11b1eb29cfca83fa821ff7e6d6..5e1fe772e7377a94cfe8f244f5bdd58fc8b70924 100644 (file)
@@ -17,6 +17,9 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges.h"
 #include "ges-internal.h"
index 4561084f50fe1c3c2c2e7e12a3a10a2dae272881..e749c8af820eed501ba90b0ab25359924afa256f 100644 (file)
@@ -26,6 +26,9 @@
  * it is mostly used to get information about the #GESTrackType-s the objects extracted
  * from it can potentialy create #GESTrackElement for.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-clip-asset.h"
 
index 1393516c6b479310b1e5e6c08d672cd59e20d666..a7110a1bf74c086e80444e563193fe76072c4711 100644 (file)
@@ -31,6 +31,9 @@
  * Keeps a reference to the #GESTrackElement(s) it created and
  * sets/updates their properties.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-clip.h"
 #include "ges.h"
index 4dbc181f55b4864aec88fe00aeb696c51c09fd45..afca778684138455bc07c0cff965fbd3cce2efbc 100644 (file)
@@ -17,6 +17,9 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-command-line-formatter.h"
 
index 06f2a25200cef8fb1586945e9d18f3b1e59ed835..35abcbfdc40eb4633546684d3f72d25d92fd48a8 100644 (file)
@@ -24,6 +24,9 @@
  * @short_description: Base Class for objects responsible for controlling other
  * GESTimelineElement-s
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-container.h"
 #include "ges.h"
index b836ed573a2cf7063feec2e20581693e89e37cee..120dbf41e31d9d97f24d4538498d366399ac4b8f 100644 (file)
@@ -24,6 +24,9 @@
  * This is internal, and implementation details, so we are not showing it in the
  * documentation
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-effect-asset.h"
 #include "ges-track-element.h"
index fab03700792d351dafecc28c2315fbf7e1e5db69..f43f2f4e3746993ea6d401f72c91996f44917722 100644 (file)
@@ -26,6 +26,9 @@
  * The effect will be applied on the sources that have lower priorities
  * (higher number) between the inpoint and the end of it.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index 84ef69602165b786e61df1e4e99c758306d66b00..a2a80f4494054729d49e90348fe85c72d6f8a591 100644 (file)
@@ -23,6 +23,9 @@
  * @short_description: adds an effect build from a parse-launch style
  * bin description to a stream in a GESSourceClip or a GESLayer
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-extractable.h"
index 440657ea495985f2375c801de62f57d117ec5674..c4072ff46b6ea0017f7d5aad11236af68a88d4ca 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GES Enumerations
  * @short_description: Various enums for the Gstreamer Editing Services
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-enums.h"
 #include "ges-internal.h"
index 77f56d67b5fc72bb2c924a946d1109f1014167b6..9d7d3f1349e3cba5ccf3499a6276baafb67e7b18 100644 (file)
  *
  * FIXME: Long description needed
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "ges-asset.h"
 #include "ges-internal.h"
 #include "ges-extractable.h"
index 5ff9f04eca84ff9819c9cdf4de258291fbd27267..2bc22e25f657fc473d05095a04d845a875750b1c 100644 (file)
@@ -24,6 +24,9 @@
  * @short_description: Timeline saving and loading.
  *
  **/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/gst.h>
 #include <gio/gio.h>
index f6762690d53ec22911be8366a160b5a5033bcadd..a0fb24edb7c6c8c2e390c320559c5d88aa56d8a7 100644 (file)
@@ -31,6 +31,9 @@
  * should be instaciated to group the various #GESTimelineElement passed
  * in parametter.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-group.h"
 #include "ges.h"
index 54ebcb44a3c46eab64043c63da26a1bb76847e58..b4c3eb4eba00f436b76f599a7d223cc9807af52e 100644 (file)
@@ -28,6 +28,9 @@
  * chosen will be determined by the in-point property on the track element. For
  * image files, do not set the in-point property.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index fcc036c7df77e098809d319f25f4318cff36d76a..ad33c02139a80bb15bfeabc61c4f13761fbe9486 100644 (file)
@@ -30,6 +30,9 @@
  * priorities of individual Clips. Two layers should not have the
  * same priority within a given timeline.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-layer.h"
index 883eb98ec843ba60d97fa602a0d109a9ca742c26..e9a352217ba63bfaf7b52acf00f3e103ef456f4b 100644 (file)
@@ -17,6 +17,9 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <glib-object.h>
 #include <gst/gst.h>
index ce9e19df4dc1ff1b8c82b9c5152a459d94896811..f6b6c4b48e8c5bb708d4e3e0a86cbe77d11fac54 100644 (file)
  * Outputs the video stream from a given image sequence. The start frame
  * chosen will be determined by the in-point property on the track element.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <stdlib.h>
 #include <string.h>
 #include "ges-internal.h"
index 9b8116890dedbdc541bc42001595f75cc261f083..d8be92dc97a868be5b040c03dc2346958ddb3a0f 100644 (file)
@@ -25,6 +25,9 @@
  *
  * Operations are any kind of object that both outputs AND consumes data.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges.h"
 #include "ges-internal.h"
index 6bf10cd4528a12cd07776ceade93c4fd62ec5668..15a7102f14cc41dfe152e0925012fed456e33b19 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESOperation
  * @short_description: Base Class for effects and overlays
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index 51e0488c7d766714e3108060b1f9f9b3dd2ee02d..8ab9695b925f06d19aecd1109a9af0e3ffc57f8a 100644 (file)
@@ -30,6 +30,9 @@
  * Transitions, which change from one source to another over time, are
  * not considered overlays.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-operation-clip.h"
index 9dda9307c3397d332d092b8961e03218402d4f66..de68b581789e5f3b8324368f225459ef42f152db 100644 (file)
@@ -27,6 +27,9 @@
  * in a simple fashion.
  * Its usage is inspired by the 'playbin' element from gst-plugins-base.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/gst.h>
 #include <gst/video/videooverlay.h>
index 76cdda06745588ab1b49efa9dd6314accea3ce46..38fd0a278c273d73d1101b4ce66e4c0beea50f48 100644 (file)
  *
  * Deprecated: 1.0
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#undef VERSION
+#endif
 
 #include <libxml/xmlreader.h>
 #include <libxml/tree.h>
@@ -41,7 +45,7 @@
 #include <ges/ges.h>
 
 /* The Pitivi etree formatter is 0.1 we set GES one to 0.2 */
-#define VERSION "0.2"
+//#define VERSION "0.2"
 #define DOUBLE_VERSION 0.2
 
 #undef GST_CAT_DEFAULT
index fc6c9400b54dd666ab7ee7b0dc4aefabcd6b9d4c..ccfff57eb4ac84c3e2de7f808e091464a8a5b4d0 100644 (file)
 #include <gst/gst.h>
 
 #ifndef GES_API
-#define GES_API GST_EXPORT
+# ifdef BUILDING_GES
+#  define GES_API GST_API_EXPORT         /* from config.h */
+# else
+#  define GES_API GST_API_IMPORT
+# endif
 #endif
 
 #endif /* __GST_GES_PRELUDE_H__ */
index e4d9f20d13310b318e89215b830d1dc1f073184d..4ad62817f45093215419f4c2581a7b394b31eccc 100644 (file)
  * a set of signals. Also it handles problem such as missing files/missing
  * #GstElement and lets you try to recover from those.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "ges.h"
 #include "ges-internal.h"
 
index 755aae76b267054acadcec5c53500f3de30751b2..1a99a5ed0a1316ec64c3f3e2a39a4589b0f9abf0 100644 (file)
@@ -17,6 +17,9 @@
  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/gst.h>
 #include <gst/video/video.h>
index 5d8b2bcc769470caf434ef9aa90d7d901cdcd197..85ea0171141b93f3a27b66d61fed7f9522966a79 100644 (file)
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.";
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <gst/audio/audio.h>
 
 #include "ges-types.h"
index 6315f416cd31261d141a870709016ce0ba55ca09..aa396518de15dc77f1d60e264c9539b43cd9dd63 100644 (file)
@@ -16,6 +16,9 @@
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.";
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "gstframepositioner.h"
 #include "ges-types.h"
index 24dd0bffcdece1b28e807385524316f187975338..21c9f9562bc18e3570d44b10e2e4bc8db512663b 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESSourceClip
  * @short_description: Base Class for sources of a GESLayer
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-clip.h"
index 90119e6b3703b065ee59a9a809ad1f27c30032a6..e70c4e5f42f2c7d34e4e96d851fa032a67852a1f 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESSource
  * @short_description: Base Class for single-media sources
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges/ges-meta-container.h"
index ae05622b62dc562b1c39add6f3cb82f91c54eb7c..bcd2a24c157d7ad0a33d0470f72f70037325fceb 100644 (file)
@@ -17,6 +17,9 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-structure-parser.h"
 
index 1e00a3dac2cc295370b7c11ccfea5ae12b743c89..cf1de50d97686069946d62714a31284594b0a94a 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "ges-structured-interface.h"
 
 #include <string.h>
index 9f2c5fb887f08abec4332987502f513de23c556d..77bd5f346fdc574a76106f51c6159ef313c91a18 100644 (file)
@@ -28,6 +28,9 @@
  * You can use the ges_asset_request_simple API to create an Asset
  * capable of extracting GESTestClip-s
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-test-clip.h"
index 57f1f3a8ef50473e4632e837b545d007e497f9b1..72d826509e9e5c02f6b4732ffe6936f1eb97373f 100644 (file)
@@ -25,6 +25,9 @@
  *
  * Renders text onto the next lower priority stream using textrender.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-text-overlay-clip.h"
index 1278a6d0d9064ac65186f404427aa62982c0b569..98d90b823a81465d250b48e0cbc1b6263532e718 100644 (file)
@@ -24,6 +24,9 @@
  * @short_description: render text onto another video stream in a GESLayer
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index fffaf5a83b452af2c7196f7f69aaeaf33e2ed39c..4a1e3522b300ae52f9c6612c31b7fe55683837b7 100644 (file)
@@ -26,6 +26,9 @@
  * as priority. A GESTimelineElement can have a parent object which will be
  * responsible for controlling its timing properties.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-utils.h"
 #include "ges-timeline-element.h"
index 4394146dd2596cb68cbc989240f4213dc365cdd7..041c29bb8723b4b664571e57594f909cbd7adeed 100644 (file)
@@ -40,6 +40,9 @@
  * Note that any change you make in the timeline will not actually be taken
  * into account until you call the #ges_timeline_commit method.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-project.h"
index 4e012a16e8b1addf986865ad6ad5252858e9eaa2..f663a227db012b6a4f6be62548b2afc39b9904df 100644 (file)
@@ -26,6 +26,9 @@
  * Renders the given text in the specified font, at specified position, and
  * with the specified background pattern.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-title-clip.h"
index 82ddaa289001b836ebcdd5177452b3d84e24806f..be4671e899d1dcd40160d1a4e62d51171d0fe16e 100644 (file)
@@ -87,6 +87,9 @@
  * </tgroup>
  * </informaltable>
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index 9e54c40125a6974c63f3c8e6a256755e41d55f9d..d6ed7a2fcc3e797a633f7531c35f2c201d2c9420 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESTrackElementAsset
  * @short_description: A GESAsset subclass specialized in GESTrackElement extraction
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-track-element-asset.h"
 
index ffc77dc552dc4042b3225b9e79f7e60744262a46..2fc2c33cc931416e5ed0e1f0049260c291ad9178 100644 (file)
  * its container, like the start position, the inpoint, the duration and the
  * priority.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "ges-internal.h"
 #include "ges-extractable.h"
 #include "ges-track-element.h"
index 534a7af63a5032a168d90aad0dff2a1a42f7fc61..b23d47ccf0e554f44b4e9f2ebbdd396d6978f09e 100644 (file)
@@ -27,6 +27,9 @@
  *
  * Contains the compatible TrackElement(s).
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track.h"
index acff2f3b2a6c4364ef661e233995399c160c1508..8a64291ea0839855241665863b804ce970b733b6 100644 (file)
@@ -36,6 +36,9 @@
  * that this value can be changed after creation and the GESExtractable.asset value
  * will be updated when needed.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index 00365645afb239fcbed943febc7e2aaa69e6b9e7..65c07e66126adc4805ee114519d9455d3ece52d8 100644 (file)
@@ -24,6 +24,9 @@
  * @short_description: base class for audio and video transitions
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index b440d77ef914d530853c302eeb37a99d95c09b4b..7a285152720a26cd694f3561ddd76b487e8e3634 100644 (file)
  * let you get information about the medias. Also, the tags found in the media file are
  * set as Metadatas of the Asser.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <errno.h>
 #include <gst/pbutils/pbutils.h>
 #include "ges.h"
index d4ae1417b9fdc720b4630673b6d471044a410725..3f8f63c538676bb0e1006a34830444c2ac1b2e2b 100644 (file)
@@ -26,6 +26,9 @@
  * Represents all the output streams from a particular uri. It is assumed that
  * the URI points to a file of some type.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-uri-clip.h"
index bd330cb05f21d7ad0034411091cb76ac59cd5c1d..adb0d0ca0433e67f031f9b07e9e55159d5d2ba83 100644 (file)
@@ -23,6 +23,9 @@
  * @short_description: Convenience methods
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <string.h>
 
index f73a8f104b19ace91f67e3b1b5f07b60f9ec62c1..4433d8877636d373a0c1e473dba00dff9762f4df 100644 (file)
@@ -77,6 +77,9 @@
  * </tgroup>
  * </informaltable>
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/pbutils/missing-plugins.h>
 
index baea99fe16a09182dcbdcb22fc54d2fcb752a560..22e04d864a7cbba5d4df2261d6314b1f1cb1c8fd 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESVideoTestSource
  * @short_description: produce solid colors and patterns
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-internal.h"
 #include "ges-track-element.h"
index 0bcf1dff9c5517c2993bb1a4916e37b85819bb4e..90fdeda8415f418981b4498a0eab4435d44ee08d 100644 (file)
@@ -22,6 +22,9 @@
  * @title: GESVideoTrack
  * @short_description: A standard GESTrack for raw video
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "ges-video-track.h"
 #include "ges-smart-video-mixer.h"
index 58af634beebe8241f455b0eb28017bca152e01af..61657357db31aff632d875b1fe7feeb2d24c58c5 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESVideoTransition
  * @short_description: implements video crossfade transition
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <ges/ges.h>
 #include "ges-internal.h"
index 7b72539bd119a987345739ef3e9b42948fbd5c8f..1939046b81193ade6ee0a6bba9c35aa967089f9f 100644 (file)
@@ -23,6 +23,9 @@
  * @title: GESVideoUriSource
  * @short_description: outputs a single video stream from a given file
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/pbutils/missing-plugins.h>
 
index 4fe7c6511b79ab30ab226b3a13146189d1f8f489..d52921293fb4ac767f4b92e63f5d46c5f2ff9bd1 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#undef VERSION
+#endif
 
 
 /* TODO Determine error codes numbers */
index d3421913cf7dab7afcab2e1b2ce0ebaef34fd669..ba89315adb040082990f957cd3c6356417ba69b1 100644 (file)
@@ -160,7 +160,7 @@ libges = library('ges-1.0', ges_sources, parser,
     version : libversion,
     soversion : soversion,
     darwin_versions : osxversion,
-    c_args : [ges_c_args],
+    c_args : [ges_c_args] + ['-DBUILDING_GES'],
     include_directories : [configinc],
     install : true,
     dependencies : libges_deps)
index 80cf650f58683d42c52f19540ffaf334c8e9a369..4dfc1124766c31f3002d5807bb0d618a40f7a708 100644 (file)
@@ -29,6 +29,9 @@ glib_req = '>= 2.40.0'
 gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
 
 cc = meson.get_compiler('c')
+
+cdata = configuration_data()
+
 # Ignore several spurious warnings for things gstreamer does very commonly
 # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it
 # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once
@@ -47,16 +50,23 @@ if cc.has_link_argument('-Wl,-Bsymbolic-functions')
 endif
 
 # Symbol visibility
-if cc.has_argument('-fvisibility=hidden')
+if cc.get_id() == 'msvc'
+  export_define = '__declspec(dllexport) extern'
+elif cc.has_argument('-fvisibility=hidden')
   add_project_arguments('-fvisibility=hidden', language: 'c')
+  export_define = 'extern __attribute__ ((visibility ("default")))'
+else
+  export_define = 'extern'
 endif
 
+# Passing this through the command line would be too messy
+cdata.set('GST_API_EXPORT', export_define)
+
 # Disable strict aliasing
 if cc.has_argument('-fno-strict-aliasing')
   add_project_arguments('-fno-strict-aliasing', language: 'c')
 endif
 
-cdata = configuration_data()
 cdata.set('VERSION', '"@0@"'.format(gst_version))
 cdata.set('PACKAGE', '"gst-editing-services"')
 cdata.set('PACKAGE_VERSION', '"@0@"'.format(gst_version))