Bug 1437627 - part 3 - enable incremental compilation for Rust; r=chmanchester

We want this on for "normal" developer builds, but we want to leave it
off when the build is for some kind of profiling, i.e. when the
optimization level is higher than "normal" builds.
This commit is contained in:
Nathan Froyd 2018-03-12 12:25:39 -05:00
Родитель dfc23d3001
Коммит a40eef482a
1 изменённых файлов: 17 добавлений и 4 удалений

Просмотреть файл

@ -1467,8 +1467,8 @@ set_config('MOZ_RUST_DEFAULT_FLAGS', rust_compiler_flags)
# ==============================================================
@depends('MOZ_AUTOMATION')
def cargo_incremental(automation):
@depends(rustc_opt_level, debug_rust, 'MOZ_AUTOMATION')
def cargo_incremental(opt_level, debug_rust, automation):
"""Return a value for the CARGO_INCREMENTAL environment variable."""
# We never want to use incremental compilation in automation. sccache
@ -1477,9 +1477,22 @@ def cargo_incremental(automation):
if automation:
return '0'
# Don't do anything special in other situations.
# Incremental compilation is automatically turned on for debug builds, so
# we don't need to do anything special here.
if debug_rust:
return
# --enable-release automatically sets -O2 for Rust code, and people can
# set RUSTC_OPT_LEVEL to 2 or even 3 if they want to profile Rust code.
# Let's assume that if Rust code is using -O2 or higher, we shouldn't
# be using incremental compilation, because we'd be imposing a
# significant runtime cost.
if opt_level not in ('0', '1'):
return
# We're clear to use incremental compilation!
return '1'
set_config('CARGO_INCREMENTAL', cargo_incremental)