1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env python3
- # Copyright 2019 The ChromiumOS Authors
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- # To check for violations:
- # $ ./tools/clippy
- #
- # To fix violations where possible:
- # $ ./tools/clippy --fix
- from typing import Optional
- from impl.common import CROSVM_ROOT, run_main, cmd, chdir, Triple, SHORTHANDS
- from impl.test_config import DO_NOT_BUILD_RISCV64
- clippy = cmd("cargo clippy").with_color_flag()
- def main(
- fix: bool = False,
- json: bool = False,
- locked: bool = False,
- platform: Optional[str] = None,
- ):
- try:
- triple: Triple = Triple.from_shorthand(platform) if platform else Triple.host_default()
- except Exception as e:
- raise type(e)(str(e) + f"\nValid platforms are {', '.join(SHORTHANDS.keys())}")
- chdir(CROSVM_ROOT)
- # Note: Clippy checks are configured in .cargo/config.toml
- args = [
- "--message-format=json" if json else None,
- "--locked" if locked else None,
- "--all-targets",
- "--",
- "-Dwarnings",
- ]
- if fix:
- args = [
- "--fix",
- "--allow-no-vcs",
- "--allow-dirty",
- "--allow-staged",
- *args,
- ]
- # For experimental builds, don't clippy the whole workspace, just what's enabled by features.
- if triple in (Triple.from_shorthand("riscv64"), Triple.from_shorthand("android")):
- args = ["--no-default-features", *args]
- else:
- args = ["--workspace", *args]
- print("Clippy crosvm workspace")
- clippy(
- f"--features={triple.feature_flag}",
- *args,
- ).with_envs(triple.get_cargo_env()).fg()
- if __name__ == "__main__":
- run_main(main)
|