Changeset 1eb8c0e


Ignore:
Timestamp:
Mar 13, 2017, 5:10:55 PM (3 years ago)
Author:
Martin Hermant <martin.hermant@gmail.com>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, sampler
Children:
8259e09
Parents:
67b6618
Message:

aubio version :
aubio-c / aubio-py add git commit support

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • python/lib/moresetuptools.py

    r67b6618 r1eb8c0e  
    3232                                     AUBIO_PATCH_VERSION]))
    3333
    34     if AUBIO_VERSION_STATUS is not None:
     34    AUBIO_GIT_SHA = get_git_revision_hash()
     35    """ append sha to version in alpha release
     36    """
     37    if '~alpha' in AUBIO_VERSION_STATUS :
     38        if AUBIO_GIT_SHA:
     39            AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA
     40    if AUBIO_VERSION_STATUS is not None :
    3541        verstr += AUBIO_VERSION_STATUS
    3642    return verstr
     
    4046    # see https://www.python.org/dev/peps/pep-0440/
    4147    verstr = get_aubio_version()
    42     if '~alpha' in verstr:
    43         verstr = verstr.split('~')[0] + 'a1'
     48    if '~alpha' in verstr or '~git' in verstr:
     49        verstr = verstr.split('~')[0] + '+a1'
     50        gitsha = get_git_revision_hash(short=True)
     51        if gitsha:
     52            verstr+='.git.'+gitsha
    4453    # TODO: add rc, .dev, and .post suffixes, add numbering
    4554    return verstr
     55
     56
     57
     58def get_git_revision_hash( short=True):
     59    def which(program):
     60   
     61        def is_exe(fpath):
     62            return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
     63
     64        fpath, fname = os.path.split(program)
     65        if fpath:
     66            if is_exe(program):
     67                return program
     68        else:
     69            for path in os.environ["PATH"].split(os.pathsep):
     70                path = path.strip('"')
     71                exe_file = os.path.join(path, program)
     72                if is_exe(exe_file):
     73                    return exe_file
     74
     75        return None
     76    if not which('git'):
     77        print 'no git found on this system : can\'t get sha'
     78        return ""
     79
     80    import subprocess
     81    this_file_dir = os.path.dirname(os.path.abspath(__file__))
     82    aubio_dir = os.path.join(this_file_dir, '..', '..')
     83    aubio_dir = os.path.abspath(aubio_dir)
     84    if not os.path.exists(aubio_dir):
     85        raise SystemError("git / root folder not found")
     86    gitcmd = ['git','-C',aubio_dir ,'rev-parse']
     87    if short:
     88      gitcmd.append('--short')
     89    gitcmd.append('HEAD')
     90    return subprocess.check_output(gitcmd).strip()
    4691
    4792# inspired from https://gist.github.com/abergmeier/9488990
  • setup.py

    r67b6618 r1eb8c0e  
    77from python.lib.gen_external import generate_external, header, output_path
    88
    9 __version__ = get_aubio_pyversion()
     9__version__ = get_aubio_version()
     10__pip_version__ = get_aubio_pyversion()
    1011
    1112include_dirs = []
     
    5556
    5657distrib = setup(name='aubio',
    57     version = __version__,
     58    version = __pip_version__,
    5859    packages = ['aubio'],
    5960    package_dir = {'aubio':'python/lib/aubio'},
  • src/wscript_build

    r67b6618 r1eb8c0e  
    4747# install headers, except _priv.h ones
    4848ctx.install_files('${INCLUDEDIR}/aubio/',
    49         ctx.path.ant_glob('**/*.h', excl = ['**_priv.h', 'config.h']),
     49        ctx.path.ant_glob('**/*.h', excl = ['**_priv.h']),
    5050        relative_trick=True)
  • wscript

    r67b6618 r1eb8c0e  
    1717# source VERSION
    1818for l in open('VERSION').readlines(): exec (l.strip())
     19
     20def get_git_revision_hash( short=True):
     21    import os
     22    def which(program):
     23        def is_exe(fpath):
     24            return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
     25
     26        fpath, fname = os.path.split(program)
     27        if fpath:
     28            if is_exe(program):
     29                return program
     30        else:
     31            for path in os.environ["PATH"].split(os.pathsep):
     32                path = path.strip('"')
     33                exe_file = os.path.join(path, program)
     34                if is_exe(exe_file):
     35                    return exe_file
     36
     37        return None
     38       
     39    if not which('git'):
     40        print 'no git found on this system : can\'t get sha'
     41        return ""
     42
     43    import subprocess
     44    aubio_dir = os.path.abspath(os.curdir)
     45    if not os.path.exists(aubio_dir):
     46        raise SystemError("git / root folder not found")
     47    gitcmd = ['git','-C',aubio_dir ,'rev-parse']
     48    if short:
     49      gitcmd.append('--short')
     50    gitcmd.append('HEAD')
     51    return subprocess.check_output(gitcmd).strip()
     52
     53AUBIO_GIT_SHA = get_git_revision_hash()
     54""" append sha to version in alpha release
     55"""
     56if '~alpha' in AUBIO_VERSION_STATUS :
     57    if AUBIO_GIT_SHA:
     58        AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA
     59
     60
     61
    1962
    2063VERSION = '.'.join ([str(x) for x in [
     
    132175    ctx.env['DEST_OS'] = target_platform
    133176
     177    ctx.define('AUBIO_VERSION',VERSION)
     178    ctx.define('AUBIO_MAJOR_VERSION',AUBIO_MAJOR_VERSION)
     179    ctx.define('AUBIO_MINOR_VERSION',AUBIO_MINOR_VERSION)
     180    ctx.define('AUBIO_PATCH_VERSION',AUBIO_PATCH_VERSION)
     181    ctx.define('AUBIO_VERSION_STATUS',AUBIO_VERSION_STATUS)
     182    ctx.define('AUBIO_GIT_SHA',AUBIO_GIT_SHA)
    134183    if ctx.options.build_type == "debug":
    135184        ctx.define('DEBUG', 1)
Note: See TracChangeset for help on using the changeset viewer.