)]}'
{
  "commit": "0cc6436ef52341166182760dd4611e586d7cece1",
  "tree": "94987dc758af5bdd22b80998c8713e816ed4b24a",
  "parents": [
    "f04c457a51e80b45550e8b6e2c4c7080145f6c92"
  ],
  "author": {
    "name": "Cosmin Truta",
    "email": "ctruta@gmail.com",
    "time": "Thu May 29 22:55:00 2025 +0300"
  },
  "committer": {
    "name": "Cosmin Truta",
    "email": "ctruta@gmail.com",
    "time": "Thu May 29 22:55:00 2025 +0300"
  },
  "message": "build: Repair and reduce the CMake build dependency graph\n\nA funny thing happened while refactoring the function argument parsing\nin the `PNGGenConfig` module: the processing of dependencies inside\nthe CMake function `generate_copy` got fixed, thanks to an inadvertent\ntypo correction!\n\nGoing down the rabbit hole, we uncovered two issues:\n\n 1. A typo in `scripts/cmake/PNGGenConfig.cmake` caused a dependency\n    declaration to disappear, disrupting the graph. Fortunately, this\n    disruption was being mitigated by an additional set of (redundant)\n    symbolic target declarations that kept the CMake build going.\n\n 2. The exact string matching inside `scripts/cmake/gensrc.cmake.in`\n    imposed an artificial limitation, disallowing the use of absolute\n    file paths.\n\nThe typo correction in (1), and the use of regex matching instead of\nexact string matching in (2), allowed us to use absolute file paths\nin the main CMake file, consistently, thus allowing CMake to recognize\nthem as uniquely-identifiable nodes in the dependency graph. There\nshould be no further need to have extra symbolic targets for proper\nnode identification.\n\nIn the end, we shaved off the redundant symbolic target declarations,\nretaining only `png_genfiles` and `png_genprebuilt`.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "89c3a105a1a803a649ebec227ce71aed136139a5",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "4fc7508c3f833c84bb176e0182f25f6966d7e22a",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "4a0030edde1f18f7c809770a3f26b39465dbe3a9",
      "old_mode": 33188,
      "old_path": "scripts/cmake/PNGGenConfig.cmake",
      "new_id": "dd66b911319cd0636eb4acf255c51ae0e6745491",
      "new_mode": 33188,
      "new_path": "scripts/cmake/PNGGenConfig.cmake"
    },
    {
      "type": "modify",
      "old_id": "52dab8d2bcddb4f44fc0e80e72cb179b8b28ec8f",
      "old_mode": 33188,
      "old_path": "scripts/cmake/gensrc.cmake.in",
      "new_id": "f915394a2c1cc52102fad5d2eb44f6d2a92794d8",
      "new_mode": 33188,
      "new_path": "scripts/cmake/gensrc.cmake.in"
    }
  ]
}
