def build(m, get_src=True): rm_rf(prefix) create_env(prefix, [ms.spec for ms in m.ms_depends('build')]) print("BUILD START:", m.dist()) if get_src: source.provide(m.path, m.get_section('source')) assert isdir(source.WORK_DIR) if os.listdir(source.get_dir()): print("source tree in:", source.get_dir()) else: print("no source") rm_rf(info_dir) files1 = prefix_files() if sys.platform == 'win32': import conda.builder.windows as windows windows.build(m.path) else: env = environ.get_dict() env['RECIPE_DIR'] = m.path cmd = ['/bin/bash', '-x', '-e', join(m.path, 'build.sh')] _check_call(cmd, env=env, cwd=source.get_dir()) create_entry_points(m.get_value('build/entry_points')) post_process() assert not exists(info_dir) files2 = prefix_files() sorted_files = sorted(files2 - files1) post_build(sorted_files) create_info_files(m, sorted_files) files3 = prefix_files() fix_permissions() path = bldpkg_path(m) t = tarfile.open(path, 'w:bz2') for f in sorted(files3 - files1): t.add(join(prefix, f), f) t.close() print("BUILD END:", m.dist()) # we're done building, perform some checks tarcheck.check_all(path) update_index(bldpkgs_dir) # remove from packages, because we're going to test it rm_pkgs_cache(m.dist()) test(m)
def build(m, get_src=True, pypi=False): rm_rf(prefix) create_env(prefix, [ms.spec for ms in m.ms_depends('build')], pypi) print("BUILD START:", m.dist()) if get_src: source.provide(m.path, m.get_section('source')) assert isdir(source.WORK_DIR) if os.listdir(source.get_dir()): print("source tree in:", source.get_dir()) else: print("no source") rm_rf(info_dir) files1 = prefix_files() if sys.platform == 'win32': import conda.builder.windows as windows windows.build(m) else: build_sh = join(m.path, 'build.sh') if exists(build_sh): env = environ.get_dict(m) cmd = ['/bin/bash', '-x', '-e', build_sh] _check_call(cmd, env=env, cwd=source.get_dir()) else: print("no build.sh file") create_entry_points(m.get_value('build/entry_points')) post_process(preserve_egg_dir=bool( m.get_value('build/preserve_egg_dir'))) assert not exists(info_dir) files2 = prefix_files() post_build(sorted(files2 - files1)) create_info_files(m, sorted(files2 - files1)) files3 = prefix_files() fix_permissions(files3 - files1) path = bldpkg_path(m) t = tarfile.open(path, 'w:bz2') for f in sorted(files3 - files1): t.add(join(prefix, f), f) t.close() print("BUILD END:", m.dist()) # we're done building, perform some checks tarcheck.check_all(path) update_index(bldpkgs_dir)
def create_env(pref, specs): if not isdir(bldpkgs_dir): os.makedirs(bldpkgs_dir) update_index(bldpkgs_dir) fetch_index.cache = {} index = get_index([url_path(config.croot)]) actions = plan.install_actions(pref, index, specs) plan.display_actions(actions, index) plan.execute_actions(actions, index, verbose=True) # ensure prefix exists, even if empty, i.e. when specs are empty if not isdir(pref): os.makedirs(pref)
def build(m, get_src=True, pypi=False): rm_rf(prefix) create_env(prefix, [ms.spec for ms in m.ms_depends('build')], pypi) print("BUILD START:", m.dist()) if get_src: source.provide(m.path, m.get_section('source')) assert isdir(source.WORK_DIR) if os.listdir(source.get_dir()): print("source tree in:", source.get_dir()) else: print("no source") rm_rf(info_dir) files1 = prefix_files() if sys.platform == 'win32': import conda.builder.windows as windows windows.build(m) else: build_sh = join(m.path, 'build.sh') if exists(build_sh): env = environ.get_dict(m) cmd = ['/bin/bash', '-x', '-e', build_sh] _check_call(cmd, env=env, cwd=source.get_dir()) else: print("no build.sh file") create_entry_points(m.get_value('build/entry_points')) post_process(preserve_egg_dir=bool(m.get_value('build/preserve_egg_dir'))) assert not exists(info_dir) files2 = prefix_files() post_build(sorted(files2 - files1)) create_info_files(m, sorted(files2 - files1)) files3 = prefix_files() fix_permissions(files3 - files1) path = bldpkg_path(m) t = tarfile.open(path, 'w:bz2') for f in sorted(files3 - files1): t.add(join(prefix, f), f) t.close() print("BUILD END:", m.dist()) # we're done building, perform some checks tarcheck.check_all(path) update_index(bldpkgs_dir)
def execute(args, parser): import os from os.path import abspath from conda.builder.index import update_index if len(args.directories) == 0: dir_paths = [os.getcwd()] else: dir_paths = [abspath(p) for p in args.directories] for path in dir_paths: update_index(path, verbose=not args.quiet, force=args.force)
def create_env(pref, specs): if not isdir(bldpkgs_dir): os.makedirs(bldpkgs_dir) update_index(bldpkgs_dir) # remove the cache such that a refetch is made, # this is necessary because we add the local build repo URL fetch_index.cache = {} index = get_index([url_path(config.croot)]) actions = plan.install_actions(pref, index, specs) plan.display_actions(actions, index) plan.execute_actions(actions, index, verbose=True) # ensure prefix exists, even if empty, i.e. when specs are empty if not isdir(pref): os.makedirs(pref)
def create_env(pref, specs, pypi=False): if not isdir(bldpkgs_dir): os.makedirs(bldpkgs_dir) update_index(bldpkgs_dir) # remove the cache such that a refetch is made, # this is necessary because we add the local build repo URL fetch_index.cache = {} index = get_index([url_path(config.croot)]) cc.pkgs_dirs = cc.pkgs_dirs[:1] if pypi: from conda.from_pypi import install_from_pypi specs = install_from_pypi(pref, index, specs) actions = plan.install_actions(pref, index, specs) plan.display_actions(actions, index) plan.execute_actions(actions, index, verbose=True) # ensure prefix exists, even if empty, i.e. when specs are empty if not isdir(pref): os.makedirs(pref)