)]}'
{
  "commit": "89e6425be159d58960cd6a16ef5f2be2c26bfb56",
  "tree": "42276d919dfe4d204c529ade2766c004e8d4389a",
  "parents": [
    "070420dbd622706857c89e85fc802445dfb228ca"
  ],
  "author": {
    "name": "Sylvain Defresne",
    "email": "sdefresne@chromium.org",
    "time": "Fri Aug 07 13:01:06 2020 +0200"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Aug 07 13:09:11 2020 +0000"
  },
  "message": "Add support for building .swift files\n\nThis CL allow listing .swift files in sources of compiler target\n(source_set, executable, static_library, shared_library). Mixing\nwith other types of source files is disallowed due to complexity\nof implementation (difficult to decide in which order the files\nneed to be built).\n\nThis adds a new \"swift\" tool that must always list a .swiftmodule\nfile as output but can generate additional outputs (.h, .o, ...).\nTo support whole module optimisation, the tool can have partial\noutputs (i.e. have 1:1 mapping between source and output) or not.\n\nThe .swiftmodule are propagated both to direct and public deps\nfor generation of module search path (expanded by {{module_dirs}})\nand to linkable target (expanded as {{modules}}) to embed the\nmodule AST in the linked binary.\n\nBased on the investigation at https://goto.google.com/swift-gn.\n\nBug: 121\nChange-Id: If92b49f15e9ebb273feff7c935ca51698c27afa3\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/9180\nCommit-Queue: Sylvain Defresne \u003csdefresne@chromium.org\u003e\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7a86ec07a95c88a83bb46fe4dbae7de679bc82f",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "9353fb17b1bb3ddc05ffaae92344acbe98bb4bea",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "8fc86fd10bf29772a3475ab5fbffb55e5d155ad8",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "168d64e456baeb5d3b35eea7f6306bcd92cc3fca",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "6c085e6d69b23dbfe5a453e7d790907b2a588d07",
      "old_mode": 33188,
      "old_path": "src/gn/binary_target_generator.cc",
      "new_id": "485884e81bf3e55a8b3949e6d2d935333b8d2a47",
      "new_mode": 33188,
      "new_path": "src/gn/binary_target_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "b9b7eba0e3301159d31941e3a61ec6c02732bb2c",
      "old_mode": 33188,
      "old_path": "src/gn/c_substitution_type.cc",
      "new_id": "d0c04c8f63dc29b6a1439247b1cc21a2164b8a8e",
      "new_mode": 33188,
      "new_path": "src/gn/c_substitution_type.cc"
    },
    {
      "type": "modify",
      "old_id": "d4ba60638f4ead64604b571c18616e5be45b1986",
      "old_mode": 33188,
      "old_path": "src/gn/c_substitution_type.h",
      "new_id": "63eb627872d245adfdb3a1730986ee03105fe2f4",
      "new_mode": 33188,
      "new_path": "src/gn/c_substitution_type.h"
    },
    {
      "type": "modify",
      "old_id": "dc391d140c238b9b3397996890f2f6fef8f89d8e",
      "old_mode": 33188,
      "old_path": "src/gn/c_tool.cc",
      "new_id": "767b3241a118074238059559f5d52b63deb6f9e9",
      "new_mode": 33188,
      "new_path": "src/gn/c_tool.cc"
    },
    {
      "type": "modify",
      "old_id": "01b24310cba028a0df621b843e0d84836a61db06",
      "old_mode": 33188,
      "old_path": "src/gn/c_tool.h",
      "new_id": "fe32e53a591f4b21db4395b703a6cf3618f1e64c",
      "new_mode": 33188,
      "new_path": "src/gn/c_tool.h"
    },
    {
      "type": "modify",
      "old_id": "cdb2e74ccfef9d6bbdc6c40e8dd937a19f7e229c",
      "old_mode": 33188,
      "old_path": "src/gn/command_desc.cc",
      "new_id": "e36cf0bf69e5c4ae7defabc1c9fb628c9b2fe458",
      "new_mode": 33188,
      "new_path": "src/gn/command_desc.cc"
    },
    {
      "type": "modify",
      "old_id": "ba5ddf780aec96947c6a5294d5988588734fe60e",
      "old_mode": 33188,
      "old_path": "src/gn/config_values.cc",
      "new_id": "9bddf9937652478ab5e92fa2aea3aadb09bb2e06",
      "new_mode": 33188,
      "new_path": "src/gn/config_values.cc"
    },
    {
      "type": "modify",
      "old_id": "ef57b2630706b4010e5a23d688fc968d8c47b976",
      "old_mode": 33188,
      "old_path": "src/gn/config_values.h",
      "new_id": "6361e78e9659bd9e101e0852fe6f002835043ef8",
      "new_mode": 33188,
      "new_path": "src/gn/config_values.h"
    },
    {
      "type": "modify",
      "old_id": "c8070d26575fb8cde6f07a2c02c0129cdcd35eab",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_generator.cc",
      "new_id": "fac03d774d6e5b4ec5b56e7bc556a39ac877f454",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "b9740d19c2066263a90707cc860fdec25a590005",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_generator.h",
      "new_id": "b7b008ca442e7b7e76f4507dd9b52d0236e6ff31",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_generator.h"
    },
    {
      "type": "modify",
      "old_id": "3865ac078005e742f46fe9ef6e34facfe7f35e4a",
      "old_mode": 33188,
      "old_path": "src/gn/desc_builder.cc",
      "new_id": "d8639b1f07b4c02fbfe125021d261ac7869004b2",
      "new_mode": 33188,
      "new_path": "src/gn/desc_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "a6642d136b0cbb33a67324c7bb3c87c6fc6bfbb5",
      "old_mode": 33188,
      "old_path": "src/gn/function_toolchain.cc",
      "new_id": "1288511c8296a3409aa784cbfcb08d1478da2bf9",
      "new_mode": 33188,
      "new_path": "src/gn/function_toolchain.cc"
    },
    {
      "type": "modify",
      "old_id": "098a595eb1a7bfd0d0020dc16c77247cae667781",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.cc",
      "new_id": "08e8c93e12f8ea89ae7b2afa8b2db4db5ff5e67d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "142ca9e038026c7b50f6751d0e6a2a7d84337589",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.h",
      "new_id": "76a8a4eb798765fcc17697367b14e63560832902",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "80448a81cb78e23e77e59149332210bdbfc849a3",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.cc",
      "new_id": "62edd4f65be86e4fe87589b5cc788753bb1145b9",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "1608af1f3a8d3736b9dd138b8adf1cff56151dc3",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.h",
      "new_id": "695c4000e2426395e5987f342c3ea0f2fa7e7664",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "fbd6ff42581f6252f766dc3e5535be53f0e85088",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer_unittest.cc",
      "new_id": "f650e44548022a3abf7390b44e2e322eb966e1ae",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "3793ab0d367b9a938a60df952b4d7829e42a0eef",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_toolchain_writer.cc",
      "new_id": "7be771932c78da920234bf9f84127b6cced7b5f1",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_toolchain_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "0b0e8e506ff1e5ca8e0e9fb6a5ce9805189b5f85",
      "old_mode": 33188,
      "old_path": "src/gn/source_file.cc",
      "new_id": "89c8cf0d1ed2d7b236b3147ca1f9bd8bc5324175",
      "new_mode": 33188,
      "new_path": "src/gn/source_file.cc"
    },
    {
      "type": "modify",
      "old_id": "1e156febd3475076b3034ff2a2b0f5a5a6603652",
      "old_mode": 33188,
      "old_path": "src/gn/source_file.h",
      "new_id": "5ad8f6279b4206d2f660fd5d2f3d6af67ca8e636",
      "new_mode": 33188,
      "new_path": "src/gn/source_file.h"
    },
    {
      "type": "modify",
      "old_id": "199faa3d2031ade17778d7938b57be0c691627eb",
      "old_mode": 33188,
      "old_path": "src/gn/substitution_writer.cc",
      "new_id": "6fe83cee37cd9115914de7415042a83d78f1ca9b",
      "new_mode": 33188,
      "new_path": "src/gn/substitution_writer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c15e319bb5b0e720d52f9373332b883a34abbaf7",
      "new_mode": 33188,
      "new_path": "src/gn/swift_values.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c52973843a974f11ccc02a7223cbe521d74db484",
      "new_mode": 33188,
      "new_path": "src/gn/swift_values.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ba56e2871672fd0c0db3f649325309a47e15db25",
      "new_mode": 33188,
      "new_path": "src/gn/swift_values_generator.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "211c059248688a844e9e6d976bcab9c3b8893d99",
      "new_mode": 33188,
      "new_path": "src/gn/swift_values_generator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cf9d3d48aafb32b3a1c52ac94122633ca6d2162f",
      "new_mode": 33188,
      "new_path": "src/gn/swift_variables.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c43046872d0c38133a64834cef99ae0bc54b5269",
      "new_mode": 33188,
      "new_path": "src/gn/swift_variables.h"
    },
    {
      "type": "modify",
      "old_id": "97e3d3793b3a35784696c49f5037ec78a10a755f",
      "old_mode": 33188,
      "old_path": "src/gn/target.cc",
      "new_id": "39bf49207541c8886ec91a742500aec22a4edb29",
      "new_mode": 33188,
      "new_path": "src/gn/target.cc"
    },
    {
      "type": "modify",
      "old_id": "6332880b0249bc0fa6df923a561e86487170cef9",
      "old_mode": 33188,
      "old_path": "src/gn/target.h",
      "new_id": "336c20c62236889405955e46d3ccd70b50b53012",
      "new_mode": 33188,
      "new_path": "src/gn/target.h"
    },
    {
      "type": "modify",
      "old_id": "ae9c93972413cba75dde17e039c164627e21287a",
      "old_mode": 33188,
      "old_path": "src/gn/test_with_scope.cc",
      "new_id": "583eebb525cd22bd27805e9e0fa3fe33e0de42f3",
      "new_mode": 33188,
      "new_path": "src/gn/test_with_scope.cc"
    },
    {
      "type": "modify",
      "old_id": "9fc10ced29c6750d1dda5e0f4b43abe22423f593",
      "old_mode": 33188,
      "old_path": "src/gn/tool.cc",
      "new_id": "5e4186dbe18ae838c5c86c9c28ab2245dccd35cb",
      "new_mode": 33188,
      "new_path": "src/gn/tool.cc"
    },
    {
      "type": "modify",
      "old_id": "7fe6ed57c8a08857ae9ea47fc78aada9c19c04b6",
      "old_mode": 33188,
      "old_path": "src/gn/tool.h",
      "new_id": "e64935f548b3c814d950cdec7b0008cb554f19d8",
      "new_mode": 33188,
      "new_path": "src/gn/tool.h"
    },
    {
      "type": "modify",
      "old_id": "b543dd26310d2d76ac8ee41d6bd5fad8f7cf18e1",
      "old_mode": 33188,
      "old_path": "src/gn/variables.cc",
      "new_id": "d575a14c081da818d1b1a0b395e79f5290896ee7",
      "new_mode": 33188,
      "new_path": "src/gn/variables.cc"
    },
    {
      "type": "modify",
      "old_id": "acd78af42268080333351ff70f0ec64d36acbc94",
      "old_mode": 33188,
      "old_path": "src/gn/variables.h",
      "new_id": "f5794d1d691e68b0a07fcaae1e5c771230706afe",
      "new_mode": 33188,
      "new_path": "src/gn/variables.h"
    }
  ]
}
