def bind(path, version_range=None, opts=None, parser=None): exe_path = getattr(opts, 'exe', None) # gcc gcc_path = find_exe('gcc', filepath=exe_path) gcc_version = extract_version(gcc_path, ['-dumpfullversion', '-dumpversion']) log("binding gcc: %s" % gcc_path) # g++ gpp_path = find_exe('g++', filepath=exe_path) gpp_version = extract_version(gpp_path, ['-dumpfullversion', '-dumpversion']) log("binding g++: %s" % gpp_path) if gcc_version != gpp_version: raise RezBindError("gcc version different than g++ can not continue") # create directories and symlink gcc and g++ def make_root(variant, root): bin_path = make_dirs(root, 'bin') gcc_link_path = os.path.join(bin_path, 'gcc') platform_.symlink(gcc_path, gcc_link_path) gpp_link_path = os.path.join(bin_path, 'g++') platform_.symlink(gpp_path, gpp_link_path) with make_package('gcc', path, make_root=make_root) as pkg: pkg.version = gcc_version pkg.tools = ['gcc', 'g++'] pkg.commands = commands pkg.variants = [system.variant] return pkg.installed_variants
def bind(path, version_range=None, opts=None, parser=None): # find executable, determine version exepath = find_exe("python", opts.exe) code = "import sys;print('.'.join(str(x) for x in sys.version_info))" version = extract_version(exepath, ["-c", code]) check_version(version, version_range) log("binding python: %s" % exepath) def make_root(variant, root): bindir = make_dirs(root, "bin") if os.name == "nt": fname = os.path.join(bindir, "python.bat") with open(fname, "w") as f: f.write(bat.format(python=exepath)) else: fname = os.path.join(bindir, "python") with open(fname, "w") as f: f.write(sh.format(python=exepath)) # Make executable st = os.stat(fname) os.chmod(fname, st.st_mode | stat.S_IEXEC) with make_package("python", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["python"] pkg.commands = commands pkg.variants = [system.variant] pkg.exe = exepath return pkg.installed_variants
def bind(path, version_range=None, opts=None, parser=None): # find executable, determine version if opts and opts.exe: exepath = find_exe("python", opts.exe) code = "import sys; print '.'.join(str(x) for x in sys.version_info)" version = extract_version(exepath, ["-c", code]) else: exepath = sys.executable strver = '.'.join(str(x) for x in sys.version_info[:3]) version = Version(strver) check_version(version, version_range) def make_root(variant, root): if platform_.name != 'windows': binpath = make_dirs(root, "bin") link = os.path.join(binpath, "python") platform_.symlink(exepath, link) with make_package("python", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["python"] if platform_.name == 'windows': pkg.commands = win_commands(exepath) else: pkg.commands = nix_commands pkg.variants = [system.variant] return "python", version
def bind(path, version_range=None, opts=None, parser=None): # find executable, determine version if opts and opts.exe: exepath = find_exe("python", opts.exe) code = "import sys; print '.'.join(str(x) for x in sys.version_info)" version = extract_version(exepath, ["-c", code]) else: exepath = sys.executable strver = '.'.join(str(x) for x in sys.version_info[:3]) version = Version(strver) check_version(version, version_range) def make_root(variant, root): binpath = make_dirs(root, "bin") link = os.path.join(binpath, "python") platform_.symlink(exepath, link) with make_package("python", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["python"] pkg.commands = commands pkg.variants = [system.variant] return "python", version
def bind(path, version_range=None, opts=None, parser=None): # find executable, determine version exepath = find_exe("python", opts.exe) code = "import sys; print '.'.join(str(x) for x in sys.version_info)" version = extract_version(exepath, ["-c", code]) check_version(version, version_range) log("binding python: %s" % exepath) # find builtin modules builtin_paths = {} entries = [("lib", "os"), ("extra", "setuptools")] for dirname, module_name in entries: success, out, err = run_python_command([ "import %s" % module_name, "print %s.__file__" % module_name]) if success: pypath = os.path.dirname(out) if os.path.basename(pypath) == module_name: pypath = os.path.dirname(pypath) if pypath not in builtin_paths.values(): builtin_paths[dirname] = pypath # make the package # def make_root(variant, root): binpath = make_dirs(root, "bin") link = os.path.join(binpath, "python") platform_.symlink(exepath, link) if builtin_paths: pypath = make_dirs(root, "python") for dirname, srcpath in builtin_paths.iteritems(): destpath = os.path.join(pypath, dirname) log("Copying builtins from %s to %s..." % (srcpath, destpath)) shutil.copytree(srcpath, destpath) with make_package("python", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["python"] pkg.commands = commands pkg.variants = [system.variant] if builtin_paths: pkg.post_commands = post_commands return pkg.installed_variants
def bind(path, version_range=None, opts=None, parser=None): exepath = find_exe("cmake", getattr(opts, "exe", None)) version = extract_version(exepath, "--version") check_version(version, version_range) def make_root(variant, root): binpath = make_dirs(root, "bin") link = os.path.join(binpath, "cmake") platform_.symlink(exepath, link) with make_package("cmake", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["cmake"] pkg.commands = commands pkg.variants = [system.variant] return "cmake", version
def bind(path, version_range=None, opts=None, parser=None): exepath = find_exe("cmake", getattr(opts, "exe", None)) version = extract_version(exepath, "--version") check_version(version, version_range) def make_root(variant, root): binpath = make_dirs(root, "bin") link = os.path.join(binpath, "cmake") platform_.symlink(exepath, link) with make_package("cmake", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["cmake"] pkg.commands = commands pkg.variants = [system.variant] return "cmake", version
def bind(path, version_range=None, opts=None, parser=None): # find executable, determine version exepath = find_exe("python", opts.exe) code = "import sys;print('.'.join(str(x) for x in sys.version_info))" version = extract_version(exepath, ["-c", code]) check_version(version, version_range) log("binding python: %s" % exepath) def make_root(variant, root): make_dirs(root, "python") with make_package("python", path, make_root=make_root) as pkg: pkg.version = version pkg.tools = ["python"] pkg.commands = commands pkg.variants = [system.variant] pkg.exe = exepath return pkg.installed_variants