Lines Matching +full:runs +full:- +full:on

1 #!/usr/bin/env -S python3 -u
5 and repeatable. Depending on the flags, it runs a sequence of builds and looks
8 done to the source tree, and for files whose contents are dependent on the
12 runs in full mode. To run in incremental mode, pass the --incremental flag.
18 REPEATABILITY. In full mode, this tool runs two complete builds in different
27 In incremental mode, this tool helps verfiy the SPEED of the build. It runs two
37 source files in the tree, and reports on files that have been touched. In the
44 complete for some reason because of this, you can pass the --no-check-out-dir
50 In full mode, the --detect-embedded-paths flag does the two builds in different
54 The --hide-build-output flag hides the output of successful bulds, to make
57 The --no-build flag is useful if you have already done a build and would
58 just like to re-run the analysis.
60 The --target flag lets you specify a build target other than the default
64 The --touch flag lets you specify a list of source files to touch between
70 Please run build/make/tools/compare_builds.py --help for a full listing
76 build/make/tools/compare_builds.py --incremental --target nothing
78 Long incremental build times, or consecutive builds that re-run build actions
88 build/make/tools/compare_builds.py --subdirs --detect-embedded-paths
99 build/make/tools/compare_builds.py --detect-embedded-paths
109 build/make/tools/compare_builds.py --incremental \
110 --touch frameworks/base/core/java/android/app/Activity.java
114 also passing a --target option for a common use case. For example:
116 build/make/tools/compare_builds.py --incremental --target framework \
117 --touch frameworks/base/core/java/android/app/Activity.java
133 # Which directories to use if no --subdirs is supplied without explicit directories.
163 "/.out-dir",
189 argparser.add_argument("--detect-embedded-paths", action="store_true",
191 argparser.add_argument("--incremental", action="store_true",
193 argparser.add_argument("--hide-build-output", action="store_true",
195 argparser.add_argument("--no-build", dest="run_build", action="store_false",
197 argparser.add_argument("--no-check-out-dir", dest="check_out_dir", action="store_false",
199 argparser.add_argument("--subdirs", nargs="*",
201 + " The --subdirs argument with no listed directories will give a default list.")
202 argparser.add_argument("--target", default="droid",
204 argparser.add_argument("--touch", nargs="+", default=[],
205 help="Files to touch between builds. Must pair with --incremental.")
209 sys.stderr.write("Can't pass --detect-embedded-paths and --incremental together.\n")
212 sys.stderr.write("Can't pass --detect-embedded-paths and --no-check-out-dir together.\n")
215 sys.stderr.write("The --incremental flag is required if the --touch flag is passed.")
223 # - dir_prefix - The directory we'll put everything in (except for maybe the top level
225 # - *work_dir - The directory that we will build directly into. This is in dir_prefix
226 # unless --no-check-out-dir is set.
227 # - *out_dir - After building, if work_dir is different from out_dir, we move the out
229 # - timestamp_* - Files we touch so we know the various phases between the builds, so we
347 returncode, output = RunSoong(out_dir, ["--dumpvar-mode", name], True)
351 return output.decode("utf-8").strip()
373 """Runs a build. If the build fails, prints a message and exits."""
375 ["--build-mode", "--all-modules", "--dir=" + os.getcwd(), target],
393 2-Tuple of filenames for the files that are in both but are different (changed files)
461 items - the list of items to sort
462 key - a function to extract a filename from each element in items
516 remaining -= size