/** Returns null if any build-info values are not ready. */ @Nullable CachingAnalysisEnvironment createAnalysisEnvironment( ArtifactOwner owner, boolean isSystemEnv, EventHandler eventHandler, Environment env, BuildConfiguration config) { if (config != null && !getWorkspaceStatusValues(env, config)) { return null; } boolean extendedSanityChecks = config != null && config.extendedSanityChecks(); boolean allowRegisteringActions = config == null || config.isActionsEnabled(); return new CachingAnalysisEnvironment( artifactFactory, owner, isSystemEnv, extendedSanityChecks, eventHandler, env, allowRegisteringActions, binTools); }
public void assertConfigurationsHaveUniqueOutputDirectories( BuildConfigurationCollection configCollection) throws Exception { Collection<BuildConfiguration> allConfigs = configCollection.getAllConfigurations(); Map<Root, BuildConfiguration> outputPaths = new HashMap<>(); for (BuildConfiguration config : allConfigs) { if (config.isActionsEnabled()) { BuildConfiguration otherConfig = outputPaths.get(config.getOutputDirectory()); if (otherConfig != null) { throw new IllegalStateException( "The output path '" + config.getOutputDirectory() + "' is the same for configurations '" + config + "' and '" + otherConfig + "'"); } else { outputPaths.put(config.getOutputDirectory(), config); } } } }