Showing the changes to python (1 of 4 files). Show all
Unified · Split
| @@ -4,92 +4,7 @@ import sys, os, glob, subprocess · 3 unmodified lines | |||
| 4 | import distutils, distutils.command.clean, distutils.dir_util | 4 | import distutils, distutils.command.clean, distutils.dir_util |
| 5 | from .gen_external import generate_external, header, output_path | 5 | from .gen_external import generate_external, header, output_path |
| 6 | 6 | ||
| 7 | def get_aubio_version(): | 7 | from Version import get_aubio_version |
| 8 | # read from VERSION | ||
| 9 | this_file_dir = os.path.dirname(os.path.abspath(__file__)) | ||
| 10 | version_file = os.path.join(this_file_dir, '..', '..', 'VERSION') | ||
| 11 | |||
| 12 | if not os.path.isfile(version_file): | ||
| 13 | raise SystemError("VERSION file not found.") | ||
| 14 | |||
| 15 | for l in open(version_file).readlines(): | ||
| 16 | #exec (l.strip()) | ||
| 17 | if l.startswith('AUBIO_MAJOR_VERSION'): | ||
| 18 | AUBIO_MAJOR_VERSION = int(l.split('=')[1]) | ||
| 19 | if l.startswith('AUBIO_MINOR_VERSION'): | ||
| 20 | AUBIO_MINOR_VERSION = int(l.split('=')[1]) | ||
| 21 | if l.startswith('AUBIO_PATCH_VERSION'): | ||
| 22 | AUBIO_PATCH_VERSION = int(l.split('=')[1]) | ||
| 23 | if l.startswith('AUBIO_VERSION_STATUS'): | ||
| 24 | AUBIO_VERSION_STATUS = l.split('=')[1].strip()[1:-1] | ||
| 25 | |||
| 26 | if AUBIO_MAJOR_VERSION is None or AUBIO_MINOR_VERSION is None \ | ||
| 27 | or AUBIO_PATCH_VERSION is None: | ||
| 28 | raise SystemError("Failed parsing VERSION file.") | ||
| 29 | |||
| 30 | verstr = '.'.join(map(str, [AUBIO_MAJOR_VERSION, | ||
| 31 | AUBIO_MINOR_VERSION, | ||
| 32 | AUBIO_PATCH_VERSION])) | ||
| 33 | |||
| 34 | |||
| 35 | # append sha to version in alpha release | ||
| 36 | # MAJ.MIN.PATCH.{~git<sha> , ''} | ||
| 37 | if '~alpha' in AUBIO_VERSION_STATUS : | ||
| 38 | AUBIO_GIT_SHA = get_git_revision_hash() | ||
| 39 | if AUBIO_GIT_SHA: | ||
| 40 | AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA | ||
| 41 | |||
| 42 | if AUBIO_VERSION_STATUS is not None : | ||
| 43 | verstr += AUBIO_VERSION_STATUS | ||
| 44 | return verstr | ||
| 45 | |||
| 46 | def get_aubio_pyversion(): | ||
| 47 | # convert to version for python according to pep 440 | ||
| 48 | # see https://www.python.org/dev/peps/pep-0440/ | ||
| 49 | verstr = get_aubio_version() | ||
| 50 | if '~alpha' in verstr or '~git' in verstr: | ||
| 51 | verstr = verstr.split('~')[0] + '+a1' | ||
| 52 | gitsha = get_git_revision_hash(short=True) | ||
| 53 | if gitsha: | ||
| 54 | verstr+='.git.'+gitsha | ||
| 55 | # TODO: add rc, .dev, and .post suffixes, add numbering | ||
| 56 | return verstr | ||
| 57 | |||
| 58 | |||
| 59 | |||
| 60 | def get_git_revision_hash( short=True): | ||
| 61 | def which(program): | ||
| 62 | |||
| 63 | def is_exe(fpath): | ||
| 64 | return os.path.isfile(fpath) and os.access(fpath, os.X_OK) | ||
| 65 | |||
| 66 | fpath, fname = os.path.split(program) | ||
| 67 | if fpath: | ||
| 68 | if is_exe(program): | ||
| 69 | return program | ||
| 70 | else: | ||
| 71 | for path in os.environ["PATH"].split(os.pathsep): | ||
| 72 | path = path.strip('"') | ||
| 73 | exe_file = os.path.join(path, program) | ||
| 74 | if is_exe(exe_file): | ||
| 75 | return exe_file | ||
| 76 | |||
| 77 | return None | ||
| 78 | if not which('git'): | ||
| 79 | print ('Version : no git found on this system : can\'t get sha') | ||
| 80 | return "" | ||
| 81 | |||
| 82 | import subprocess | ||
| 83 | this_file_dir = os.path.dirname(os.path.abspath(__file__)) | ||
| 84 | aubio_dir = os.path.join(this_file_dir, '..', '..') | ||
| 85 | aubio_dir = os.path.abspath(aubio_dir) | ||
| 86 | if not os.path.exists(aubio_dir): | ||
| 87 | raise SystemError("git / root folder not found") | ||
| 88 | gitcmd = ['git','-C',aubio_dir ,'rev-parse'] | ||
| 89 | if short: | ||
| 90 | gitcmd.append('--short') | ||
| 91 | gitcmd.append('HEAD') | ||
| 92 | return subprocess.check_output(gitcmd).strip() | ||
| 93 | 8 | ||
| 94 | # inspired from https://gist.github.com/abergmeier/9488990 | 9 | # inspired from https://gist.github.com/abergmeier/9488990 |
| 95 | def add_packages(packages, ext=None, **kw): | 10 | def add_packages(packages, ext=None, **kw): |