APPNAME = 'aubio'
-# source VERSION
-for l in open('VERSION').readlines(): exec (l.strip())
-
-def get_git_revision_hash( short=True):
- import os
- def which(program):
- def is_exe(fpath):
- return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-
- fpath, fname = os.path.split(program)
- if fpath:
- if is_exe(program):
- return program
- else:
- for path in os.environ["PATH"].split(os.pathsep):
- path = path.strip('"')
- exe_file = os.path.join(path, program)
- if is_exe(exe_file):
- return exe_file
-
- return None
-
- if not which('git'):
- print('no git found on this system : can\'t get sha')
- return ""
-
- import subprocess
- aubio_dir = os.path.abspath(os.curdir)
- if not os.path.exists(aubio_dir):
- raise SystemError("git / root folder not found")
- gitcmd = ['git','-C',aubio_dir ,'rev-parse']
- if short:
- gitcmd.append('--short')
- gitcmd.append('HEAD')
- return subprocess.check_output(gitcmd).strip()
-
-AUBIO_GIT_SHA = get_git_revision_hash()
-""" append sha to version in alpha release
-"""
-if '~alpha' in AUBIO_VERSION_STATUS :
- if AUBIO_GIT_SHA:
- AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA
-
-
-
-
-VERSION = '.'.join ([str(x) for x in [
- AUBIO_MAJOR_VERSION,
- AUBIO_MINOR_VERSION,
- AUBIO_PATCH_VERSION
- ]]) + AUBIO_VERSION_STATUS
-
-LIB_VERSION = '.'.join ([str(x) for x in [
- LIBAUBIO_LT_CUR,
- LIBAUBIO_LT_REV,
- LIBAUBIO_LT_AGE]])
+from this_version import *
+
+VERSION = get_aubio_version()
+LIB_VERSION = get_libaubio_version()
top = '.'
out = 'build'
target_platform = ctx.options.target_platform
ctx.env['DEST_OS'] = target_platform
+ version_dict = get_version_info();
ctx.define('AUBIO_VERSION',VERSION)
- ctx.define('AUBIO_MAJOR_VERSION',AUBIO_MAJOR_VERSION)
- ctx.define('AUBIO_MINOR_VERSION',AUBIO_MINOR_VERSION)
- ctx.define('AUBIO_PATCH_VERSION',AUBIO_PATCH_VERSION)
- ctx.define('AUBIO_VERSION_STATUS',AUBIO_VERSION_STATUS)
- ctx.define('AUBIO_GIT_SHA',AUBIO_GIT_SHA)
+ ctx.define('AUBIO_MAJOR_VERSION', version_dict['AUBIO_MAJOR_VERSION'])
+ ctx.define('AUBIO_MINOR_VERSION', version_dict['AUBIO_MINOR_VERSION'])
+ ctx.define('AUBIO_PATCH_VERSION', version_dict['AUBIO_PATCH_VERSION'])
+ ctx.define('AUBIO_VERSION_STATUS', version_dict['AUBIO_VERSION_STATUS'])
+
if ctx.options.build_type == "debug":
ctx.define('DEBUG', 1)
else:
ctx.check_cfg(package = 'libavutil', atleast_version = '52.3.0',
args = '--cflags --libs', uselib_store = 'AVUTIL',
mandatory = ctx.options.enable_avcodec)
- ctx.check_cfg(package = 'libavresample', atleast_version = '1.0.1',
- args = '--cflags --libs', uselib_store = 'AVRESAMPLE',
- mandatory = ctx.options.enable_avcodec)
- if all ( 'HAVE_' + i in ctx.env
- for i in ['AVCODEC', 'AVFORMAT', 'AVUTIL', 'AVRESAMPLE'] ):
- ctx.define('HAVE_LIBAV', 1)
- ctx.msg('Checking for all libav libraries', 'yes')
+ ctx.check_cfg(package = 'libswresample', atleast_version = '2.3.0',
+ args = '--cflags --libs', uselib_store = 'SWRESAMPLE',
+ mandatory = False)
+ if 'HAVE_SWRESAMPLE' not in ctx.env:
+ ctx.check_cfg(package = 'libavresample', atleast_version = '1.0.1',
+ args = '--cflags --libs', uselib_store = 'AVRESAMPLE',
+ mandatory = False)
+
+ msg_check = 'Checking for all libav libraries'
+ if 'HAVE_AVCODEC' not in ctx.env:
+ ctx.msg(msg_check, 'not found (missing avcodec)', color = 'YELLOW')
+ elif 'HAVE_AVFORMAT' not in ctx.env:
+ ctx.msg(msg_check, 'not found (missing avformat)', color = 'YELLOW')
+ elif 'HAVE_AVUTIL' not in ctx.env:
+ ctx.msg(msg_check, 'not found (missing avutil)', color = 'YELLOW')
+ elif 'HAVE_SWRESAMPLE' not in ctx.env and 'HAVE_AVRESAMPLE' not in ctx.env:
+ resample_missing = 'not found (avresample or swresample required)'
+ ctx.msg(msg_check, resample_missing, color = 'YELLOW')
else:
- ctx.msg('Checking for all libav libraries', 'not found', color = 'YELLOW')
+ ctx.msg(msg_check, 'yes')
+ if 'HAVE_SWRESAMPLE' in ctx.env:
+ ctx.define('HAVE_SWRESAMPLE', 1)
+ elif 'HAVE_AVRESAMPLE' in ctx.env:
+ ctx.define('HAVE_AVRESAMPLE', 1)
+ ctx.define('HAVE_LIBAV', 1)
if (ctx.options.enable_wavread != False):
ctx.define('HAVE_WAVREAD', 1)
from waflib import TaskGen
if 'MANDIR' not in bld.env:
bld.env['MANDIR'] = bld.env['DATAROOTDIR'] + '/man'
- bld.env.VERSION = VERSION
+ bld.env.VERSION = str(VERSION)
rule_str = '${TXT2MAN} -t `basename ${TGT} | cut -f 1 -d . | tr a-z A-Z`'
rule_str += ' -r ${PACKAGE}\\ ${VERSION} -P ${PACKAGE}'
rule_str += ' -v ${PACKAGE}\\ User\\\'s\\ manual'
# build documentation from source files using sphinx-build
# note: build in ../doc/_build/html, otherwise waf wont install unsigned files
if bld.env['SPHINX']:
- bld.env.VERSION = VERSION
+ bld.env.VERSION = str(VERSION)
bld( name = 'sphinx',
rule = '${SPHINX} -b html -D release=${VERSION} -D version=${VERSION} -a -q `dirname ${SRC}` `dirname ${TGT}`',
source = 'doc/conf.py',