diff options
Diffstat (limited to 'cbc')
-rwxr-xr-x | cbc/cli/build.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cbc/cli/build.py b/cbc/cli/build.py index ad0151a..b31c45e 100755 --- a/cbc/cli/build.py +++ b/cbc/cli/build.py @@ -2,6 +2,7 @@ import argparse import os import traceback +import sys import conda_build.metadata import cbc from cbc.exceptions import CondaBuildError @@ -9,6 +10,7 @@ from cbc.exceptions import CondaBuildError def main(): no_upload = '' use_local = '' + python_version = '' parser = argparse.ArgumentParser() parser.add_argument('--force-rebuild', @@ -23,6 +25,8 @@ def main(): parser.add_argument('--use-local', action='store_true', help='Install built package from [...]/conda-bld/pkgs repository') + parser.add_argument('--python', + help='Coerce build to use a specific version of python.') parser.add_argument('cbcfile', nargs='+', help='CBC metadata') @@ -49,6 +53,9 @@ def main(): if args.use_local: use_local = '--use-local' + if args.python: + python_version = ' '.join(['--python', args.python]) + print('CBC_HOME is {0}'.format(env.cbchome)) # Perform build(s) for cbcfile in args.cbcfile: @@ -69,12 +76,18 @@ def main(): print('Generating Conda metadata...') conda_metadata = conda_build.metadata.MetaData(env.pkgdir) + python_version_ours = '.'.join([ str(sys.version_info.major), str(sys.version_info.minor) ]) + python_version_want = '.'.join(python_version.split()[1:]) + + if python_version_want != python_version_ours: + args.force_rebuild = True + if not args.force_rebuild: if cbc.utils.conda_search(conda_metadata) == conda_metadata.dist(): print('{0} matches an installed package; increment the build number to rebuild or use --force-rebuild.'.format(conda_metadata.dist())) continue - conda_builder_args = [no_upload, use_local] + conda_builder_args = [no_upload, use_local, python_version] try: print('Initializing Conda build...') built = cbc.utils.conda_builder(metadata, conda_builder_args) |