)]}'
{
  "commit": "4fb095d3f70f624c73bfdd156c5179fad535287d",
  "tree": "9717ab6045d809d5bae1bafe9b1a0088332ddf99",
  "parents": [
    "d010969ecc312c4c9512d4b4987b2589087df01a"
  ],
  "author": {
    "name": "danakj",
    "email": "danakj@chromium.org",
    "time": "Thu May 30 11:40:51 2024 -0400"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 31 15:06:04 2024 +0000"
  },
  "message": "Support linking frameworks and swiftmodules in Rust targets\n\nFrameworks are straightforward and just need to be added to the rustdeps\nline using the RustTool\u0027s framework switch. However we note that\nweak_frameworks is not somethinng rustc has support for, so we just use\n-framework for now to avoid dumping the framework file name into the\ncommandline and causing more confusing compiler errors.\n\nSwiftmodules require a flag that is passed through to the Rust linker,\nbut the Rust linker can be a regular linker (link.exe, lld, etc) or can\nbe a C compiler (clang). If it\u0027s the latter, then the C tool\u0027s\nswiftmodule_switch will work (prefixed with `-Clink-arg\u003d`). However in\nthe former case, we can not reuse the C tool\u0027s switch. So we add\nrust_swiftmodule_switch to be specified as a switch that is passed to\nthe Rust compiler (not its linker).\n\nBug: 369\nChange-Id: I44147172bda2f80ee4f3d89bf32867aaa617adb8\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/17320\nCommit-Queue: danakj \u003cdanakj@chromium.org\u003e\nReviewed-by: Dana Jansens \u003cdanakj@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "81f58e88be4aa64adc1668d71072d51563d4b8fe",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "a9fad5b6f53199c48740468d3e6d05fdf1ae60c7",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "b5810514b7bc44b4ac66f3cf443e1730fbb31890",
      "old_mode": 33188,
      "old_path": "src/gn/json_project_writer_unittest.cc",
      "new_id": "a026b40e66d3fb1db40ae97c7f1c4d4efa33744f",
      "new_mode": 33188,
      "new_path": "src/gn/json_project_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "a400cf7dda807a1fdae6804525cfc9f36e10651a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.cc",
      "new_id": "879e70d9cea782730226ef64c7592c93ca415a0b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "69ec916454b47651955ad800cc9d6975def93743",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.h",
      "new_id": "83e1203401f444310ca28322e24402f72af1e4d1",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "e3468a99f9e46db72b32171314e951ad4a7b73d4",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc",
      "new_id": "8ef944fc2354f21b6785c4d31ab763116d00e1de",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "5b5cc6265af1afa158634c28db6bd6e0ae301432",
      "old_mode": 33188,
      "old_path": "src/gn/rust_tool.cc",
      "new_id": "f799d7363ff0c883818f8a6a10690855719f5bdf",
      "new_mode": 33188,
      "new_path": "src/gn/rust_tool.cc"
    },
    {
      "type": "modify",
      "old_id": "4f33a59add6a36824498ea42998e3e0dc3afb167",
      "old_mode": 33188,
      "old_path": "src/gn/test_with_scope.cc",
      "new_id": "1fae3779f358f36d895555d3296f6f27cf5ff33b",
      "new_mode": 33188,
      "new_path": "src/gn/test_with_scope.cc"
    }
  ]
}
