Commit bd13aca6 authored by Olivier Aubert's avatar Olivier Aubert

python bindings: fix setup.py to use 'pkg-config libvlc' instead of the old...

python bindings: fix setup.py to use 'pkg-config libvlc' instead of the old vlc-config (patch by <kwizart@gmail.com>).
parent 12fcf703
from distutils.core import setup, Extension from distutils.core import setup, Extension
import os import os
import commands
# Get build variables (buildir, srcdir) # Get build variables (buildir, srcdir)
top_builddir = os.path.join( '..', '..' ) top_builddir = os.path.join( '..', '..' )
...@@ -31,8 +32,11 @@ def get_vlcconfig(): ...@@ -31,8 +32,11 @@ def get_vlcconfig():
if os.path.exists(n): if os.path.exists(n):
vlcconfig=n vlcconfig=n
break break
status, output = commands.getstatusoutput('pkg-config libvlc --exists')
if status == 0:
vlcconfig="pkg-config libvlc"
if vlcconfig is None: if vlcconfig is None:
print "*** Warning *** Cannot find vlc-config" print "*** Warning *** Cannot find vlc-config. Will try sane defaults."
elif os.sys.platform == 'win32': elif os.sys.platform == 'win32':
# Win32 does not know how to invoke the shell itself. # Win32 does not know how to invoke the shell itself.
vlcconfig="sh %s" % vlcconfig vlcconfig="sh %s" % vlcconfig
...@@ -43,15 +47,15 @@ def get_vlc_version(): ...@@ -43,15 +47,15 @@ def get_vlc_version():
if vlcconfig is None: if vlcconfig is None:
return "" return ""
else: else:
version=os.popen('%s --version' % vlcconfig, 'r').readline().strip() version=os.popen('%s --modversion' % vlcconfig, 'r').readline().strip()
return version return version
def get_cflags(): def get_cflags():
vlcconfig=get_vlcconfig() vlcconfig=get_vlcconfig()
if vlcconfig is None: if vlcconfig is None:
return [] return []
else: else:
cflags=os.popen('%s --cflags vlc' % vlcconfig, 'r').readline().rstrip().split() cflags=os.popen('%s --cflags ' % vlcconfig, 'r').readline().strip()
return cflags return cflags
def get_ldflags(): def get_ldflags():
...@@ -62,14 +66,10 @@ def get_ldflags(): ...@@ -62,14 +66,10 @@ 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 external' % vlcconfig, ldflags.extend(os.popen('%s --libs ' % 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 which
# does not exist if libtool is disabled.
ldflags.remove('-lvlc')
return ldflags return ldflags
#source_files = [ 'vlc_module.c', 'vlc_mediacontrol.c', #source_files = [ 'vlc_module.c', 'vlc_mediacontrol.c',
...@@ -78,33 +78,36 @@ source_files = [ 'vlc_module.c' ] ...@@ -78,33 +78,36 @@ source_files = [ 'vlc_module.c' ]
# To compile in a local vlc tree # To compile in a local vlc tree
vlclocal = Extension('vlc', vlclocal = Extension('vlc',
sources = [ os.path.join( srcdir, f ) for f in source_files ], sources = [ os.path.join( srcdir, f ) for f in source_files ],
include_dirs = [ top_builddir, include_dirs = [ top_builddir,
os.path.join( srcdir, '..', '..', 'include' ), srcdir ],
srcdir, extra_objects = [ ],
'/usr/win32/include' ], extra_compile_args = get_cflags(),
extra_objects = [ ], extra_link_args = linkargs + get_ldflags(),
extra_compile_args = get_cflags(), )
extra_link_args = linkargs + get_ldflags(),
) setup (name = 'python-vlc',
version = '1.0.0.90',
setup (name = 'VLC Bindings', author='Olivier Aubert',
version = get_vlc_version(), author_email='olivier.aubert@liris.cnrs.fr',
#scripts = [ os.path.join( srcdir, 'vlcwrapper.py') ], url='http://wiki.videolan.org/PythonBinding',
#scripts = [ os.path.join( srcdir, 'vlcwidget.py') ],
py_modules=['vlcwrapper'],
keywords = [ 'vlc', 'video' ], keywords = [ 'vlc', 'video' ],
license = "GPL", license = "GPL",
description = """VLC bindings for python. description = "VLC bindings for python.",
long_description = """VLC bindings for python.
This module provides bindings for the native libvlc API of the VLC This module provides bindings for the native libvlc API of the VLC
video player. Documentation can be found on the VLC wiki : video player. Documentation can be found on the VLC wiki :
http://wiki.videolan.org/index.php/ExternalAPI http://wiki.videolan.org/ExternalAPI
This module also provides a MediaControl object, which implements an This module also provides a MediaControl object, which implements an
API inspired from the OMG Audio/Video Stream 1.0 specification. API inspired from the OMG Audio/Video Stream 1.0 specification.
Documentation can be found on the VLC wiki : Documentation can be found on the VLC wiki :
http://wiki.videolan.org/index.php/PythonBinding http://wiki.videolan.org/PythonBinding
Example session: Example session (for the MediaControl API):
import vlc import vlc
mc=vlc.MediaControl(['--verbose', '1']) mc=vlc.MediaControl(['--verbose', '1'])
......
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