)]}'
{
  "commit": "d92aee2294ac1eb1f3143d9016688f0164d0addd",
  "tree": "0a39f6297260ae103309687ba61969ed2b6ea246",
  "parents": [
    "4619125bd337d259c0dc9f958d0102adc99d2543"
  ],
  "author": {
    "name": "XiaoPeng Li",
    "email": "sweeper1203@gmail.com",
    "time": "Fri Nov 14 22:40:40 2025 +0800"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Nov 25 06:43:12 2025 -0800"
  },
  "message": "Support weak_libraries\n\nSometimes we need to link to libraries that are only supported in newer versions of macOS,\nor symbols that only exist in newer versions of macOS. The `-weak_library` linking parameter\ncan help us achieve this. When a library file or symbol is missing, dyld will bind the symbol\nto NULL (instead of immediately exiting the program), allowing the application to determine\nat runtime whether to use the new feature.\n\nRelated to https://gn-review.googlesource.com/c/gn/+/6660\n\nUnlike -weak_framework, -weak_library requires a library file path, not\na name.\n\nReference: https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html\nChange-Id: I6fa09f798108a805456b2def6d2edc56d36d100b\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/20320\nCommit-Queue: Takuto Ikuta \u003ctikuta@google.com\u003e\nReviewed-by: Sylvain Defresne \u003csdefresne@chromium.org\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "489dfbbdc70e45aa2588264c5b35863d294df882",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "61a227aeecf0c8c37870d825993fc84fc05aa220",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "e0bea41104b638c1cd5f6032b70d3d9ea7470829",
      "old_mode": 33188,
      "old_path": "src/gn/c_tool.cc",
      "new_id": "3817f82f391a26305ce9cd4a7f11867bc11290b6",
      "new_mode": 33188,
      "new_path": "src/gn/c_tool.cc"
    },
    {
      "type": "modify",
      "old_id": "b50d4e968a7ab452d2d69623587300ed7589f72d",
      "old_mode": 33188,
      "old_path": "src/gn/command_desc.cc",
      "new_id": "491afa35e3d86b96c9c3c4e92fc849e9ee1c4ac0",
      "new_mode": 33188,
      "new_path": "src/gn/command_desc.cc"
    },
    {
      "type": "modify",
      "old_id": "9bddf9937652478ab5e92fa2aea3aadb09bb2e06",
      "old_mode": 33188,
      "old_path": "src/gn/config_values.cc",
      "new_id": "3bab686a899547f3a72668a19e613232cc88d552",
      "new_mode": 33188,
      "new_path": "src/gn/config_values.cc"
    },
    {
      "type": "modify",
      "old_id": "4a865629324a91e43efdfde29d2b3b634ea64de7",
      "old_mode": 33188,
      "old_path": "src/gn/config_values.h",
      "new_id": "24a235a441a18de4b535b1780bdc8b1ea1f9874c",
      "new_mode": 33188,
      "new_path": "src/gn/config_values.h"
    },
    {
      "type": "modify",
      "old_id": "a2ae225c33ca75e75f24bf0b80e3742ac191e832",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_generator.cc",
      "new_id": "cf91a8ce3cc64c6f426cad4403628787b20f5943",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "def45a3a20723a957625ae969d2654f6cbc745d4",
      "old_mode": 33188,
      "old_path": "src/gn/desc_builder.cc",
      "new_id": "1b80302eda139caf1b9b001062a23a2d2fd15379",
      "new_mode": 33188,
      "new_path": "src/gn/desc_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "585af9c141d421eaa7d4dd56e46fae99c2234549",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.cc",
      "new_id": "ac45e976aafb7e7a0b6106b6dc8e2a09e07137b4",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "93666fbaa3cdc6171da6d7ee988ef56f6cff3e3d",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util.h",
      "new_id": "1ec2e336f6ccca02e4ecacf6728a6a686ab4e774",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util.h"
    },
    {
      "type": "modify",
      "old_id": "201f6556fa8f695d101dd5ac9d428c196bf9209b",
      "old_mode": 33188,
      "old_path": "src/gn/resolved_target_data.cc",
      "new_id": "efe65ceb67224f5c9fdb0894910c792aa0413ceb",
      "new_mode": 33188,
      "new_path": "src/gn/resolved_target_data.cc"
    },
    {
      "type": "modify",
      "old_id": "a2743fcdd8a36378459804fff191517331efe3bd",
      "old_mode": 33188,
      "old_path": "src/gn/resolved_target_data.h",
      "new_id": "febbf39ed31afb6a52b7ca9634a08e3c30ea55dc",
      "new_mode": 33188,
      "new_path": "src/gn/resolved_target_data.h"
    },
    {
      "type": "modify",
      "old_id": "b95c64ba7bd9c2223ea12db3ed5aa30b270313bb",
      "old_mode": 33188,
      "old_path": "src/gn/tool.h",
      "new_id": "68e919cd44c11ea5ababaae399f3a9256350b9c4",
      "new_mode": 33188,
      "new_path": "src/gn/tool.h"
    },
    {
      "type": "modify",
      "old_id": "1754172bc03f47b32a3c790ab2e70aa732c5825d",
      "old_mode": 33188,
      "old_path": "src/gn/variables.cc",
      "new_id": "2c6f8e41bb4b3a1a97a6bec9a00e8bef871864dc",
      "new_mode": 33188,
      "new_path": "src/gn/variables.cc"
    },
    {
      "type": "modify",
      "old_id": "b4d28626755d905edd0a8f0a3667ed3a1db2e54e",
      "old_mode": 33188,
      "old_path": "src/gn/variables.h",
      "new_id": "1f3c7fe1087e422dae417e00cc7b33371c5d8011",
      "new_mode": 33188,
      "new_path": "src/gn/variables.h"
    }
  ]
}
