mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
Set SYMROOT as absolute in Generated.xcconfig for macOS (#31451)
This commit is contained in:
parent
ac7f875778
commit
abbb66ad79
|
@ -37,6 +37,9 @@ String flutterMacOSFrameworkDir(BuildMode mode) {
|
|||
/// useMacOSConfig: Optional parameter that controls whether we use the macOS
|
||||
/// project file instead. Defaults to false.
|
||||
///
|
||||
/// symrootOverride: Optional parameter to specifify the symroot instead of
|
||||
/// the default relative path.
|
||||
///
|
||||
/// targetOverride: Optional parameter, if null or unspecified the default value
|
||||
/// from xcode_backend.sh is used 'lib/main.dart'.
|
||||
Future<void> updateGeneratedXcodeProperties({
|
||||
|
@ -44,6 +47,7 @@ Future<void> updateGeneratedXcodeProperties({
|
|||
@required BuildInfo buildInfo,
|
||||
String targetOverride,
|
||||
bool useMacOSConfig = false,
|
||||
String symrootOverride,
|
||||
}) async {
|
||||
final StringBuffer localsBuffer = StringBuffer();
|
||||
|
||||
|
@ -65,7 +69,11 @@ Future<void> updateGeneratedXcodeProperties({
|
|||
final String buildDirectory = useMacOSConfig
|
||||
? getMacOSBuildDirectory()
|
||||
: getIosBuildDirectory();
|
||||
localsBuffer.writeln('SYMROOT=\${SOURCE_ROOT}/../$buildDirectory');
|
||||
if (symrootOverride != null) {
|
||||
localsBuffer.writeln('SYMROOT=$symrootOverride');
|
||||
} else {
|
||||
localsBuffer.writeln('SYMROOT=\${SOURCE_ROOT}/../$buildDirectory');
|
||||
}
|
||||
|
||||
if (!project.isModule) {
|
||||
// For module projects we do not want to write the FLUTTER_FRAMEWORK_DIR
|
||||
|
|
|
@ -17,21 +17,23 @@ import '../project.dart';
|
|||
// TODO(jonahwilliams): support target option.
|
||||
// TODO(jonahwilliams): refactor to share code with the existing iOS code.
|
||||
Future<void> buildMacOS(FlutterProject flutterProject, BuildInfo buildInfo) async {
|
||||
final Directory flutterBuildDir = fs.directory(getMacOSBuildDirectory());
|
||||
final String symrootOverride = fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Products');
|
||||
if (!flutterBuildDir.existsSync()) {
|
||||
flutterBuildDir.createSync(recursive: true);
|
||||
}
|
||||
// Write configuration to an xconfig file in a standard location.
|
||||
await updateGeneratedXcodeProperties(
|
||||
project: flutterProject,
|
||||
buildInfo: buildInfo,
|
||||
useMacOSConfig: true,
|
||||
symrootOverride: symrootOverride,
|
||||
);
|
||||
// Set debug or release mode.
|
||||
String config = 'Debug';
|
||||
if (buildInfo.isRelease) {
|
||||
config = 'Release';
|
||||
}
|
||||
final Directory flutterBuildDir = fs.directory(getMacOSBuildDirectory());
|
||||
if (!flutterBuildDir.existsSync()) {
|
||||
flutterBuildDir.createSync(recursive: true);
|
||||
}
|
||||
// Run build script provided by application.
|
||||
final Process process = await processManager.start(<String>[
|
||||
'/usr/bin/env',
|
||||
|
@ -42,7 +44,7 @@ Future<void> buildMacOS(FlutterProject flutterProject, BuildInfo buildInfo) asyn
|
|||
'-scheme', 'Runner',
|
||||
'-derivedDataPath', flutterBuildDir.absolute.path,
|
||||
'OBJROOT=${fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
|
||||
'SYMROOT=${fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
|
||||
'SYMROOT=$symrootOverride',
|
||||
], runInShell: true);
|
||||
final Status status = logger.startProgress(
|
||||
'Building macOS application...',
|
||||
|
|
Loading…
Reference in a new issue