)]}'
{
  "commit": "484245b93ef5cfe49d7ebb5df7046d11b3d48234",
  "tree": "799f65f50f3c8d3bcc0570641e2fbdd821f5f0e4",
  "parents": [
    "b722d8baf1a5ca7f0f5d88081e8378f119396ca8"
  ],
  "author": {
    "name": "Scott Graham",
    "email": "scottmg@chromium.org",
    "time": "Tue Aug 11 10:58:50 2020 -0700"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Aug 21 19:48:33 2020 +0000"
  },
  "message": "clang: Fixes to module support\n\n1. -fmodules-embed-all-files is a cc1 flag, and should have been passed\n   to clang++ via -Xclang.\n\n2. Don\u0027t require a .cc in the target to emit the module_deps variables\n   (this is to be able to compile a target that contains only a\n   .modulemap, e.g. the C++ std module).\n\n3. Add {{module_deps_no_self}}, which is the same as {{module_deps}}\n   except that it excludes the flags to include the pcm for the current\n   target.\n\n   That is, for A depending on B, and both using modules, when building\n   for A, {{module_deps}} will reference both A.pcm and B.pcm, and so\n   can be used to build .cc files in A. By contrast,\n   {{module_deps_no_self}} for A will only reference B.pcm, and so can\n   be used to build A.pcm.\n\nBug: fuchsia:27276\nChange-Id: I239d1c5cd4d5d167251801b1347b02e8d89caeee\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/9680\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nCommit-Queue: Scott Graham \u003cscottmg@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "257f474af2917e6b424f38b9aadeaf334395b17f",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "f8c2bd44e927e31da03924ece56d2349d3deea73",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "618e846c02a87dd46492f0cea8f1187a8c792286",
      "old_mode": 33188,
      "old_path": "src/gn/c_substitution_type.cc",
      "new_id": "ea47ce9da9c6459a100153fa6926dd96e9f39f3f",
      "new_mode": 33188,
      "new_path": "src/gn/c_substitution_type.cc"
    },
    {
      "type": "modify",
      "old_id": "e4255fdbc3aec213bff53df600bcc6be96687af1",
      "old_mode": 33188,
      "old_path": "src/gn/c_substitution_type.h",
      "new_id": "1f4e90e06a387f857f5707b593dd9bbc8a0a91f4",
      "new_mode": 33188,
      "new_path": "src/gn/c_substitution_type.h"
    },
    {
      "type": "modify",
      "old_id": "52ac8f7a55a85bda2e761cc4fd307908377a0bc8",
      "old_mode": 33188,
      "old_path": "src/gn/function_toolchain.cc",
      "new_id": "267198e53603534de1cede4bd3eccb9ed7913426",
      "new_mode": 33188,
      "new_path": "src/gn/function_toolchain.cc"
    },
    {
      "type": "modify",
      "old_id": "5f4a14bbcdd3eb5d7434fbc817a004428a40be2a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.cc",
      "new_id": "17f9c0855dae4010036fa3a3078a168e285d67fc",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "c2e63e4aaf402274035336255c4e8c53432ec786",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.h",
      "new_id": "bbc71c534efd215a1de4b0ba52f41473f3bc61eb",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "542221a59878f636148115ad70437d33fed9239a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer_unittest.cc",
      "new_id": "6290301649ad8be532eb1d025f4c9b50ce614b4b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer_unittest.cc"
    }
  ]
}
