this.buildSourceBuilder = buildSourceBuilder;
}
public SettingsInternal findAndLoadSettings(GradleInternal gradle, IGradlePropertiesLoader gradlePropertiesLoader) {
StartParameter startParameter = gradle.getStartParameter();
SettingsInternal settings = findSettingsAndLoadIfAppropriate(gradle, startParameter, gradlePropertiesLoader);
if (!startParameter.getDefaultProjectSelector().containsProject(settings.getProjectRegistry())) {
// The settings we found did not include the desired default project. Try again with an empty settings file.
StartParameter noSearchParameter = startParameter.newInstance();
noSearchParameter.setSettingsScriptSource(new StringScriptSource("empty settings file", ""));
settings = findSettingsAndLoadIfAppropriate(gradle, noSearchParameter, gradlePropertiesLoader);
if (settings == null) // not using an assert to make sure it is not disabled
{
throw new InternalError("Empty settings file does not contain expected project.");
}
// Set explicit build file, if required
if (noSearchParameter.getBuildFile() != null) {
ProjectDescriptor rootProject = settings.getRootProject();
assert noSearchParameter.getBuildFile().getParentFile().equals(rootProject.getProjectDir());
rootProject.setBuildFileName(noSearchParameter.getBuildFile().getName());
}
}
gradle.getScriptClassLoader().addParent(settings.getClassLoader());
return settings;
}