Beispiel #1
0
    def install_workspace(self, profile, workspace, remote_name, build_modes,
                          update):
        loader = self.get_loader(profile)
        references = [
            ConanFileReference(v, "root", "project", "develop")
            for v in workspace.root
        ]
        conanfile = loader.load_virtual(references)
        remote_proxy = self.get_proxy(remote_name=remote_name)
        graph_builder = self._get_graph_builder(loader, remote_proxy)
        graph_builder._workspace = workspace
        deps_graph = graph_builder.load_graph(conanfile, False, update)

        output = ScopedOutput(str("Workspace"), self._user_io.out)
        output.highlight("Installing...")
        print_graph(deps_graph, self._user_io.out)

        build_mode = BuildMode(build_modes, self._user_io.out)
        build_requires = BuildRequires(loader, graph_builder, self._registry)
        installer = ConanInstaller(self._client_cache,
                                   output,
                                   remote_proxy,
                                   build_mode,
                                   build_requires,
                                   recorder=self._recorder)
        installer._workspace = workspace

        installer.install(deps_graph,
                          profile.build_requires,
                          keep_build=False,
                          update=update)
        build_mode.report_matches()
        workspace.generate()