From d08b27fa9701fecfdb69e1b0d1ac2459efc2129b Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 25 Feb 2015 16:45:20 +0100 Subject: Update from Google. -- MOE_MIGRATED_REVID=85702957 --- .../analysis/ConfigurationCollectionFactory.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java (limited to 'src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java new file mode 100644 index 0000000000..8ffac43d7e --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java @@ -0,0 +1,54 @@ +// Copyright 2014 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.analysis; + +import com.google.devtools.build.lib.analysis.config.BuildConfiguration; +import com.google.devtools.build.lib.analysis.config.BuildOptions; +import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; +import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; +import com.google.devtools.build.lib.analysis.config.PackageProviderForConfigurations; +import com.google.devtools.build.lib.events.EventHandler; + +import java.util.Map; + +import javax.annotation.Nullable; + +/** + * A factory for configuration collection creation. + */ +public interface ConfigurationCollectionFactory { + /** + * Creates the top-level configuration for a build. + * + *

Also it may create a set of BuildConfigurations and define a transition table over them. + * All configurations during a build should be accessible from this top-level configuration + * via configuration transitions. + * @param loadedPackageProvider the package provider + * @param buildOptions top-level build options representing the command-line + * @param clientEnv the system environment + * @param errorEventListener the event listener for errors + * @param performSanityCheck flag to signal about performing sanity check. Can be false only for + * tests in skyframe. Legacy mode uses loadedPackageProvider == null condition for this. + * @return the top-level configuration + * @throws InvalidConfigurationException + */ + @Nullable + public BuildConfiguration createConfigurations( + ConfigurationFactory configurationFactory, + PackageProviderForConfigurations loadedPackageProvider, + BuildOptions buildOptions, + Map clientEnv, + EventHandler errorEventListener, + boolean performSanityCheck) throws InvalidConfigurationException; +} -- cgit v1.2.3