)]}'
{
  "commit": "725ea968acd715552fa056099ceffec1e0ff90eb",
  "tree": "ff402407dc1aaaccf260674b3d6942629dcd8c19",
  "parents": [
    "3e5f4aa5c5535cf95283a376dda0ae82200caa49"
  ],
  "author": {
    "name": "Simon Tatham",
    "email": "simon.tatham@arm.com",
    "time": "Thu Nov 20 15:37:27 2025 +0000"
  },
  "committer": {
    "name": "Simon Tatham",
    "email": "simon.tatham@arm.com",
    "time": "Wed Nov 26 14:48:45 2025 +0000"
  },
  "message": "De-duplicate dependencies propagated through interface libraries\n\nWhen processing an indirect dependency of target `A` on target `C` via\nan interface library B, `cmComputeTargetDepends::AddTargetDepend` was\nnot checking for duplicate dependencies, so that if `A` depended on `C`\nvia multiple interface libraries, the dependency graph built in\ncmComputeTargetDepends would have duplicate edges.  In a real project\n(LLVM libc) this was causing cmake to consume multiple gigabytes of RAM.\n\nFixes: #27386\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "986a314c52577367d7441c46508c2145b0e9097e",
      "old_mode": 33188,
      "old_path": "Source/cmComputeTargetDepends.cxx",
      "new_id": "4b165b1197a2c62da0433ba7a66fb17669ae78c4",
      "new_mode": 33188,
      "new_path": "Source/cmComputeTargetDepends.cxx"
    },
    {
      "type": "modify",
      "old_id": "cb5bd1694522f66a7315569c9be2aca69a3925cb",
      "old_mode": 33188,
      "old_path": "Source/cmComputeTargetDepends.h",
      "new_id": "26569b599c7d5ed78aa4a9152387e87e4882de9b",
      "new_mode": 33188,
      "new_path": "Source/cmComputeTargetDepends.h"
    },
    {
      "type": "modify",
      "old_id": "10a2d511b96320cac96e071e29b241b6e24f0809",
      "old_mode": 33188,
      "old_path": "Tests/RunCMake/InterfaceLibrary/RunCMakeTest.cmake",
      "new_id": "a92b06ab2066520d5488b30a28efddb31fed8ecf",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/InterfaceLibrary/RunCMakeTest.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "573541ac9702dd3969c9bc859d2b91ec1f7e6e56",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/InterfaceLibrary/unique_dependencies-result.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5829b1528cd01a8ba185d8228cbb39ab9f4e6448",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/InterfaceLibrary/unique_dependencies-stderr.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d27720aecf00054ebf5ccbc2f958d2d78b9f08cd",
      "new_mode": 33188,
      "new_path": "Tests/RunCMake/InterfaceLibrary/unique_dependencies.cmake"
    }
  ]
}
