pombredanne / depslint Goto Github PK
View Code? Open in Web Editor NEWThis project forked from maximuska/depslint
A tool for dependencies validation for ninja build system using strace to detect the real dependencies
License: Apache License 2.0
This project forked from maximuska/depslint
A tool for dependencies validation for ninja build system using strace to detect the real dependencies
License: Apache License 2.0
Introduction ============ Depslint is a tool for analyzing and verifying build dependencies. It was written to assist switching a large project build system from an existing complex legacy solution to ninja. The tool works by running a complete build under 'strace', recording relevant system calls to discover real 'dependencies', and then verifying that dependencies defined in the ninja manifest and the corresponding depfiles are correct. Purpose ============ Verify a build manifest for: * Correctness of the 'first build' (e.g., building following a pristine checkout, before any dep files are available). This is mostly useful for projects with autogenerated headers, to verify that build rules enforce autogenerated files to be created before including source files are compiled. * Correctness of the 'incremental build' (e.g., rebuild following a modification of any of the files under the build tree when the tree already contains some of the build products and dep files). * Redundant dependency specifications in the manifest making incremental rebuilds longer than needed. * More.. Quick usage guide ================= cd ~/myproject ninja -t clean git clean -fdX # You can substitute the above with a suitable command cleaning your # build tree. ~/depslint/depstrace.py ninja # The above will build your project under 'strace', parse output and # store discovered dependency information in 'deps.lst'. The complete # strace output will also be stored in 'strace_log.txt' for debugging, # if necessary. ~/depslint/depslint.py --stats=all # Parse build.ninja, load depfiles, build dependency graph and # validate it using 'real' dependency information in 'deps.lst'. If # '.depslint' file is available, it can be used to set # 'IGNORED_SUFFICES' and 'IMPLICIT_DEPS_MATCHERS' to ignore certain # dependecy issues. Tool output with extra details is stored to # 'depslint.log'. Documentation ============= The documentation will eventually appear under doc/. Hacking & Testing ================= There are unit-tests available under 'tests' directory. You can run these as: 'python -m unittest tests' under project root. If you wish to contribute changes, it would be best if you will add supporting tests as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.