)]}'
{
  "commit": "d90676fdde67b6e3f76819092c86882aa9306a7c",
  "tree": "1bdf42625273a804c7a54deff402a45d2cfae336",
  "parents": [
    "40f9f3c061e30af857a54f35a5dd670d75e1c87d"
  ],
  "author": {
    "name": "Martin Stjernholm",
    "email": "mast@google.com",
    "time": "Sat Jan 11 00:37:30 2020 +0000"
  },
  "committer": {
    "name": "Martin Stjernholm",
    "email": "mast@google.com",
    "time": "Thu Feb 13 17:46:48 2020 +0000"
  },
  "message": "Reland: Get the dex2oat host tool path from module dependency on the\nbinary module.\n\nThis uses the Once cache for GlobalSoongConfig to propagate the dex2oat\npath from a module dependency to the singletons (both the one that\nwrites out dexpreopt_soong.config and the one that creates the\ndexpreopted boot images). Unless dexpreopting is disabled altogether\nthrough DisablePreopt in dexpreopt.config, that means:\n\n- We must ensure at least one module registers a dex2oat tool\n  dependency and resolves a GlobalSoongConfig using it, or else the\n  singletons fail. That means we litter dex2oat dependencies in java\n  modules even when they won\u0027t get dexpreopted and hence don\u0027t really\n  need them.\n\n- We still assume there\u0027s at least one java_library or android_app in\n  the build.\n\nThis relands https://r.android.com/1205730 without changes - the\nnecessary fixes are in the child CLs.\n\nBug: 145934348\nTest: m\n  (check that out/soong/dexpreopt_soong.config points to dex2oatd64)\nTest: env USE_DEX2OAT_DEBUG\u003dfalse m\n  (check that out/soong/dexpreopt_soong.config points to dex2oat64)\nTest: env OUT_DIR\u003dout-tools prebuilts/build-tools/build-prebuilts.sh\n  on the aosp-build-tools branch\nChange-Id: I66661711b317d1e4ec434861982919bdde19b575\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c5f24e273277b4580aa5b88b78c9bd8a5e8813e7",
      "old_mode": 33188,
      "old_path": "dexpreopt/Android.bp",
      "new_id": "b8f7ea682cab11f72b7d6cbfac5fedebb99b138b",
      "new_mode": 33188,
      "new_path": "dexpreopt/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "7a404f5a694fb7bd8581d9b01098e467e1710c7e",
      "old_mode": 33188,
      "old_path": "dexpreopt/config.go",
      "new_id": "94f1283837bd81a5317e51353599adbe14f26b7d",
      "new_mode": 33188,
      "new_path": "dexpreopt/config.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b572eb35143ff1af88d3a65be146005dab6be73b",
      "new_mode": 33188,
      "new_path": "dexpreopt/testing.go"
    },
    {
      "type": "modify",
      "old_id": "9503ec455293b01f9480d69caf2e1be22e993dcb",
      "old_mode": 33261,
      "old_path": "java/app.go",
      "new_id": "f55fc45a168d858cc71e5675878d0a600654765d",
      "new_mode": 33261,
      "new_path": "java/app.go"
    },
    {
      "type": "modify",
      "old_id": "b20f5f2442beb38fac613760aa4f414cd9011511",
      "old_mode": 33188,
      "old_path": "java/java.go",
      "new_id": "2e53654cc0dc8a255dc4d3f4ecd9b3033451b8fb",
      "new_mode": 33188,
      "new_path": "java/java.go"
    },
    {
      "type": "modify",
      "old_id": "129b17bf79aa82a6b5ba5f254f8cfb367c85b55f",
      "old_mode": 33188,
      "old_path": "java/java_test.go",
      "new_id": "a2226b59e54e463ae6e6036f5f90a5bfdb7f37a0",
      "new_mode": 33188,
      "new_path": "java/java_test.go"
    }
  ]
}
