[vlc-commits] [Git][videolan/vlc][master] 3 commits: separate defines to export DLL functions
Steve Lhomme (@robUx4)
gitlab at videolan.org
Thu Jan 12 15:09:48 UTC 2023
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
c952eb4e by Steve Lhomme at 2023-01-12T14:50:21+00:00
separate defines to export DLL functions
libvlc cannot have the VLC DLL export define set.
- - - - -
95b8f649 by Steve Lhomme at 2023-01-12T14:50:21+00:00
automake: define DLL export values
This is the proper way to export functions, regardless of our custom symbols
export file. This ensures the API definition in the headers match what happens
to the functions.
- - - - -
06dbdffa by Steve Lhomme at 2023-01-12T14:50:21+00:00
meson: define DLL export values
- - - - -
6 changed files:
- include/vlc/libvlc.h
- include/vlc_common.h
- lib/Makefile.am
- lib/meson.build
- src/Makefile.am
- src/meson.build
Changes:
=====================================
include/vlc/libvlc.h
=====================================
@@ -34,7 +34,7 @@
#ifndef VLC_LIBVLC_H
#define VLC_LIBVLC_H 1
-#if defined (_WIN32) && defined (DLL_EXPORT)
+#if defined (_WIN32) && defined (LIBVLC_DLL_EXPORT)
# define LIBVLC_API __declspec(dllexport)
#elif defined (__GNUC__) && (__GNUC__ >= 4)
# define LIBVLC_API __attribute__((visibility("default")))
=====================================
include/vlc_common.h
=====================================
@@ -319,7 +319,7 @@
# define VLC_EXTERN
#endif
-#if defined (_WIN32) && defined (DLL_EXPORT)
+#if defined (_WIN32) && defined (VLC_DLL_EXPORT)
# define VLC_EXPORT __declspec(dllexport)
#elif defined (__GNUC__)
# define VLC_EXPORT __attribute__((visibility("default")))
=====================================
lib/Makefile.am
=====================================
@@ -68,9 +68,13 @@ libvlc_la_LDFLAGS = \
-version-number @LIBVLC_ABI_MAJOR@:@LIBVLC_ABI_MINOR@:@LIBVLC_ABI_MICRO@ \
-export-symbols $(srcdir)/libvlc.sym
libvlc_la_DEPENDENCIES = libvlc.sym
+libvlc_la_CPPFLAGS = $(AM_CPPFLAGS)
if HAVE_WIN32
libvlc_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT)
libvlc_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version -Wc,-static
+if HAVE_DYNAMIC_PLUGINS
+libvlc_la_CPPFLAGS += -DLIBVLC_DLL_EXPORT
+endif
endif
if HAVE_OS2
libvlc_la_LDFLAGS += -avoid-version
=====================================
lib/meson.build
=====================================
@@ -18,9 +18,15 @@ libvlc_sources = [
'picture.c'
]
+libvlc_cargs = []
+if host_system == 'windows'
+ libvlc_cargs += ['-DLIBVLC_DLL_EXPORT']
+endif
+
libvlc = library('vlc',
libvlc_sources, rev_target,
include_directories: [vlc_include_dirs],
+ c_args: libvlc_cargs,
link_with: [vlc_libcompat],
dependencies: [libvlccore_dep, m_lib, threads_dep],
install: true
=====================================
src/Makefile.am
=====================================
@@ -194,6 +194,9 @@ AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
AM_CFLAGS = $(CFLAGS_libvlccore)
if HAVE_DYNAMIC_PLUGINS
AM_CPPFLAGS += -DHAVE_DYNAMIC_PLUGINS
+if HAVE_WIN32
+AM_CPPFLAGS += -DVLC_DLL_EXPORT
+endif
endif
if HAVE_DBUS
AM_CPPFLAGS += -DHAVE_DBUS
=====================================
src/meson.build
=====================================
@@ -35,6 +35,8 @@ libvlccore_deps = [
m_lib, dl_lib, threads_dep, intl_dep, socket_libs, iconv_dep, anl_lib, idn_dep
]
+vlccore_cargs = [ '-DMODULE_STRING="core"', '-DHAVE_DYNAMIC_PLUGINS' ]
+
if host_system == 'darwin'
libvlccore_deps += foundation_dep
libvlccore_deps += corefoundation_dep
@@ -43,6 +45,7 @@ elif host_system == 'windows'
libvlccore_deps += cc.find_library('bcrypt')
libvlccore_deps += cc.find_library('winmm')
libvlccore_deps += cc.find_library('normaliz')
+ vlccore_cargs += ['-DVLC_DLL_EXPORT']
endif
#
@@ -338,7 +341,7 @@ libvlccore = library(
libvlccore_sources, vlc_about, fourcc, rev_target,
include_directories: vlc_include_dirs,
version: '9.0.0',
- c_args: ['-DMODULE_STRING="core"', '-DHAVE_DYNAMIC_PLUGINS' ],
+ c_args: vlccore_cargs,
link_args: libvlccore_link_args,
link_with: [vlc_libcompat],
dependencies: libvlccore_deps,
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/9ace50899bda9f4a2faf7dc01e7e9c067c874572...06dbdffa96e95e6e019f1e1c6a3a70f61cdecad5
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/9ace50899bda9f4a2faf7dc01e7e9c067c874572...06dbdffa96e95e6e019f1e1c6a3a70f61cdecad5
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list