Unified · Split
| @@ -0,0 +1,137 @@ | ||
| 1 | + | |
| 2 | +import os | |
| 3 | +for l in open('VERSION').readlines(): exec (l.strip()) | |
| 4 | + | |
| 5 | +# def get_git_revision_hash( short=True): | |
| 6 | +# import os | |
| 7 | +# def which(program): | |
| 8 | +# def is_exe(fpath): | |
| 9 | +# return os.path.isfile(fpath) and os.access(fpath, os.X_OK) | |
| 10 | + | |
| 11 | +# fpath, fname = os.path.split(program) | |
| 12 | +# if fpath: | |
| 13 | +# if is_exe(program): | |
| 14 | +# return program | |
| 15 | +# else: | |
| 16 | +# for path in os.environ["PATH"].split(os.pathsep): | |
| 17 | +# path = path.strip('"') | |
| 18 | +# exe_file = os.path.join(path, program) | |
| 19 | +# if is_exe(exe_file): | |
| 20 | +# return exe_file | |
| 21 | +# return None | |
| 22 | + | |
| 23 | +# if not which('git') : | |
| 24 | +# # print('no git found on this system : can\'t get sha') | |
| 25 | +# return "" | |
| 26 | +# if not os.path.isdir('.git'): | |
| 27 | +# # print('Version : not in git repository : can\'t get sha') | |
| 28 | +# return "" | |
| 29 | + | |
| 30 | +# import subprocess | |
| 31 | +# aubio_dir = os.path.abspath(os.curdir) | |
| 32 | +# if not os.path.exists(aubio_dir): | |
| 33 | +# raise SystemError("git / root folder not found") | |
| 34 | +# gitcmd = ['git','-C',aubio_dir ,'rev-parse'] | |
| 35 | +# if short: | |
| 36 | +# gitcmd.append('--short') | |
| 37 | +# gitcmd.append('HEAD') | |
| 38 | +# outCmd = subprocess.check_output(gitcmd).strip().decode('utf8') | |
| 39 | +# return outCmd | |
| 40 | + | |
| 41 | + | |
| 42 | +def get_aubio_version(): | |
| 43 | + # read from VERSION | |
| 44 | + this_file_dir = os.path.dirname(os.path.abspath(__file__)) | |
| 45 | + version_file = os.path.join(this_file_dir, 'VERSION') | |
| 46 | + | |
| 47 | + if not os.path.isfile(version_file): | |
| 48 | + raise SystemError("VERSION file not found.") | |
| 49 | + | |
| 50 | + for l in open(version_file).readlines(): | |
| 51 | + #exec (l.strip()) | |
| 52 | + if l.startswith('AUBIO_MAJOR_VERSION'): | |
| 53 | + AUBIO_MAJOR_VERSION = int(l.split('=')[1]) | |
| 54 | + if l.startswith('AUBIO_MINOR_VERSION'): | |
| 55 | + AUBIO_MINOR_VERSION = int(l.split('=')[1]) | |
| 56 | + if l.startswith('AUBIO_PATCH_VERSION'): | |
| 57 | + AUBIO_PATCH_VERSION = int(l.split('=')[1]) | |
| 58 | + if l.startswith('AUBIO_VERSION_STATUS'): | |
| 59 | + AUBIO_VERSION_STATUS = l.split('=')[1].strip()[1:-1] | |
| 60 | + | |
| 61 | + if AUBIO_MAJOR_VERSION is None or AUBIO_MINOR_VERSION is None \ | |
| 62 | + or AUBIO_PATCH_VERSION is None: | |
| 63 | + raise SystemError("Failed parsing VERSION file.") | |
| 64 | + | |
| 65 | + verstr = '.'.join(map(str, [AUBIO_MAJOR_VERSION, | |
| 66 | + AUBIO_MINOR_VERSION, | |
| 67 | + AUBIO_PATCH_VERSION])) | |
| 68 | + | |
| 69 | + | |
| 70 | + # append sha to version in alpha release | |
| 71 | + # MAJ.MIN.PATCH.{~git<sha> , ''} | |
| 72 | + if '~alpha' in AUBIO_VERSION_STATUS : | |
| 73 | + AUBIO_GIT_SHA = get_git_revision_hash() | |
| 74 | + if AUBIO_GIT_SHA: | |
| 75 | + AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA | |
| 76 | + | |
| 77 | + if AUBIO_VERSION_STATUS is not None : | |
| 78 | + verstr += AUBIO_VERSION_STATUS | |
| 79 | + return verstr | |
| 80 | + | |
| 81 | +def get_aubio_pyversion(): | |
| 82 | + # convert to version for python according to pep 440 | |
| 83 | + # see https://www.python.org/dev/peps/pep-0440/ | |
| 84 | + verstr = get_aubio_version() | |
| 85 | + spl = verstr.split('~') | |
| 86 | + if len(spl)==2: | |
| 87 | + verstr = spl[0] + '+a1.'+spl[1] | |
| 88 | + | |
| 89 | + # TODO: add rc, .dev, and .post suffixes, add numbering | |
| 90 | + return verstr | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | +def get_git_revision_hash( short=True): | |
| 95 | + def which(program): | |
| 96 | + | |
| 97 | + def is_exe(fpath): | |
| 98 | + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) | |
| 99 | + | |
| 100 | + fpath, fname = os.path.split(program) | |
| 101 | + if fpath: | |
| 102 | + if is_exe(program): | |
| 103 | + return program | |
| 104 | + else: | |
| 105 | + for path in os.environ["PATH"].split(os.pathsep): | |
| 106 | + path = path.strip('"') | |
| 107 | + exe_file = os.path.join(path, program) | |
| 108 | + if is_exe(exe_file): | |
| 109 | + return exe_file | |
| 110 | + | |
| 111 | + return None | |
| 112 | + | |
| 113 | + if not which('git') : | |
| 114 | + # print('no git found on this system : can\'t get sha') | |
| 115 | + return "" | |
| 116 | + if not os.path.isdir('.git'): | |
| 117 | + # print('Version : not in git repository : can\'t get sha') | |
| 118 | + return "" | |
| 119 | + | |
| 120 | + import subprocess | |
| 121 | + aubio_dir = os.path.dirname(os.path.abspath(__file__)) | |
| 122 | + if not os.path.exists(aubio_dir): | |
| 123 | + raise SystemError("git / root folder not found") | |
| 124 | + gitcmd = ['git','-C',aubio_dir ,'rev-parse'] | |
| 125 | + if short: | |
| 126 | + gitcmd.append('--short') | |
| 127 | + gitcmd.append('HEAD') | |
| 128 | + outCmd = subprocess.check_output(gitcmd).strip().decode('utf8') | |
| 129 | + return outCmd | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | +# append sha to version in alpha release | |
| 134 | +if AUBIO_VERSION_STATUS and '~alpha' in AUBIO_VERSION_STATUS : | |
| 135 | + AUBIO_GIT_SHA = get_git_revision_hash() | |
| 136 | + if AUBIO_GIT_SHA: | |
| 137 | + AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA | |
| @@ -4,92 +4,7 @@ import sys, os, glob, subprocess · 3 unmodified lines | ||
| 4 | 4 | import distutils, distutils.command.clean, distutils.dir_util |
| 5 | 5 | from .gen_external import generate_external, header, output_path |
| 6 | 6 | |
| 7 | −def 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() | |
| 7 | +from Version import get_aubio_version | |
| 93 | 8 | |
| 94 | 9 | # inspired from https://gist.github.com/abergmeier/9488990 |
| 95 | 10 | def add_packages(packages, ext=None, **kw): |
| @@ -5,6 +5,7 @@ from setuptools import setup, Extension · 4 unmodified lines | ||
| 5 | 5 | from python.lib.moresetuptools import * |
| 6 | 6 | # function to generate gen/*.{c,h} |
| 7 | 7 | from python.lib.gen_external import generate_external, header, output_path |
| 8 | +from Version import get_aubio_version, get_aubio_pyversion | |
| 8 | 9 | |
| 9 | 10 | __version__ = get_aubio_version() |
| 10 | 11 | __pip_version__ = get_aubio_pyversion() |
| @@ -15,48 +15,9 @@ import sys · 14 unmodified lines | ||
| 15 | 15 | APPNAME = 'aubio' |
| 16 | 16 | |
| 17 | 17 | # source VERSION |
| 18 | −for l in open('VERSION').readlines(): exec (l.strip()) | |
| 19 | − | |
| 20 | −def 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 | − return None | |
| 37 | − | |
| 38 | − if not which('git'): | |
| 39 | − print('no git found on this system : can\'t get sha') | |
| 40 | − return "" | |
| 41 | − | |
| 42 | − import subprocess | |
| 43 | − aubio_dir = os.path.abspath(os.curdir) | |
| 44 | − if not os.path.exists(aubio_dir): | |
| 45 | − raise SystemError("git / root folder not found") | |
| 46 | − gitcmd = ['git','-C',aubio_dir ,'rev-parse'] | |
| 47 | − if short: | |
| 48 | − gitcmd.append('--short') | |
| 49 | − gitcmd.append('HEAD') | |
| 50 | − return str(subprocess.check_output(gitcmd).strip()) | |
| 51 | − | |
| 52 | − | |
| 53 | −# append sha to version in alpha release | |
| 54 | −if AUBIO_VERSION_STATUS and '~alpha' in AUBIO_VERSION_STATUS : | |
| 55 | − AUBIO_GIT_SHA = get_git_revision_hash() | |
| 56 | − if AUBIO_GIT_SHA: | |
| 57 | − AUBIO_VERSION_STATUS = '~git'+AUBIO_GIT_SHA | |
| 58 | 18 | |
| 59 | 19 | |
| 20 | +from Version import * | |
| 60 | 21 | |
| 61 | 22 | |
| 62 | 23 | VERSION = '.'.join ([str(x) for x in [ |
| @@ -178,7 +139,7 @@ def configure(ctx): · 115 unmodified lines | ||
| 178 | 139 | ctx.define('AUBIO_MINOR_VERSION',AUBIO_MINOR_VERSION) |
| 179 | 140 | ctx.define('AUBIO_PATCH_VERSION',AUBIO_PATCH_VERSION) |
| 180 | 141 | ctx.define('AUBIO_VERSION_STATUS',AUBIO_VERSION_STATUS) |
| 181 | − # ctx.define('AUBIO_GIT_SHA',AUBIO_GIT_SHA) | |
| 142 | + | |
| 182 | 143 | if ctx.options.build_type == "debug": |
| 183 | 144 | ctx.define('DEBUG', 1) |
| 184 | 145 | else: |