Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
  2. index 2999c3d4c1d..d3f9ded4a04 100644
  3. --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
  4. +++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
  5. @@ -3,11 +3,11 @@
  6. dependencies,
  7. crateFeatures, libName, release, libPath,
  8. crateType, metadata, crateBin, hasCrateBin,
  9. - extraRustcOpts, verbose, colors }:
  10. + extraRustcOpts, verbose, colors, renames }:
  11.  
  12. let
  13.  
  14. - deps = makeDeps dependencies;
  15. + deps = makeDeps dependencies renames;
  16. rustcOpts =
  17. lib.lists.foldl' (opts: opt: opts + " " + opt)
  18. (if release then "-C opt-level=3" else "-C debuginfo=2")
  19. diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
  20. index 169adcf2d43..7993f789d43 100644
  21. --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
  22. +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
  23. @@ -15,6 +15,7 @@
  24. , libName
  25. , libPath
  26. , release
  27. +, renames
  28. , target_os
  29. , verbose
  30. , workspace_member }:
  31. @@ -24,7 +25,7 @@ let version_ = lib.splitString "-" crateVersion;
  32. rustcOpts = lib.lists.foldl' (opts: opt: opts + " " + opt)
  33. (if release then "-C opt-level=3" else "-C debuginfo=2")
  34. (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
  35. - buildDeps = makeDeps buildDependencies;
  36. + buildDeps = makeDeps buildDependencies renames;
  37. authors = lib.concatStringsSep ":" crateAuthors;
  38. optLevel = if release then 3 else 0;
  39. completeDepsDir = lib.concatStringsSep " " completeDeps;
  40. diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
  41. index acb2ee63cce..d50f6c7668e 100644
  42. --- a/pkgs/build-support/rust/build-rust-crate/default.nix
  43. +++ b/pkgs/build-support/rust/build-rust-crate/default.nix
  44. @@ -13,13 +13,15 @@ let
  45. then "macos"
  46. else stdenv.hostPlatform.parsed.kernel.name;
  47.  
  48. - makeDeps = dependencies:
  49. + makeDeps = dependencies: renames:
  50. (lib.concatMapStringsSep " " (dep:
  51. - let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in
  52. + let
  53. + extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName;
  54. + name = lib.strings.replaceStrings ["-"] ["_"] (builtins.getAttr dep.libName renames); in
  55. (if lib.lists.any (x: x == "lib") dep.crateType then
  56. - " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
  57. + " --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
  58. else
  59. - " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
  60. + " --extern ${name}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
  61. ) dependencies);
  62.  
  63. echo_build_heading = colors: ''
  64. @@ -60,7 +62,7 @@ let
  65. in
  66.  
  67. crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides,
  68. - dependencies, buildDependencies,
  69. + dependencies, buildDependencies, renames,
  70. extraRustcOpts,
  71. preUnpack, postUnpack, prePatch, patches, postPatch,
  72. preConfigure, postConfigure, preBuild, postBuild, preInstall, postInstall }:
  73. @@ -71,7 +73,7 @@ let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverr
  74. processedAttrs = [
  75. "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath"
  76. "buildDependencies" "dependencies" "features"
  77. - "crateName" "version" "build" "authors" "colors" "edition"
  78. + "crateName" "renames" "version" "build" "authors" "colors" "edition"
  79. ];
  80. extraDerivationAttrs = lib.filterAttrs (n: v: ! lib.elem n processedAttrs) crate;
  81. buildInputs_ = buildInputs;
  82. @@ -145,13 +147,13 @@ stdenv.mkDerivation (rec {
  83. inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription
  84. crateFeatures libName build workspace_member release libPath crateVersion
  85. extraLinkFlags extraRustcOpts
  86. - crateAuthors crateHomepage verbose colors target_os;
  87. + crateAuthors crateHomepage verbose colors target_os renames;
  88. };
  89. buildPhase = buildCrate {
  90. inherit crateName dependencies
  91. crateFeatures libName release libPath crateType
  92. metadata crateBin hasCrateBin verbose colors
  93. - extraRustcOpts;
  94. + extraRustcOpts renames;
  95. };
  96. installPhase = installCrate crateName metadata;
  97.  
  98. @@ -177,4 +179,5 @@ stdenv.mkDerivation (rec {
  99. postInstall = crate_.postInstall or "";
  100. dependencies = crate_.dependencies or [];
  101. buildDependencies = crate_.buildDependencies or [];
  102. + renames = crate_.renames or {};
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement