// 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 bootstrap var ( // These variables are the only configuration needed by the boostrap // modules. They are always set to the variable name enclosed in "@@" so // that their values can be easily replaced in the generated Ninja file. srcDir = pctx.StaticVariable("srcDir", "@@SrcDir@@") buildDir = pctx.StaticVariable("buildDir", "@@BuildDir@@") goRoot = pctx.StaticVariable("goRoot", "@@GoRoot@@") compileCmd = pctx.StaticVariable("compileCmd", "@@GoCompile@@") linkCmd = pctx.StaticVariable("linkCmd", "@@GoLink@@") bootstrapCmd = pctx.StaticVariable("bootstrapCmd", "@@Bootstrap@@") bootstrapManifest = pctx.StaticVariable("bootstrapManifest", "@@BootstrapManifest@@") ) type ConfigInterface interface { // GeneratingBootstrapper should return true if this build invocation is // creating a build.ninja.in file to be used in a build bootstrapping // sequence. GeneratingBootstrapper() bool // GeneratingPrimaryBuilder should return true if this build invocation is // creating a build.ninja.in file to be used to build the primary builder GeneratingPrimaryBuilder() bool } type ConfigRemoveAbandonedFiles interface { // RemoveAbandonedFiles should return true if files listed in the // .ninja_log but not the output build.ninja file should be deleted. RemoveAbandonedFiles() bool } type Stage int const ( StageBootstrap Stage = iota StagePrimary StageMain ) type Config struct { stage Stage topLevelBlueprintsFile string runGoTests bool }