Comments (1)
It seems like it would be nice to integrate Cargo directly into the build. There is a related discussion going on at rust-lang/rust-roadmap-2017#12.
There are a many ways to do this. Without changes to the current code one might create a rule that executes cargo with CARGO_TARGET_DIR=<random temp dir>
and move the produced files to the build directory. This however means that the entire project must be rebuilt every time there is a change, since the cargo state is deleted afterwards.
I came up with two solutions:
- Zip the entire cargo directory and unzip it when rebuilding. The published inputs would then be every file of the given directory containing the sources and cargo files. Expected outputs would probably be specified explicitly and copied after building.
- Just let cargo keep its state in the intermediate directory and resolve #7 by allowing not only output files, but output directories. These would be analyzed by Cook after the build and their state would be recorded to ensure correctness.
There is another problem related to cargo downlading the crates. This could be resolved by specifying the version of dependencies in Cargo.toml
explicitly (using = x.y.z
).
from cook.
Related Issues (20)
- Investigate C Rules
- Investigate Java Rules
- Handle unknown output filenames HOT 5
- Integrate other build systems HOT 1
- Generic rule for arbitrary commands HOT 2
- Improve website HOT 1
- Improve documentation HOT 1
- C++ feature detection / configuration
- Option to choose debug / release
- Improve IDE support HOT 1
- Path handling HOT 1
- Determine default environment to run commands within HOT 1
- output build directory / tracking BUILD.py HOT 5
- Warnings are not restored HOT 1
- Automatically regenerate CLion project HOT 1
- immediate quit whole build if any job fails HOT 8
- Git Bash on Windows - UI issues HOT 1
- decider option like scons HOT 4
- Cook name duplicates established work of art HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cook.