mutating func addShellCmd(name: String, description: String, inputs: [Node], outputs: [Node], arguments: [String], environment: Environment = [:], workingDirectory: String? = nil, allowMissingInputs: Bool = false)
mutating func addSwiftCmd(name: String, inputs: [Node], outputs: [Node], executable: AbsolutePath, moduleName: String, moduleAliases: [String : String]?, moduleOutputPath: AbsolutePath, importPath: AbsolutePath, tempsPath: AbsolutePath, objects: [AbsolutePath], otherArguments: [String], sources: [AbsolutePath], fileList: AbsolutePath, isLibrary: Bool, wholeModuleOptimization: Bool, outputFileMapPath: AbsolutePath, prepareForIndexing: Bool)