Add `--quiet-build` to suppress make/compiler informationals.

This commit is contained in:
Wilson Snyder 2025-12-23 19:21:42 -05:00
parent 921ad64d22
commit 1b93033690
8 changed files with 45 additions and 3 deletions

View File

@ -24,9 +24,10 @@ Verilator 5.043 devel
* Add `-param`/`-port` options to `public_flat*` control directives (#6685). [Geza Lore, Fractile Ltd.] * Add `-param`/`-port` options to `public_flat*` control directives (#6685). [Geza Lore, Fractile Ltd.]
* Add `--top` specifying `config` name (#6710). [Dan Ruelas-Petrisko] * Add `--top` specifying `config` name (#6710). [Dan Ruelas-Petrisko]
* Add `sc_biguint` pragma (#6712). [Jakub Wasilewski, Antmicro Ltd.] * Add `sc_biguint` pragma (#6712). [Jakub Wasilewski, Antmicro Ltd.]
* Add 'make venv' target (#6775). [Geza Lore] * Add `make venv` target (#6775). [Geza Lore]
* Add SUPERNFIRST error on super.new on non-first statement (#6784). [Artur Bieniek] * Add SUPERNFIRST error on super.new on non-first statement (#6784). [Artur Bieniek]
* Add fargs for reusability of `--dump-inputs` output (#6812). [Geza Lore] * Add fargs for reusability of `--dump-inputs` output (#6812). [Geza Lore]
* Add `--quiet-build` to suppress make/compiler informationals.
* Support `std::randomize(){...}` (#4706) (#6573). [Yilou Wang] * Support `std::randomize(){...}` (#4706) (#6573). [Yilou Wang]
* Support force assignments to unpacked array elements (partial #4735) (#6787). [Ryszard Rozak, Antmicro Ltd.] * Support force assignments to unpacked array elements (partial #4735) (#6787). [Ryszard Rozak, Antmicro Ltd.]
* Support `config' (#5891) (#6714) (#6717) (#6745) (#6764). [Dan Ruelas-Petrisko] * Support `config' (#5891) (#6714) (#6717) (#6745) (#6764). [Dan Ruelas-Petrisko]

View File

@ -476,6 +476,7 @@ detailed descriptions of these arguments.
--public-params Mark all parameters as public_flat --public-params Mark all parameters as public_flat
-pvalue+<name>=<value> Overwrite toplevel parameter -pvalue+<name>=<value> Overwrite toplevel parameter
--quiet Minimize additional printing --quiet Minimize additional printing
--quiet-build Don't print build progress
--quiet-exit Don't print the command on failure --quiet-exit Don't print the command on failure
--quiet-stats Don't print statistics --quiet-stats Don't print statistics
--relative-includes Resolve includes relative to current file --relative-includes Resolve includes relative to current file

View File

@ -1475,7 +1475,13 @@ Summary:
.. option:: --quiet .. option:: --quiet
Alias for :vlopt:`--quiet-exit` :vlopt:`--quiet-stats`. Alias for :vlopt:`--quiet-build` :vlopt:`--quiet-exit`
:vlopt:`--quiet-stats`.
.. option:: --quiet-build
Disable printing build progress such as compiler command lines, when
using :vlopt:`--build`.
.. option:: --quiet-exit .. option:: --quiet-exit

View File

@ -1690,9 +1690,11 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
[this](const char* varp) { addParameter(varp, false); }); [this](const char* varp) { addParameter(varp, false); });
DECL_OPTION("-quiet", CbOnOff, [this](bool flag) { DECL_OPTION("-quiet", CbOnOff, [this](bool flag) {
m_quietBuild = flag;
m_quietExit = flag; m_quietExit = flag;
m_quietStats = flag; m_quietStats = flag;
}); });
DECL_OPTION("-quiet-build", OnOff, &m_quietBuild);
DECL_OPTION("-quiet-exit", OnOff, &m_quietExit); DECL_OPTION("-quiet-exit", OnOff, &m_quietExit);
DECL_OPTION("-quiet-stats", OnOff, &m_quietStats); DECL_OPTION("-quiet-stats", OnOff, &m_quietStats);

View File

@ -279,6 +279,7 @@ private:
bool m_publicFlatRW = false; // main switch: --public-flat-rw bool m_publicFlatRW = false; // main switch: --public-flat-rw
bool m_publicIgnore = false; // main switch: --public-ignore bool m_publicIgnore = false; // main switch: --public-ignore
bool m_publicParams = false; // main switch: --public-params bool m_publicParams = false; // main switch: --public-params
bool m_quietBuild = false; // main switch: --quiet-build
bool m_quietExit = false; // main switch: --quiet-exit bool m_quietExit = false; // main switch: --quiet-exit
bool m_quietStats = false; // main switch: --quiet-stats bool m_quietStats = false; // main switch: --quiet-stats
bool m_relativeIncludes = false; // main switch: --relative-includes bool m_relativeIncludes = false; // main switch: --relative-includes
@ -578,6 +579,7 @@ public:
bool anyPublicFlat() const { return m_publicParams || m_publicFlatRW || m_publicDepth; } bool anyPublicFlat() const { return m_publicParams || m_publicFlatRW || m_publicDepth; }
bool lintOnly() const VL_MT_SAFE { return m_lintOnly; } bool lintOnly() const VL_MT_SAFE { return m_lintOnly; }
bool ignc() const { return m_ignc; } bool ignc() const { return m_ignc; }
bool quietBuild() const VL_MT_SAFE { return m_quietBuild; }
bool quietExit() const VL_MT_SAFE { return m_quietExit; } bool quietExit() const VL_MT_SAFE { return m_quietExit; }
bool quietStats() const VL_MT_SAFE { return m_quietStats; } bool quietStats() const VL_MT_SAFE { return m_quietStats; }
bool reportUnoptflat() const { return m_reportUnoptflat; } bool reportUnoptflat() const { return m_reportUnoptflat; }

View File

@ -818,6 +818,7 @@ static string buildMakeCmd(const string& makefile, const string& target) {
cmd << " -C " << v3Global.opt.makeDir(); cmd << " -C " << v3Global.opt.makeDir();
cmd << " -f " << makefile; cmd << " -f " << makefile;
// Unless using make's jobserver, do a -j // Unless using make's jobserver, do a -j
if (v3Global.opt.quietBuild()) cmd << " -s --no-print-directory";
if (v3Global.opt.getenvMAKEFLAGS().find("-jobserver-auth") == string::npos) { if (v3Global.opt.getenvMAKEFLAGS().find("-jobserver-auth") == string::npos) {
if (jobs > 0) cmd << " -j " << jobs; if (jobs > 0) cmd << " -j " << jobs;
} }
@ -841,7 +842,7 @@ static void execBuildJob() {
V3Stats::addStatPerf(V3Stats::STAT_WALLTIME_BUILD, buildWallTime.deltaTime()); V3Stats::addStatPerf(V3Stats::STAT_WALLTIME_BUILD, buildWallTime.deltaTime());
if (exit_code != 0) { if (exit_code != 0) {
v3error(cmdStr << " exited with " << exit_code << std::endl); v3error("'" << cmdStr << "' exited with " << exit_code << std::endl);
v3Global.vlExit(exit_code); v3Global.vlExit(exit_code);
} }
} }

View File

@ -0,0 +1,20 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2024 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('vlt')
test.compile(verilator_flags2=["--binary", "--quiet-build"])
test.file_grep_not(test.compile_log_filename, r'ccache')
test.file_grep_not(test.compile_log_filename, r'make:')
test.file_grep_not(test.compile_log_filename, r'/include')
test.passes()

View File

@ -0,0 +1,9 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
module t;
initial $finish;
endmodule