mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-16 15:41:11 +02:00
Update local LV2 libraries to latest versions
lilv-0.24.6 lv2-1.16.0 serd-0.30.2 sord-0.16.4 sratom-0.6.4 suil-0.10.6
This commit is contained in:
76
lib-src/lv2/serd/waflib/extras/package.py
Normal file
76
lib-src/lv2/serd/waflib/extras/package.py
Normal file
@@ -0,0 +1,76 @@
|
||||
#! /usr/bin/env python
|
||||
# encoding: utf-8
|
||||
# Thomas Nagy, 2011
|
||||
|
||||
"""
|
||||
Obtain packages, unpack them in a location, and add associated uselib variables
|
||||
(CFLAGS_pkgname, LIBPATH_pkgname, etc).
|
||||
|
||||
The default is use a Dependencies.txt file in the source directory.
|
||||
|
||||
This is a work in progress.
|
||||
|
||||
Usage:
|
||||
|
||||
def options(opt):
|
||||
opt.load('package')
|
||||
|
||||
def configure(conf):
|
||||
conf.load_packages()
|
||||
"""
|
||||
|
||||
from waflib import Logs
|
||||
from waflib.Configure import conf
|
||||
|
||||
try:
|
||||
from urllib import request
|
||||
except ImportError:
|
||||
from urllib import urlopen
|
||||
else:
|
||||
urlopen = request.urlopen
|
||||
|
||||
|
||||
CACHEVAR = 'WAFCACHE_PACKAGE'
|
||||
|
||||
@conf
|
||||
def get_package_cache_dir(self):
|
||||
cache = None
|
||||
if CACHEVAR in conf.environ:
|
||||
cache = conf.environ[CACHEVAR]
|
||||
cache = self.root.make_node(cache)
|
||||
elif self.env[CACHEVAR]:
|
||||
cache = self.env[CACHEVAR]
|
||||
cache = self.root.make_node(cache)
|
||||
else:
|
||||
cache = self.srcnode.make_node('.wafcache_package')
|
||||
cache.mkdir()
|
||||
return cache
|
||||
|
||||
@conf
|
||||
def download_archive(self, src, dst):
|
||||
for x in self.env.PACKAGE_REPO:
|
||||
url = '/'.join((x, src))
|
||||
try:
|
||||
web = urlopen(url)
|
||||
try:
|
||||
if web.getcode() != 200:
|
||||
continue
|
||||
except AttributeError:
|
||||
pass
|
||||
except Exception:
|
||||
# on python3 urlopen throws an exception
|
||||
# python 2.3 does not have getcode and throws an exception to fail
|
||||
continue
|
||||
else:
|
||||
tmp = self.root.make_node(dst)
|
||||
tmp.write(web.read())
|
||||
Logs.warn('Downloaded %s from %s', tmp.abspath(), url)
|
||||
break
|
||||
else:
|
||||
self.fatal('Could not get the package %s' % src)
|
||||
|
||||
@conf
|
||||
def load_packages(self):
|
||||
self.get_package_cache_dir()
|
||||
# read the dependencies, get the archives, ..
|
||||
|
Reference in New Issue
Block a user