Ejemplo n.º 1
0
        private BuildTree CalculateDependencies(IPackageTree packageTree, BuildTree currentTree)
        {
            if (currentTree == null)
            {
                currentTree = new BuildTree(packageTree);
            }
            else
            {
                if (HasACircularDependency(currentTree, packageTree))
                {
                    throw new CircularDependencyException(packageTree.Name);
                }

                InsertDependenciesBeforeParent(currentTree, packageTree);
            }

            var buildMetaData = packageTree.GetBuildMetaData(packageTree.Name);

            var buildEngine = buildMetaData.BuildEngine;

            var dependencies = buildEngine.Dependencies;

            foreach (var dependency in dependencies)
            {
                var package = packageTree.RetrievePackage(dependency);

                if (package is NullPackageTree)
                    throw new UnknownInstallPackageException(string.Format("No package definition exists for dependent package {0}, which is required by {1}.", dependency.PackageName, packageTree.FullName));

                CalculateDependencies(package, currentTree);
            }

            return currentTree;
        }
Ejemplo n.º 2
0
        private BuildTree CalculateDependencies(IPackageTree packageTree, BuildTree currentTree)
        {
            if (currentTree == null)
            {
                currentTree = new BuildTree(packageTree);
            }
            else
            {
                if (HasACircularDependency(currentTree, packageTree))
                {
                    throw new CircularDependencyException(packageTree.Name);
                }

                InsertDependenciesBeforeParent(currentTree, packageTree);
            }

            var buildMetaData = packageTree.GetBuildMetaData(packageTree.Name);

            var buildEngine = buildMetaData.BuildEngine;

            var dependencies = buildEngine.Dependencies;

            foreach (var dependency in dependencies)
            {
                var package = packageTree.RetrievePackage(dependency);

                if (package is NullPackageTree)
                {
                    throw new UnknownInstallPackageException(string.Format("No package definition exists for dependent package {0}, which is required by {1}.", dependency.PackageName, packageTree.FullName));
                }

                CalculateDependencies(package, currentTree);
            }

            return(currentTree);
        }
Ejemplo n.º 3
0
 protected virtual IBuildMetaData GetBuildMetaData(IPackageTree nextTree)
 {
     return nextTree.GetBuildMetaData(nextTree.BuildFile);
 }
Ejemplo n.º 4
0
 protected virtual IBuildMetaData GetBuildMetaData(IPackageTree nextTree)
 {
     return(nextTree.GetBuildMetaData(nextTree.BuildFile));
 }