)]}'
{
  "commit": "1e3fd10c5df6b704fc764ee388149e4f32862823",
  "tree": "33b466a55eca0833792cbe3eae98e85f018fb5a5",
  "parents": [
    "46ad4c45254d1d72d25a36f1ef3fd61694e34f49"
  ],
  "author": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Thu Jul 16 15:38:21 2020 -0700"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Jul 17 23:14:46 2020 +0000"
  },
  "message": "[rust] Write {{sources}} ninja variable for Rust targets\n\nRust compiles a crate using all source files in a single command.\nHowever, rustc only requires the source_root, and then traverses\nthe series of `mod` statements and `include_str!` macros to find\nall the source files.\n\nOn Fuchsia, it is desired to enforce that all Rust source files\nare listed explicitly in BUILD.gn files.\n\nIn order to make it possible to enforce that the list matches\nthe depfile rustc emits, the set of source files needs to be\naccessible in the `tool` target for `rust_bin`, `rust_library`, etc.\n\nThis change writes the source files to a new ninja variable\n`sources`. `inputs` are also included in this variable, since a\nRust crate can read non-rust files at build-time\n(eg. `include_str!(\"foo.json\")`).\n\nChange-Id: I076232739c54b78508db13549a3db4894b16ea11\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/9360\nReviewed-by: Tyler Mandry \u003ctmandry@google.com\u003e\nReviewed-by: Petr Hosek \u003cphosek@google.com\u003e\nCommit-Queue: Petr Hosek \u003cphosek@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1584c44dbbdd4767dbc60850bd88e1712d7c8529",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.cc",
      "new_id": "74371e0d2a2234c0a75bd7c9ac6f99e61d5c5997",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "4d6e146ed99fc6cecf82d94b607ecfbc59fb3e4b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.h",
      "new_id": "bd060aba27dcbc72efc89ee8a18cf5ff1098c16e",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "be19f3b0b9fa26f09c618f4d9b7be5e2c2fe8c92",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc",
      "new_id": "34d87f04455d0c1334aea7fa5fca5419b64ee490",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "8fd6a407f71436ab0d055edf9798d87b45b51b70",
      "old_mode": 33188,
      "old_path": "src/gn/rust_substitution_type.cc",
      "new_id": "c4170196e923f81f8f177043ce01617ab408c48b",
      "new_mode": 33188,
      "new_path": "src/gn/rust_substitution_type.cc"
    },
    {
      "type": "modify",
      "old_id": "8e9b5c89b56d2c335831d43c5aa8494829427b23",
      "old_mode": 33188,
      "old_path": "src/gn/rust_substitution_type.h",
      "new_id": "2eeb7dc763a50df536c08fc70e3602ff95537fc9",
      "new_mode": 33188,
      "new_path": "src/gn/rust_substitution_type.h"
    }
  ]
}
