mirror of
https://github.com/dart-lang/sdk
synced 2024-09-04 16:03:44 +00:00
[infra] Always re-run GN in build.py
The workflow of using tools/gn.py followed-by tools/build.py is no longer working as it used to (the latter will override whatever the former configured). Instead one should pick between: tools/gn.py & ninja tools/build.py => Both tools/gn.py and tools/build.py suport the same options. This CL also makes tools/build.py stop using tools/generate_buildfiles.py (which would get just overriden by the re-run of GN). Change-Id: Ie698d7395e8c5862ae04a479c7c820c76ac5565d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154323 Commit-Queue: Martin Kustermann <kustermann@google.com> Reviewed-by: William Hesse <whesse@google.com>
This commit is contained in:
parent
d559c8f635
commit
89fe12b12a
|
@ -1119,19 +1119,11 @@
|
||||||
"description": "This configuration is used by the vm kbc builders."
|
"description": "This configuration is used by the vm kbc builders."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--mode=${mode}",
|
|
||||||
"--arch=${arch}",
|
|
||||||
"--bytecode"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
|
"--bytecode",
|
||||||
"runtime"
|
"runtime"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -1273,17 +1265,11 @@
|
||||||
"description": "This configuration is used for running FFI tests on qemu."
|
"description": "This configuration is used for running FFI tests on qemu."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--use-qemu"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
|
"--use-qemu",
|
||||||
"dart_precompiled_runtime",
|
"dart_precompiled_runtime",
|
||||||
"runtime_kernel"
|
"runtime_kernel"
|
||||||
]
|
]
|
||||||
|
@ -1526,11 +1512,6 @@
|
||||||
"description": "This configuration is used by the VM/JIT builders with sanitizers."
|
"description": "This configuration is used by the VM/JIT builders with sanitizers."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
|
@ -1554,11 +1535,6 @@
|
||||||
"description": "This configuration is used by the VM/JIT builders with sanitizers."
|
"description": "This configuration is used by the VM/JIT builders with sanitizers."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
|
@ -1586,11 +1562,6 @@
|
||||||
"description": "This configuration is used by the VM/AOT builders with sanitizers."
|
"description": "This configuration is used by the VM/AOT builders with sanitizers."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
|
@ -1617,11 +1588,6 @@
|
||||||
"description": "This configuration is used by the VM/AOT builders with sanitizers."
|
"description": "This configuration is used by the VM/AOT builders with sanitizers."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
|
@ -1647,22 +1613,14 @@
|
||||||
"description": "This configuration builds the VM with GCC."
|
"description": "This configuration builds the VM with GCC."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--mode=all",
|
|
||||||
"--arch=all",
|
|
||||||
"--no-clang",
|
|
||||||
"--no-goma"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
"--mode=all",
|
"--mode=all",
|
||||||
"--arch=all",
|
"--arch=all",
|
||||||
|
"--no-clang",
|
||||||
|
"--no-goma",
|
||||||
"runtime"
|
"runtime"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -3488,21 +3446,11 @@
|
||||||
"description": "This configuration runs tests for each supported ABI version."
|
"description": "This configuration runs tests for each supported ABI version."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--mode=release",
|
|
||||||
"--arch=x64",
|
|
||||||
"--bytecode"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart",
|
"name": "build dart",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
"--mode=release",
|
"--bytecode",
|
||||||
"--arch=x64",
|
|
||||||
"create_sdk_with_abi_versions"
|
"create_sdk_with_abi_versions"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -3523,30 +3471,11 @@
|
||||||
"description": "This configuration runs tests for the simarm_x64 architecture."
|
"description": "This configuration runs tests for the simarm_x64 architecture."
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
|
||||||
"name": "configure dart for simarm_x64",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--mode=${mode}",
|
|
||||||
"--arch=simarm_x64",
|
|
||||||
"--bytecode"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "configure dart for simarm",
|
|
||||||
"script": "tools/gn.py",
|
|
||||||
"arguments": [
|
|
||||||
"--mode=${mode}",
|
|
||||||
"--arch=simarm",
|
|
||||||
"--bytecode"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "build dart for simarm_x64",
|
"name": "build dart for simarm_x64",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
"--mode=${mode}",
|
"--bytecode",
|
||||||
"--arch=simarm_x64",
|
|
||||||
"gen_snapshot"
|
"gen_snapshot"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -3554,8 +3483,8 @@
|
||||||
"name": "build dart for simarm",
|
"name": "build dart for simarm",
|
||||||
"script": "tools/build.py",
|
"script": "tools/build.py",
|
||||||
"arguments": [
|
"arguments": [
|
||||||
"--mode=${mode}",
|
|
||||||
"--arch=simarm",
|
"--arch=simarm",
|
||||||
|
"--bytecode",
|
||||||
"dart_precompiled_runtime",
|
"dart_precompiled_runtime",
|
||||||
"vm_platform"
|
"vm_platform"
|
||||||
]
|
]
|
||||||
|
|
|
@ -115,48 +115,6 @@ def NotifyBuildDone(build_config, success, start):
|
||||||
# Ignore return code, if this command fails, it doesn't matter.
|
# Ignore return code, if this command fails, it doesn't matter.
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
|
|
||||||
def GenerateBuildfilesIfNeeded():
|
|
||||||
if os.path.exists(utils.GetBuildDir(HOST_OS)):
|
|
||||||
return True
|
|
||||||
command = [
|
|
||||||
'python',
|
|
||||||
os.path.join(DART_ROOT, 'tools', 'generate_buildfiles.py')
|
|
||||||
]
|
|
||||||
print("Running " + ' '.join(command))
|
|
||||||
process = subprocess.Popen(command)
|
|
||||||
process.wait()
|
|
||||||
if process.returncode != 0:
|
|
||||||
print("Tried to generate missing buildfiles, but failed. "
|
|
||||||
"Try running manually:\n\t$ " + ' '.join(command))
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def RunGNIfNeeded(out_dir, target_os, mode, arch, sanitizer):
|
|
||||||
if os.path.isfile(os.path.join(out_dir, 'args.gn')):
|
|
||||||
return
|
|
||||||
gn_os = 'host' if target_os == HOST_OS else target_os
|
|
||||||
gn_command = [
|
|
||||||
'python',
|
|
||||||
os.path.join(DART_ROOT, 'tools', 'gn.py'),
|
|
||||||
'--sanitizer',
|
|
||||||
sanitizer,
|
|
||||||
'-m',
|
|
||||||
mode,
|
|
||||||
'-a',
|
|
||||||
arch,
|
|
||||||
'--os',
|
|
||||||
gn_os,
|
|
||||||
'-v',
|
|
||||||
]
|
|
||||||
|
|
||||||
process = subprocess.Popen(gn_command)
|
|
||||||
process.wait()
|
|
||||||
if process.returncode != 0:
|
|
||||||
print("Tried to run GN, but it failed. Try running it manually: \n\t$ "
|
|
||||||
+ ' '.join(gn_command))
|
|
||||||
|
|
||||||
def UseGoma(out_dir):
|
def UseGoma(out_dir):
|
||||||
args_gn = os.path.join(out_dir, 'args.gn')
|
args_gn = os.path.join(out_dir, 'args.gn')
|
||||||
return 'use_goma = true' in open(args_gn, 'r').read()
|
return 'use_goma = true' in open(args_gn, 'r').read()
|
||||||
|
@ -205,8 +163,6 @@ def BuildOneConfig(options, targets, target_os, mode, arch, sanitizer):
|
||||||
build_config = utils.GetBuildConf(mode, arch, target_os, sanitizer)
|
build_config = utils.GetBuildConf(mode, arch, target_os, sanitizer)
|
||||||
out_dir = utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer)
|
out_dir = utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer)
|
||||||
using_goma = False
|
using_goma = False
|
||||||
# TODO(kustermann): Remove this once we always run GN.
|
|
||||||
RunGNIfNeeded(out_dir, target_os, mode, arch, sanitizer)
|
|
||||||
command = ['ninja', '-C', out_dir]
|
command = ['ninja', '-C', out_dir]
|
||||||
if options.verbose:
|
if options.verbose:
|
||||||
command += ['-v']
|
command += ['-v']
|
||||||
|
@ -280,9 +236,6 @@ def Main():
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if not GenerateBuildfilesIfNeeded():
|
|
||||||
return 1
|
|
||||||
|
|
||||||
# If binaries are built with sanitizers we should use those flags.
|
# If binaries are built with sanitizers we should use those flags.
|
||||||
# If the binaries are not built with sanitizers the flag should have no
|
# If the binaries are not built with sanitizers the flag should have no
|
||||||
# effect.
|
# effect.
|
||||||
|
@ -290,8 +243,7 @@ def Main():
|
||||||
env.update(SanitizerEnvironmentVariables())
|
env.update(SanitizerEnvironmentVariables())
|
||||||
|
|
||||||
# Always run GN before building.
|
# Always run GN before building.
|
||||||
# TODO(kustermann): Once recipe change landed we should enable this again.
|
gn_py.RunGnOnConfiguredConfigurations(options)
|
||||||
# gn_py.RunGnOnConfiguredConfigurations(options)
|
|
||||||
|
|
||||||
# Build all targets for each requested configuration.
|
# Build all targets for each requested configuration.
|
||||||
configs = []
|
configs = []
|
||||||
|
|
|
@ -25,7 +25,6 @@ head -n $(expr $LINE - 1) "$FILE" >"$TEMP_HEADER"
|
||||||
|
|
||||||
# Run offsets_extractor for every architecture and append the results.
|
# Run offsets_extractor for every architecture and append the results.
|
||||||
run() {
|
run() {
|
||||||
tools/gn.py --mode=$1 --arch=$2
|
|
||||||
tools/build.py --mode=$1 --arch=$2 offsets_extractor offsets_extractor_precompiled_runtime
|
tools/build.py --mode=$1 --arch=$2 offsets_extractor offsets_extractor_precompiled_runtime
|
||||||
echo "" >>"$TEMP_JIT"
|
echo "" >>"$TEMP_JIT"
|
||||||
out/$3/offsets_extractor >>"$TEMP_JIT"
|
out/$3/offsets_extractor >>"$TEMP_JIT"
|
||||||
|
|
Loading…
Reference in a new issue