libs: fix API export/import and 'inconsistent linkage' on MSVC
[platform/upstream/gstreamer.git] / gst-libs / gst / gl / Makefile.am
1
2 lib_LTLIBRARIES = libgstgl-@GST_API_VERSION@.la
3
4 SUBDIRS = glprototypes
5 DIST_SUBDIRS = glprototypes android x11 win32 cocoa wayland dispmanx egl eagl viv-fb gbm
6
7 built_sys_header_configure = gstglconfig.h
8
9 libgstgl_@GST_API_VERSION@_la_SOURCES = \
10         gstgldisplay.c \
11         gstglcontext.c \
12         gstgldebug.c \
13         gstglbasememory.c \
14         gstglbuffer.c \
15         gstglmemory.c \
16         gstglmemorypbo.c \
17         gstglrenderbuffer.c \
18         gstglbufferpool.c \
19         gstglfilter.c \
20         gstglformat.c \
21         gstglbasefilter.c \
22         gstglshader.c \
23         gstglshaderstrings.c \
24         gstglsl.c \
25         gstglslstage.c \
26         gstglcolorconvert.c \
27         gstglupload.c \
28         gstglwindow.c \
29         gstglapi.c \
30         gstglfeature.c \
31         gstglutils.c \
32         gstglframebuffer.c \
33         gstglsyncmeta.c \
34         gstglviewconvert.c \
35         gstgloverlaycompositor.c \
36         gstglquery.c
37
38 libgstgl_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/gl
39
40 gstgl_headers = \
41         gstglwindow.h \
42         gstgldisplay.h \
43         gstglcontext.h \
44         gstgldebug.h \
45         gstglbasememory.h \
46         gstglbuffer.h \
47         gstglmemory.h \
48         gstglmemorypbo.h \
49         gstglrenderbuffer.h \
50         gstglbufferpool.h \
51         gstglfilter.h \
52         gstglformat.h \
53         gstglbasefilter.h \
54         gstglshader.h \
55         gstglshaderstrings.h \
56         gstglsl.h \
57         gstglslstage.h \
58         gstglcolorconvert.h \
59         gstglupload.h \
60         gstglapi.h \
61         gstglfeature.h \
62         gstglutils.h \
63         gstglframebuffer.h \
64         gstglsyncmeta.h \
65         gstglviewconvert.h \
66         gstgloverlaycompositor.h \
67         gstglquery.h \
68         gstgl_fwd.h \
69         gstgl_enums.h \
70         gl-prelude.h \
71         gl.h
72
73 libgstgl_@GST_API_VERSION@include_HEADERS = \
74         gstglfuncs.h \
75         $(gstgl_headers)
76
77 noinst_HEADERS = \
78         gstglcontext_private.h \
79         gstglfeature_private.h \
80         gstglsl_private.h \
81         gstglwindow_private.h \
82         gstglutils_private.h \
83         utils/opengl_versions.h \
84         utils/gles_versions.h
85
86
87 libgstgl_@GST_API_VERSION@_la_LIBADD = \
88         $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
89         $(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
90         $(GMODULE_NO_EXPORT_LIBS) \
91         $(GST_BASE_LIBS) \
92         $(GST_LIBS) \
93         $(GL_LIBS)
94
95 gstgl_gir_headers = $(gstgl_headers)
96 gstgl_gir_sources = $(libgstgl_@GST_API_VERSION@_la_SOURCES)
97
98 if HAVE_WINDOW_WIN32
99 SUBDIRS += win32
100 libgstgl_@GST_API_VERSION@_la_LIBADD += win32/libgstgl-win32.la
101 endif
102
103 if HAVE_WINDOW_COCOA
104 SUBDIRS += cocoa
105 libgstgl_@GST_API_VERSION@_la_LIBADD += cocoa/libgstgl-cocoa.la
106 endif
107
108 if HAVE_WINDOW_X11
109 SUBDIRS += x11
110 libgstgl_@GST_API_VERSION@_la_LIBADD += x11/libgstgl-x11.la
111 gstgl_gir_headers += x11/gstgldisplay_x11.h
112 gstgl_gir_sources += x11/gstgldisplay_x11.c
113 endif
114
115 if HAVE_WINDOW_WAYLAND
116 SUBDIRS += wayland
117 libgstgl_@GST_API_VERSION@_la_LIBADD += wayland/libgstgl-wayland.la
118 gstgl_gir_headers += wayland/gstgldisplay_wayland.h
119 gstgl_gir_sources += wayland/gstgldisplay_wayland.c
120 endif
121
122 if HAVE_WINDOW_DISPMANX
123 SUBDIRS += dispmanx
124 libgstgl_@GST_API_VERSION@_la_LIBADD += dispmanx/libgstgl-dispmanx.la
125 endif
126
127 if HAVE_WINDOW_ANDROID
128 SUBDIRS += android
129 libgstgl_@GST_API_VERSION@_la_LIBADD += android/libgstgl-android.la
130 endif
131
132 if HAVE_WINDOW_EAGL
133 SUBDIRS += eagl
134 libgstgl_@GST_API_VERSION@_la_LIBADD += eagl/libgstgl-eagl.la
135 endif
136
137 if HAVE_WINDOW_VIV_FB
138 SUBDIRS += viv-fb
139 libgstgl_@GST_API_VERSION@_la_LIBADD += viv-fb/libgstgl-viv-fb.la
140 endif
141
142 if HAVE_WINDOW_GBM
143 SUBDIRS += gbm
144 libgstgl_@GST_API_VERSION@_la_LIBADD += gbm/libgstgl-gbm.la
145 endif
146
147 if USE_EGL
148 SUBDIRS += egl
149 libgstgl_@GST_API_VERSION@_la_LIBADD += egl/libgstgl-egl.la
150 gstgl_gir_headers += egl/gstgldisplay_egl.h
151 gstgl_gir_sources += egl/gstgldisplay_egl.c
152 endif
153
154 configexecincludedir = $(libdir)/gstreamer-@GST_API_VERSION@/include/gst/gl
155 nodist_configexecinclude_HEADERS = $(built_sys_header_configure)
156
157 libgstgl_@GST_API_VERSION@_la_CFLAGS = \
158         -DBUILDING_GST_GL \
159         $(GST_PLUGINS_BASE_CFLAGS) \
160         $(GST_BASE_CFLAGS) \
161         $(GST_CFLAGS) \
162         $(GL_CFLAGS)
163
164 libgstgl_@GST_API_VERSION@_la_LDFLAGS = \
165         $(GST_LIB_LDFLAGS) \
166         $(GST_ALL_LDFLAGS) \
167         $(GST_LT_LDFLAGS)
168
169 # DISTCLEANFILES is for files generated by configure
170 DISTCLEANFILES = $(built_sys_header_configure)
171
172 if HAVE_INTROSPECTION
173 BUILT_GIRSOURCES = GstGL-@GST_API_VERSION@.gir
174
175 gir_headers=$(patsubst %,$(srcdir)/%, $(gstgl_gir_headers))
176 gir_sources=$(patsubst %,$(srcdir)/%, $(gstgl_gir_sources))
177
178 GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@.la
179         $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
180                 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
181                 CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
182                 $(INTROSPECTION_SCANNER) -v --namespace GstGL \
183                 --nsversion=@GST_API_VERSION@ \
184                 --identifier-prefix=Gst \
185                 --symbol-prefix=gst \
186                 --warn-all \
187                 --c-include "gst/gl/gl.h" \
188                 -I$(top_srcdir)/gst-libs \
189                 -I$(top_builddir)/gst-libs \
190                 $(GST_PLUGINS_BASE_CFLAGS) \
191                 $(GL_CFLAGS) \
192                 --add-include-path="$(top_builddir)/gst-libs/gst/video/" \
193                 --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
194                 --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
195                 --library-path="$(top_builddir)/gst-libs/gst/video/" \
196                 --library=libgstgl-@GST_API_VERSION@.la \
197                 --include=Gst-@GST_API_VERSION@ \
198                 --include=GstBase-@GST_API_VERSION@ \
199                 --include=GstVideo-@GST_API_VERSION@ \
200                 --libtool="${LIBTOOL}" \
201                 --pkg gstreamer-@GST_API_VERSION@ \
202                 --pkg gstreamer-base-@GST_API_VERSION@ \
203                 --pkg gstreamer-video-@GST_API_VERSION@ \
204                 --pkg-export gstreamer-gl-@GST_API_VERSION@ \
205                 --add-init-section="$(INTROSPECTION_INIT)" \
206                 --output $@ \
207                 $(gir_headers) \
208                 $(gir_sources)
209
210 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
211 # install anything - we need to install inside our prefix.
212 girdir = $(datadir)/gir-1.0
213 gir_DATA = $(BUILT_GIRSOURCES)
214
215 typelibsdir = $(libdir)/girepository-1.0/
216
217 typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
218
219 %.typelib: %.gir $(INTROSPECTION_COMPILER)
220         $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
221                 $(INTROSPECTION_COMPILER) \
222                 --includedir=$(srcdir) \
223                 --includedir=$(builddir) \
224                 --includedir="$(top_builddir)/gst-libs/gst/video/" \
225                 --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
226                 --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
227                 $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
228
229 CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
230 endif