Add custom toolchain option (#110)
Fixed #48 Signed-off-by: Hidenori Matsubayashi <hidenori.matsubayashi@gmail.com>
This commit is contained in:
committed by
GitHub
parent
f50c49d31a
commit
ed16e0bd77
@@ -60,6 +60,11 @@ class BuildPackageCommand extends BuildSubCommand
|
||||
'the app is compiled. This option is valid only '
|
||||
'if the current host and target architectures are different.',
|
||||
);
|
||||
argParser.addOption(
|
||||
'target-toolchain',
|
||||
defaultsTo: '/',
|
||||
help: 'The toolchain path for Clang.',
|
||||
);
|
||||
argParser.addOption(
|
||||
'system-include-directories',
|
||||
defaultsTo: null,
|
||||
@@ -120,8 +125,9 @@ class BuildPackageCommand extends BuildSubCommand
|
||||
targetBackendType: stringArg('target-backend-type'),
|
||||
targetCompilerTriple: stringArg('target-compiler-triple'),
|
||||
targetSysroot: stringArg('target-sysroot'),
|
||||
systemIncludeDirectories: stringArg('system-include-directories'),
|
||||
targetCompilerFlags: stringArg('target-compiler-flags'),
|
||||
targetToolchain: stringArg('target-toolchain'),
|
||||
systemIncludeDirectories: stringArg('system-include-directories'),
|
||||
);
|
||||
validateBuild(eLinuxBuildInfo);
|
||||
displayNullSafetyMode(buildInfo);
|
||||
|
||||
@@ -357,6 +357,7 @@ class NativeBundle {
|
||||
final String targetCompilerTriple = buildInfo.targetCompilerTriple;
|
||||
final String targetSysroot = buildInfo.targetSysroot;
|
||||
final String targetCompilerFlags = buildInfo.targetCompilerFlags;
|
||||
final String targetToolchain = buildInfo.targetToolchain;
|
||||
final String systemIncludeDirectories = buildInfo.systemIncludeDirectories;
|
||||
RunResult result = await _processUtils.run(
|
||||
<String>[
|
||||
@@ -378,7 +379,12 @@ class NativeBundle {
|
||||
eLinuxDir.path,
|
||||
],
|
||||
workingDirectory: outputDir.path,
|
||||
environment: <String, String>{'CC': 'clang', 'CXX': 'clang++'},
|
||||
environment: (targetToolchain == null)
|
||||
? <String, String>{'CC': 'clang', 'CXX': 'clang++'}
|
||||
: <String, String>{
|
||||
'CC': '$targetToolchain/bin/clang',
|
||||
'CXX': '$targetToolchain/bin/clang++'
|
||||
},
|
||||
);
|
||||
if (result.exitCode != 0) {
|
||||
throwToolExit('Failed to cmake:\n$result');
|
||||
|
||||
@@ -37,8 +37,9 @@ class ELinuxBuildInfo {
|
||||
@required this.targetBackendType,
|
||||
@required this.targetCompilerTriple,
|
||||
@required this.targetSysroot,
|
||||
@required this.systemIncludeDirectories,
|
||||
@required this.targetCompilerFlags,
|
||||
@required this.targetToolchain,
|
||||
@required this.systemIncludeDirectories,
|
||||
}) : assert(targetArch != null),
|
||||
assert(targetBackendType != null);
|
||||
|
||||
@@ -47,8 +48,9 @@ class ELinuxBuildInfo {
|
||||
final String targetBackendType;
|
||||
final String targetCompilerTriple;
|
||||
final String targetSysroot;
|
||||
final String systemIncludeDirectories;
|
||||
final String targetCompilerFlags;
|
||||
final String targetToolchain;
|
||||
final String systemIncludeDirectories;
|
||||
}
|
||||
|
||||
/// See:
|
||||
|
||||
@@ -299,8 +299,9 @@ class ELinuxDevice extends Device {
|
||||
targetBackendType: _backendType,
|
||||
targetCompilerTriple: null,
|
||||
targetSysroot: '/',
|
||||
systemIncludeDirectories: null,
|
||||
targetCompilerFlags: null,
|
||||
targetToolchain: null,
|
||||
systemIncludeDirectories: null,
|
||||
);
|
||||
await ELinuxBuilder.buildBundle(
|
||||
project: project,
|
||||
|
||||
Reference in New Issue
Block a user