| // Copyright 2015 The Chromium 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 'dart:io'; |
| |
| import 'package:path/path.dart' as path; |
| |
| import 'base/utils.dart'; |
| import 'globals.dart'; |
| |
| enum BuildType { |
| prebuilt, |
| release, |
| debug, |
| } |
| |
| /// The type of build - `debug` or `deploy`. |
| /// |
| /// TODO(devoncarew): Add a `profile` mode. |
| enum BuildMode { |
| debug, |
| deploy |
| } |
| |
| String getModeName(BuildMode mode) => getEnumName(mode); |
| |
| enum HostPlatform { |
| darwin_x64, |
| linux_x64, |
| } |
| |
| String getNameForHostPlatform(HostPlatform platform) { |
| return getEnumName(platform).replaceAll('_', '-'); |
| } |
| |
| enum TargetPlatform { |
| android_arm, |
| android_x64, |
| ios, |
| darwin_x64, |
| linux_x64 |
| } |
| |
| String getNameForTargetPlatform(TargetPlatform platform) { |
| return getEnumName(platform).replaceAll('_', '-'); |
| } |
| |
| HostPlatform getCurrentHostPlatform() { |
| if (Platform.isMacOS) |
| return HostPlatform.darwin_x64; |
| if (Platform.isLinux) |
| return HostPlatform.linux_x64; |
| |
| printError('Unsupported host platform, defaulting to Linux'); |
| |
| return HostPlatform.linux_x64; |
| } |
| |
| TargetPlatform getCurrentHostPlatformAsTarget() { |
| if (Platform.isMacOS) |
| return TargetPlatform.darwin_x64; |
| if (Platform.isLinux) |
| return TargetPlatform.linux_x64; |
| printError('Unsupported host platform, defaulting to Linux'); |
| return TargetPlatform.linux_x64; |
| } |
| |
| class BuildConfiguration { |
| BuildConfiguration.prebuilt({ |
| this.hostPlatform, |
| this.targetPlatform, |
| this.testable: false |
| }) : type = BuildType.prebuilt, buildDir = null; |
| |
| BuildConfiguration.local({ |
| this.type, |
| this.hostPlatform, |
| this.targetPlatform, |
| String enginePath, |
| String buildPath, |
| this.testable: false |
| }) : buildDir = path.normalize(path.join(enginePath, buildPath)) { |
| assert(type == BuildType.debug || type == BuildType.release); |
| } |
| |
| final BuildType type; |
| final HostPlatform hostPlatform; |
| final TargetPlatform targetPlatform; |
| final String buildDir; |
| final bool testable; |
| } |