summary refs log tree commit diff
path: root/pkgs/build-support/rust
Commit message (Collapse)AuthorAge
...
* cargo-vendor: 0.1.13 -> 0.1.23Alexander Krupenkin2019-04-21
|
* Merge master into staging-nextFrederik Rietdijk2019-04-09
|\
| * Merge pull request #58394 from P-E-Meunier/carnix-0.10Andreas Rammhold2019-04-08
| |\ | | | | | | Carnix: 0.9 -> 0.10
| | * Carnix: 0.9 -> 0.10Pierre-Étienne Meunier2019-03-26
| | |
* | | Merge branch 'master' into stagingJan Tojnar2019-04-05
|\| |
| * | Merge pull request #57936 from andir/build-rust-crate-nix-build-coresAndreas Rammhold2019-03-29
| |\ \ | | |/ | |/| buildRustCrate: use $NIX_BUILD_CORES for each of the crates
| | * buildRustCrate: use $NIX_BUILD_CORES for each of the cratesAndreas Rammhold2019-03-20
| | |
* | | rust: set PKG_CONFIG_ALLOW_CROSS conditionally in buildRustPackageMichael Eden2019-03-29
| | |
* | | rust: allow building in debug or release modesMichael Eden2019-03-29
| | |
* | | rust: move releaseDir to target/release in the buildPhaseMichael Eden2019-03-29
| | |
* | | rust: fix cross-compilationJörg Thalheim2019-03-29
|/ /
* / buildRustCrate: Fix `include` filterTeo Klestrup Röijezon2019-03-25
|/ | | | | | | | | | | | buildRustCrate has a handy `include` helper, that only imports those whitelisted files and folders to the store. However, the function's matching logic is broken and includes all files, regardless of whether or not they're whitelisted, as long as the whitelist contains at least one name (regardless of whether that name exists). This is because it doesn't take into account that `lib.strings.removePrefix "foo" "bar" == "bar"` (that is, paths that don't match the prefix are passed straight through).
* Merge pull request #56634 from marsam/buildrustcreate-pname-attributeJörg Thalheim2019-03-11
|\ | | | | buildRustPackage: Allow pname attribute
| * buildRustPackage: Allow pname attributeMario Rodas2019-03-01
| |
* | buildRustCrate: Make CARGO_MANIFEST_DIR absolutePeter Kolloch2019-03-03
|/ | | | | | | | | | | | | | | While it is not obvious from the source, cargo sets CARGO_MANIFEST_DIR to an absolute directory. This let to a build problem with the popular "tera" crate using the "pest" crate. ## Cargo details The variable is set here: https://github.com/rust-lang/cargo/blob/f7c91ba6220e1b96aa14e5964e7074452f9551fb/src/cargo/core/compiler/compilation.rs#L229 and computed from the `manifest_path`: https://github.com/rust-lang/cargo/blob/f7c91ba6220e1b96aa14e5964e7074452f9551fb/src/cargo/core/package.rs#L163 The manifest path is also exported via `cargo metadata` where you can see that it is absolute.
* buildRustCrate: adding the description fieldPierre-Étienne Meunier2019-02-25
|
* Merge pull request #56314 from P-E-Meunier/carnix-0.9.8Ryan Mulligan2019-02-24
|\ | | | | Carnix: 0.9.7 -> 0.9.8
| * Carnix: 0.9.7 -> 0.9.8Pierre-Étienne Meunier2019-02-24
| |
* | buildRustCrate: support rust editionsAndreas Rammhold2019-02-18
| | | | | | | | | | | | In combination with carnix we can now build crates that require a specific edition of rust features. A few crates started requiring that already and having this in nixpkgs is just logical.
* | buildRustCrate: pass extraRustcOpts to configure crateAndreas Rammhold2019-02-18
|/ | | | | Previously build flags would not be available during the configure phase while they might be required to build the `build.rs` file.
* toml2nix: init at 0.1.1 (#53883)Pierre-Etienne Meunier2019-01-15
|
* fetchcargo: fixed config installation pathAlexander Krupenkin2018-12-14
|
* buildRustCrate: fix extraRustcOpts so it is not discardedDarius Jahandarie2018-12-12
|
* Merge master into staging-nextFrederik Rietdijk2018-12-07
|\
| * buildRustCreate: export RUSTDOC during cargo configAustin Seipp2018-12-04
| | | | | | | | | | | | See https://github.com/NixOS/nixpkgs/pull/50452#issuecomment-443455411 Signed-off-by: Austin Seipp <aseipp@pobox.com>
| * Merge pull request #50452 from P-E-Meunier/carnix-fixGraham Christensen2018-12-03
| |\ | | | | | | Rust build-support: fixing a compilation error in some crates
| | * Carnix 0.9.2Pierre-Étienne Meunier2018-11-27
| | |
| | * Fixing "include"Pierre-Étienne Meunier2018-11-22
| | |
| | * Rust build-support: fixing a compilation error in some crates (such as ↵Pierre-Étienne Meunier2018-11-16
| | | | | | | | | | | | proc-macro2)
* | | Merge pull request #51028 from clefru/tmp-cargo-configJörg Thalheim2018-11-26
|\ \ \ | |/ / |/| | | | | buildRustPackage: write cargo config to temporary file instead of source dir
| * | Write cargo config to temporary file instead of source dir.Clemens Fruhwirth2018-11-25
| |/ | | | | | | ... as this fails if the source dir contains a "config" directory.
* | makeRustPlatform: refactor to make it easier to understandJörg Thalheim2018-11-21
| | | | | | | | | | It is now clearer what is supposed to be in the rust attribute set without having studied type theory. The amount of code is identically.
* | defaultCrateOverrides: foundationdb native dependenciesAustin Seipp2018-11-17
|/ | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* defaultCrateOverrides: add serde_deriveJörg Thalheim2018-10-28
|
* defaultCrateOverrides: order alphabeticallyJörg Thalheim2018-10-28
|
* Carnix: 0.7.2 -> 0.8.10 (#40587)Pierre-Etienne Meunier2018-10-28
| | | Carnix: splits input into two parts: creates from creates.io and local ones
* buildRustPackage: fix regex for separating lib and binJustin Humm2018-10-07
| | | | | | | | | | E.g. exa was wrongly put into /lib, as it matches .*.a but not .*\.a
* buildRustPackage now correctly installs binaries to bin and libraries to lib.Edward Tate2018-10-03
|
* Merge remote-tracking branch 'upstream/master' into stagingJohn Ericson2018-09-18
|\
| * buildRustCrate: added some edge cases with binariesAndreas Rammhold2018-09-13
| | | | | | | | | | | | | | This commit adds test based on real-world crates (brotli). There were a few more edge cases that were missing beforehand. Also it turned out that we can get rid of the `finalBins` list since that will now be handled during runtime.
| * buildRustCrate: add test casesAndreas Rammhold2018-09-13
| |
| * buildRustCrate: binary heuristic should be able to treat spacesAndreas Rammhold2018-09-13
| |
| * buildRustCrate: extracted builder scripts into dedicated filesAndreas Rammhold2018-09-13
| | | | | | | | | | | | The build expression got quiet large over time and to make it a bit easier to grasp the different scripts involved in the build are now separated from the nix file.
| * buildRustCrate: add heuristic to picking the right source filesAndreas Rammhold2018-09-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cargo has a few odd (old) ways of picking source files if the `bin.path` attribute isn't given in the Cargo.toml. This commit adds support for some of those. The previous behaviour always defaulted to `src/main.rs` which was not always the right choice. Since there is look-ahead into the unpacked sources before running the actual builder the path selection logic has to be embedded within the build script. `buildRustCrate` currently supports two ways of running building binaries when processing a crate: - Explicit definition of all the binaries (& optionally the paths to their respective `main.rs`) and, - if not binary was explictly configured all files matching the patterns `src/main.rs`, `src/bin/*.rs`. When the explicit list is given without path information paths are now being picked from a list of candidates. The first match wins. The order is the same as within the cargo compatibility code. If the crate does not provide any libraries the path `src/{bin_name}.rs` is also considered. All underscores within the binary names are translated into dashes (`-`) before the lookups are made. This seems to be a common convention.
* | fetchcargo: Fix cargo-vendor-normalise for darwinSilvan Mosberger2018-09-17
| |
* | cargo-vendor-normalise: add a small install checkSymphorien Gibol2018-09-11
| |
* | fetchcargo: add type checking to cargo-vendor-normalise.pyJörg Thalheim2018-09-11
| |
* | fectchcargo: don't break old sha256Symphorien Gibol2018-09-11
| |
* | fetchcargo: normalise cargo config to ensure determinismSymphorien Gibol2018-09-11
| |
* | buildRustPackage, fetchcargo: optionally use vendor config from cargo-vendorJustin Humm2018-09-11
|/ | | | | | | | | | | | | | | | | | | | | | | | | By setting useRealVendorConfig explicitly to true, the actual (slightly modified) config generated by cargo-vendor is used. This solves a problem, where the static vendor config in pkgs/build-support/rust/default.nix would not sufficiently replace all crates Cargo is looking for. As useRealVendorConfig (and writeVendorConfig in fetchcargo) default to false, there should be no breakage in existing cargoSha256 hashes. Nethertheless, imho using this new feature should become standard. A possible deprecation path could be: - introduce this patch - set useRealVendorConfig explicitly to false whereever cargoSha256 is set but migration is not wanted yet. - after some time, let writeVendorConfig default to true - when useRealVendorConfig is true everywhere cargoSha256 is set and enough time is passed, `assert cargoVendorDir == null -> useRealVendorConfig;`, remove old behaviour - after some time, remove all appearences of useRealVendorConfig and the parameter itself