// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import '../base/file_system.dart'; import '../project.dart'; // The setting that controls the executable name in the linux makefile. const String _kBinaryNameVariable = 'BINARY_NAME='; /// Extracts the `BINARY_NAME` from a linux project Makefile. /// /// Returns `null` if it cannot be found. String makefileExecutableName(LinuxProject project) { // Support the binary name being set either in the Makefile, or in the // separate configution include file used by the template. final List<File> makeFiles = <File>[ project.makeFile.parent.childFile('app_configuration.mk'), project.makeFile, ]; for (final File file in makeFiles) { if (!file.existsSync()) { continue; } for (final String line in file.readAsLinesSync()) { if (line.startsWith(_kBinaryNameVariable)) { return line.split(_kBinaryNameVariable).last.trim(); } } } return null; }