Commit 648ed65b authored by Olivier Aubert's avatar Olivier Aubert

python bindings: setup.py, workaround vlc-config 'peculiarities'

parent 70813a4c
...@@ -13,6 +13,23 @@ if not top_builddir: ...@@ -13,6 +13,23 @@ if not top_builddir:
top_builddir = os.path.join( '..', '..' ) top_builddir = os.path.join( '..', '..' )
os.environ['top_builddir'] = top_builddir os.environ['top_builddir'] = top_builddir
# Determine the extra link args. Normally, vlc-config should take care
# of this and return the right path values, from a development tree or
# an installed version.
libtool=False
linkargs=[]
d=os.path.join(top_builddir, 'src', '.libs')
if os.path.exists(d):
# We are in a development tree, which was compiled with libtool
libtool=True
linkargs=[ '-L' + d ]
else:
d=os.path.join(top_builddir, 'src')
# We are in a development tree, which was compiled without libtool
if os.path.exists(d):
linkargs=[ '-L' + d ]
# For out-of-tree compilations
try: try:
srcdir=os.environ['srcdir'] srcdir=os.environ['srcdir']
except KeyError: except KeyError:
...@@ -59,10 +76,14 @@ def get_ldflags(): ...@@ -59,10 +76,14 @@ def get_ldflags():
ldflags = [] ldflags = []
if os.sys.platform == 'darwin': if os.sys.platform == 'darwin':
ldflags = "-read_only_relocs warning".split() ldflags = "-read_only_relocs warning".split()
ldflags.extend(os.popen('%s --libs vlc external' % vlcconfig, ldflags.extend(os.popen('%s --libs external' % vlcconfig,
'r').readline().rstrip().split()) 'r').readline().rstrip().split())
if os.sys.platform == 'darwin': if os.sys.platform == 'darwin':
ldflags.append('-lstdc++') ldflags.append('-lstdc++')
if not libtool:
# vlc-config is broken and gives a -lvlc-control which
# does not exist if libtool is disabled.
ldflags.remove('-lvlc-control')
return ldflags return ldflags
#source_files = [ 'vlc_module.c', 'vlc_mediacontrol.c', #source_files = [ 'vlc_module.c', 'vlc_mediacontrol.c',
...@@ -78,7 +99,7 @@ vlclocal = Extension('vlc', ...@@ -78,7 +99,7 @@ vlclocal = Extension('vlc',
'/usr/win32/include' ], '/usr/win32/include' ],
extra_objects = [ ], extra_objects = [ ],
extra_compile_args = get_cflags(), extra_compile_args = get_cflags(),
extra_link_args = [ '-L' + os.path.join(top_builddir, 'src', '.libs') ] + get_ldflags(), extra_link_args = linkargs + get_ldflags(),
) )
setup (name = 'VLC Bindings', setup (name = 'VLC Bindings',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment