forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.gni
163 lines (137 loc) · 5.12 KB
/
config.gni
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Copyright 2013 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.
if (is_android) {
import("//build/config/android/config.gni")
}
if (target_cpu == "arm" || target_cpu == "arm64") {
import("//build/config/arm.gni")
}
declare_args() {
# The runtime mode ("debug", "profile", "release", or "jit_release")
flutter_runtime_mode = "debug"
# Whether to use a prebuilt Dart SDK instead of building one.
flutter_prebuilt_dart_sdk = false
# Whether to build host-side development artifacts.
flutter_build_engine_artifacts = true
# Whether to include backtrace support.
enable_backtrace = true
# Whether to include --fapplication-extension when build iOS framework.
# This is currently a test flag and does not work properly.
#TODO(cyanglaz): Remove above comment about test flag when the entire iOS embedder supports app extension
#https://github.com/flutter/flutter/issues/124289
darwin_extension_safe = false
# Whether binary size optimizations with the assumption that Impeller is the
# only supported rendering engine are enabled.
#
# See [go/slimpeller-dashboard](https://github.com/orgs/flutter/projects/21)
# for details.
slimpeller = false
}
# feature_defines_list ---------------------------------------------------------
feature_defines_list = [
"FLUTTER_RUNTIME_MODE_DEBUG=1",
"FLUTTER_RUNTIME_MODE_PROFILE=2",
"FLUTTER_RUNTIME_MODE_RELEASE=3",
"FLUTTER_RUNTIME_MODE_JIT_RELEASE=4",
"DART_LEGACY_API=[[deprecated]]",
]
if (flutter_runtime_mode == "debug") {
feature_defines_list += [
"FLUTTER_RUNTIME_MODE=1",
"FLUTTER_JIT_RUNTIME=1",
]
} else if (flutter_runtime_mode == "profile") {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=2" ]
} else if (flutter_runtime_mode == "release") {
feature_defines_list += [
"FLUTTER_RUNTIME_MODE=3",
"FLUTTER_RELEASE=1",
]
} else if (flutter_runtime_mode == "jit_release") {
feature_defines_list += [
"FLUTTER_RUNTIME_MODE=4",
"FLUTTER_RELEASE=1",
"FLUTTER_JIT_RUNTIME=1",
]
} else {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=0" ]
}
if (slimpeller) {
feature_defines_list += [ "SLIMPELLER=1" ]
}
if (is_ios || is_mac) {
flutter_cflags_objc = [
"-Werror=overriding-method-mismatch",
"-Werror=undeclared-selector",
]
if (is_mac) {
flutter_cflags_objc += [ "-fapplication-extension" ]
}
flutter_cflags_objcc = flutter_cflags_objc
flutter_cflags_objc_arc = flutter_cflags_objc + [ "-fobjc-arc" ]
flutter_cflags_objcc_arc = flutter_cflags_objc_arc
}
# A combo of host os name and cpu is used in several locations to
# generate the names of the archived artifacts.
platform_name = host_os
if (platform_name == "mac") {
platform_name = "darwin"
} else if (platform_name == "win") {
platform_name = "windows"
}
full_platform_name = "$platform_name-$host_cpu"
target_platform_name = target_os
if (target_platform_name == "mac") {
platform_target_name = "darwin"
} else if (target_platform_name == "win") {
target_platform_name = "windows"
}
full_target_platform_name = "$target_platform_name-$target_cpu"
# Prebuilt Dart SDK location
_target_os_name = target_os
if (_target_os_name == "mac") {
_target_os_name = "macos"
} else if (_target_os_name == "win") {
_target_os_name = "windows"
}
_host_os_name = host_os
if (_host_os_name == "mac") {
_host_os_name = "macos"
} else if (_host_os_name == "win") {
_host_os_name = "windows"
}
# When building 32-bit Android development artifacts for Windows host (like
# gen_snapshot), the host_cpu is set to x86. However, the correct prebuilt
# Dart SDK to use during this build is still the 64-bit one.
_host_cpu = host_cpu
if (host_os == "win" && host_cpu == "x86") {
_host_cpu = "x64"
}
_target_prebuilt_config = "$_target_os_name-$target_cpu"
_host_prebuilt_config = "$_host_os_name-$_host_cpu"
target_prebuilts_path = "//flutter/prebuilts/$_target_prebuilt_config"
host_prebuilts_path = "//flutter/prebuilts/$_host_prebuilt_config"
if (flutter_prebuilt_dart_sdk) {
target_prebuilt_dart_sdk = "$target_prebuilts_path/dart-sdk"
host_prebuilt_dart_sdk = "$host_prebuilts_path/dart-sdk"
# There is no prebuilt Dart SDK targeting Fuchsia, iOS, and Android, but we
# also don't need one, so even when the build is targeting one of these
# platforms, we use the prebuilt Dart SDK for the host.
if (current_toolchain == host_toolchain || target_os == "android" ||
target_os == "fuchsia" || target_os == "ios" || target_os == "wasm") {
prebuilt_dart_sdk = host_prebuilt_dart_sdk
prebuilt_dart_sdk_config = _host_prebuilt_config
} else {
prebuilt_dart_sdk = target_prebuilt_dart_sdk
prebuilt_dart_sdk_config = _target_prebuilt_config
}
}
# Flutter SDK artifacts should only be built when either doing host builds, or
# for cross-compiled desktop targets.
# TODO: We can't build the engine artifacts for arm (32-bit) right now;
# see https://github.com/flutter/flutter/issues/74322
build_engine_artifacts =
flutter_build_engine_artifacts &&
(current_toolchain == host_toolchain ||
(is_linux && !is_chromeos && current_cpu != "arm") || is_mac || is_win)