fog.bbclass:# simplified-fog.bbclass - 基于manifest精确转换fog:// URI
# 使用提供的manifest.xml数据准确映射到Git地址
DEPENDS_append = " rsync-native"
do_unpack[depends] += "rsync-native:do_populate_sysroot"
python () {
# 从manifest中提取的项目映射数据
d.setVar("MANIFEST_PROJECTS", {
# src项目
"src/devtools/mobile_log_d": ("git01", "yocto-aiv/src/devtools/mobile_log_d", "704c96b2f5c10919975ae26b7a91679f336a3570"),
"src/tinysys/mt8136/common": ("git01", "yocto-aiv/src/tinysys/mt8136/common", "2da30f4bc9e6654b75c8bf6346af0f91278fa1ae"),
"src/tinysys/mt8136/scp": ("git01", "yocto-aiv/src/tinysys/mt8136/scp", "97b916230223b617f1a873b193a3a5c9bfca8531"),
"src/tinysys/mt8136/kernel/FreeRTOS_v10.1.0.1": ("git01", "yocto-aiv/src/tinysys/mt8136/kernel/FreeRTOS_v10.1.0.1", "c7026a3cb1873fb0028e18f126eb7311be57d7ea"),
"src/tinysys/mt8139/common": ("git01", "yocto-aiv/src/tinysys/mt8139/common", "df35b76d47abb30324ddd95300486094cdd384a5"),
"src/tinysys/mt8139/scp": ("git01", "yocto-aiv/src/tinysys/mt8139/scp", "35de138473a700965a07807ed46f0449bd00baab"),
"src/tinysys/mt8139/kernel/FreeRTOS_v10.1.0": ("git01", "yocto-aiv/src/tinysys/mt8139/kernel/FreeRTOS_v10.1.0", "5da1136b068b792e2102416be4f340284f5afa56"),
"src/connectivity/bin/mt7663": ("git01", "yocto-aiv/src/connectivity/bin/mt7663", "f9630ea5a30f748aafd27cb37fd2eae3e17d0ff5"),
"src/connectivity/wlan_cfg": ("git01", "yocto-aiv/src/connectivity/wlan_cfg", "51c69b0957a7050f7e6adb7557468123b1791632"),
"src/kernel/modules/connectivity/wlan_driver/gen4m": ("git01", "yocto-aiv/src/kernel/modules/connectivity/wlan_driver/gen4m", "df71785d303924bf71e2912eb50d234d3bae503c"),
"src/kernel/modules/connectivity/wlan_driver/gen4m_mt7663": ("git01", "yocto-aiv/src/kernel/modules/connectivity/wlan_driver/gen4m_mt7663", "be73b9e0deb12b3c61081fcda80734c30e427465"),
"src/connectivity/wlan_tool/wifi_test_tool": ("git01", "yocto-aiv/src/connectivity/wlan_tool/wifi_test_tool", "1c58df03955d9cce53febf316a1b2e76a7a6f7da"),
"src/kernel/linux/v5.10": ("git01", "yocto-aiv/src/kernel/linux/v5.10", "8346487f13d675d6205a9655db9964285b757f1f"),
"src/bsp/lk2": ("git01", "yocto-aiv/src/bsp/lk2", "c4fe35e5809b144c1bf4e43b4ba9b20e5c24ceec"),
"src/multimedia/mtkcam-core": ("git01", "yocto-aiv/src/multimedia/mtkcam-core", "3fefbb4306816ebac4e4aea78576bffae9f2f5aa"),
"src/multimedia/mtkcam-hwcore": ("git01", "yocto-aiv/src/multimedia/mtkcam-hwcore", "478dd759d4ea0d3b53137fc460917fee4935bba4"),
"src/multimedia/mtkcam-interfaces": ("git01", "yocto-aiv/src/multimedia/mtkcam-interfaces", "e1e7cf53dcfcb83cb5590ad74db1fbff5bfdd20e"),
"src/bsp/trustzone/tf-a-2.4": ("git01", "yocto-aiv/src/bsp/trustzone/tf-a-2.4", "670c8d0169bc7dc9e34a0c64fe6e41b41a8128a6"),
"src/devtools/met-driver": ("git01", "yocto-aiv/src/devtools/met-driver", "408088434d875ae44ee41828dc05b2fbed85f2cf"),
"src/devtools/datool": ("git01", "yocto-aiv/src/devtools/datool", "ab05bcf91b679db37caaa78674ab44677f288fbf"),
"src/devtools/dumpsys-utils": ("git01", "yocto-aiv/src/devtools/dumpsys-utils", "5ec284373314598445103e99f61e1cf588d3734c"),
"src/devtools/meminfo-utils": ("git01", "yocto-aiv/src/devtools/meminfo-utils", "3f31f8fa20cc3554a119f60d73d1fa45a61b81ff"),
"src/devtools/nfsb": ("git01", "yocto-aiv/src/devtools/nfsb", "18209a4490bd0d68c4ae5bbc17d92d12953ebbe8"),
"src/devtools/systrace": ("git01", "yocto-aiv/src/devtools/systrace", "89a67fee3ae379ca6d98a8d7a1a50860a599b6b1"),
"src/graphics/disppq_v2": ("git01", "yocto-aiv/src/graphics/disppq_v2", "6c5118491317675b23f0a02219d2059121330aa1"),
"src/ml/neuropilot/tflite": ("git01", "yocto-aiv/src/ml/neuropilot/tflite", "86356f0129bf8d7f34c9a532de878f9c8e8e4e0b"),
"src/multimedia/aienc_flow": ("git01", "yocto-aiv/src/multimedia/aienc_flow", "24e597a8a182a23b57f3b5dcdb7712f3db7051b2"),
"src/multimedia/apusys": ("git01", "yocto-aiv/src/multimedia/apusys", "1552bde0fee1b290b4b7899ef71d8ba1f06e1feb"),
"src/multimedia/libcamera_apiwrapper": ("git01", "yocto-aiv/src/multimedia/libcamera_apiwrapper", "8c211398d46817360986276d64d37035244ed381"),
"src/multimedia/libcamera_ext": ("git01", "yocto-aiv/src/multimedia/libcamera_ext", "31d76cc373db3f856d2ee5f4056b93fadb2ba715"),
"src/multimedia/libcamera_platform2": ("git01", "yocto-aiv/src/multimedia/libcamera_platform2", "f93ad208b71d74ecc2f63e14149e7c0d5c8c1dcb"),
"src/multimedia/mdpd": ("git01", "yocto-aiv/src/multimedia/mdpd", "a88b1b7f150b6e9a5182695f3ac22b47ab102160"),
"src/multimedia/mdpd5": ("git01", "yocto-aiv/src/multimedia/mdpd5", "4121f758e8c768e47c39c62cc9aa84090d1ec595"),
"src/multimedia/mscp": ("git01", "yocto-aiv/src/multimedia/mscp", "26fd85921ae122f7ba405256628e52899f3bd9eb"),
"src/multimedia/mtkcam-mt8136": ("git01", "yocto-aiv/src/multimedia/mtkcam-mt8136", "2a932602c86866eb55099ca923ed02e02f8e637b"),
"src/multimedia/mtkcam-mt8139": ("git01", "yocto-aiv/src/multimedia/mtkcam-mt8139", "4c1798f042346352b97900f2b64bf7eee1ff9704"),
"src/multimedia/mtkcam-tuning-tool-server": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuning-tool-server", "73bc4a317e32759c33b73407b2b53f2f5054b183"),
"src/multimedia/mtkcam-tuningdb-mt8136": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuningdb-mt8136", "b7494d3b2b6cf6bb79a4ae6050326e0e41e97476"),
"src/multimedia/mtkcam-tuningdb-mt8139": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuningdb-mt8139", "701ef97d734ff020eea220cad2dc82f56e67086d"),
"src/multimedia/mtkcam-utils": ("git01", "yocto-aiv/src/multimedia/mtkcam-utils", "b235649980748870035841f279824a2c55795886"),
"src/multimedia/vppwpe": ("git01", "yocto-aiv/src/multimedia/vppwpe", "ca27bc59a9e4fb1e62bb3320d123538b8567d40f"),
"src/navigation/sensor": ("git01", "yocto-aiv/src/navigation/sensor", "edc19f9c048791b27521ce764165c92f7d0827fc"),
"src/support/efuse_writer": ("git01", "yocto-aiv/src/support/efuse_writer", "a568f9045d7a101686d33852984bcae76c4ed46d"),
"src/support/libnvram_custom": ("git01", "yocto-aiv/src/support/libnvram_custom", "7dfce8620a120737237c2b88e700bf1201e8d01e"),
"src/support/nvram": ("git01", "yocto-aiv/src/support/nvram", "715eb7bc509f71976c8b9106049a26d61864e139"),
"src/support/rpc-binder": ("git01", "yocto-aiv/src/support/rpc-binder", "bdae408e1b54fea307b3c63de73132410927cdd3"),
"src/apps/aiv-base": ("git01", "yocto-aiv/src/apps/aiv-base", "f6773af721a79702390c225e88b62ba9a9926dca"),
"src/apps/atom-base/demos": ("git01", "yocto-aiv/src/apps/atom-base/demos", "9af9910596c0fd0de45befdf2a82ca10961b3628"),
"src/apps/atom-base/demos-oss/lgpl-2.1-or-later": ("git01", "yocto-aiv/src/apps/atom-base/demos-oss/lgpl-2.1-or-later", "1a132b260bff0220edbd667664a68002e438fbbc"),
"src/apps/atom-base/demos-oss/mit": ("git01", "yocto-aiv/src/apps/atom-base/demos-oss/mit", "4e1bdf322dfb9ba12c4af25006cb17d74f6e3054"),
"src/apps/atom-base/progs/property": ("git01", "yocto-aiv/src/apps/atom-base/progs/property", "061c339288079bbde65ab048a9351312b0774b07"),
"src/apps/atom-base/services/ipcd": ("git01", "yocto-aiv/src/apps/atom-base/services/ipcd", "b7dbf32dcf938765a8ca97d85d337988b2e80718"),
"src/bsp/dramk_8136": ("git01", "yocto-aiv/src/bsp/dramk_8136", "6bfadc7933b44befe22639a61ed55e48cbd7096f"),
"src/bsp/dramk_8139": ("git01", "yocto-aiv/src/bsp/dramk_8139", "3704cbe89f05fb0f5dc207dc6349ed22e44d1701"),
"src/bsp/scatter": ("git01", "yocto-aiv/src/bsp/scatter", "2f6835f0a9d415a7585ed72bd4e1a23ed03c79ea"),
"src/bsp/trustzone/atf/v1.6/mt8xxx": ("git01", "yocto-aiv/src/bsp/trustzone/atf/v1.6/mt8xxx", "fec92300314b4b5ca0873b61315fe9cc5cb876a5"),
"src/bsp/trustzone/optee/3.14.0/optee_client": ("git01", "yocto-aiv/src/bsp/trustzone/optee/3.14.0/optee_client", "c348bd342ad62eb8367d62b0a42426b883d19d02"),
"src/bsp/trustzone/optee/3.14.0/optee_test": ("git01", "yocto-aiv/src/bsp/trustzone/optee/3.14.0/optee_test", "b05639bb8c76e147fa33b30ebca19eccca86d0ab"),
"src/bsp/trustzone/teeloader": ("git01", "yocto-aiv/src/bsp/trustzone/teeloader", "33314297a2e250c3440a21e2258ebefba197ed8d"),
"src/bsp/tzapp/common": ("git01", "yocto-aiv/src/bsp/tzapp/common", "6aefce134a63c33a0ff8d697cb211bde3a5da17d"),
"src/bsp/tzapp/common": ("git01", "yocto-aiv/src/bsp/tzapp/common", "6aefce134a63c33a0ff8d697cb211bde3a5da17d"),
"src/devtools/datool": ("git01", "yocto-aiv/src/devtools/datool", "ab05bcf91b679db37caaa78674ab44677f288fbf"),
"src/devtools/dumpsys-utils": ("git01", "yocto-aiv/src/devtools/dumpsys-utils", "5ec284373314598445103e99f61e1cf588d3734c"),
"src/devtools/meminfo-utils": ("git01", "yocto-aiv/src/devtools/meminfo-utils", "3f31f8fa20cc3554a119f60d73d1fa45a61b81ff"),
"src/devtools/met-driver": ("git01", "yocto-aiv/src/devtools/met-driver", "408088434d875ae44ee41828dc05b2fbed85f2cf"),
"src/devtools/nfsb": ("git01", "yocto-aiv/src/devtools/nfsb", "18209a4490bd0d68c4ae5bbc17d92d12953ebbe8"),
"src/devtools/systrace": ("git01", "yocto-aiv/src/devtools/systrace", "89a67fee3ae379ca6d98a8d7a1a50860a599b6b1"),
"src/graphics/disppq_v2": ("git01", "yocto-aiv/src/graphics/disppq_v2", "6c5118491317675b23f0a02219d2059121330aa1"),
"src/ml/neuropilot/tflite": ("git01", "yocto-aiv/src/ml/neuropilot/tflite", "86356f0129bf8d7f34c9a532de878f9c8e8e4e0b"),
"src/multimedia/aienc_flow": ("git01", "yocto-aiv/src/multimedia/aienc_flow", "24e597a8a182a23b57f3b5dcdb7712f3db7051b2"),
"src/multimedia/apusys": ("git01", "yocto-aiv/src/multimedia/apusys", "1552bde0fee1b290b4b7899ef71d8ba1f06e1feb"),
"src/multimedia/libcamera_apiwrapper": ("git01", "yocto-aiv/src/multimedia/libcamera_apiwrapper", "8c211398d46817360986276d64d37035244ed381"),
"src/multimedia/libcamera_ext": ("git01", "yocto-aiv/src/multimedia/libcamera_ext", "31d76cc373db3f856d2ee5f4056b93fadb2ba715"),
"src/multimedia/libcamera_platform2": ("git01", "yocto-aiv/src/multimedia/libcamera_platform2", "f93ad208b71d74ecc2f63e14149e7c0d5c8c1dcb"),
"src/multimedia/mdpd": ("git01", "yocto-aiv/src/multimedia/mdpd", "a88b1b7f150b6e9a5182695f3ac22b47ab102160"),
"src/multimedia/mdpd5": ("git01", "yocto-aiv/src/multimedia/mdpd5", "4121f758e8c768e47c39c62cc9aa84090d1ec595"),
"src/multimedia/mscp": ("git01", "yocto-aiv/src/multimedia/mscp", "26fd85921ae122f7ba405256628e52899f3bd9eb"),
"src/multimedia/mtkcam-mt8136": ("git01", "yocto-aiv/src/multimedia/mtkcam-mt8136", "2a932602c86866eb55099ca923ed02e02f8e637b"),
"src/multimedia/mtkcam-mt8139": ("git01", "yocto-aiv/src/multimedia/mtkcam-mt8139", "4c1798f042346352b97900f2b64bf7eee1ff9704"),
"src/multimedia/mtkcam-tuning-tool-server": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuning-tool-server", "73bc4a317e32759c33b73407b2b53f2f5054b183"),
"src/multimedia/mtkcam-tuningdb-mt8136": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuningdb-mt8136", "b7494d3b2b6cf6bb79a4ae6050326e0e41e97476"),
"src/multimedia/mtkcam-tuningdb-mt8139": ("git01", "yocto-aiv/src/multimedia/mtkcam-tuningdb-mt8139", "701ef97d734ff020eea220cad2dc82f56e67086d"),
"src/multimedia/mtkcam-utils": ("git01", "yocto-aiv/src/multimedia/mtkcam-utils", "b235649980748870035841f279824a2c55795886"),
"src/multimedia/vppwpe": ("git01", "yocto-aiv/src/multimedia/vppwpe", "ca27bc59a9e4fb1e62bb3320d123538b8567d40f"),
"src/navigation/sensor": ("git01", "yocto-aiv/src/navigation/sensor", "edc19f9c048791b27521ce764165c92f7d0827fc"),
"src/support/efuse_writer": ("git01", "yocto-aiv/src/support/efuse_writer", "a568f9045d7a101686d33852984bcae76c4ed46d"),
"src/support/libnvram_custom": ("git01", "yocto-aiv/src/support/libnvram_custom", "7dfce8620a120737237c2b88e700bf1201e8d01e"),
"src/support/nvram": ("git01", "yocto-aiv/src/support/nvram", "715eb7bc509f71976c8b9106049a26d61864e139"),
"src/support/rpc-binder": ("git01", "yocto-aiv/src/support/rpc-binder", "bdae408e1b54fea307b3c63de73132410927cdd3"),
# prebuilt项目
"prebuilt/mt8136/devtools/clang/md32rv/linux-x86": ("git01", "yocto-aiv/prebuilt/mt8136/devtools/clang/md32rv/linux-x86", "16eeefcde00029d00c3772bdce30d4d9206d20d8"),
"prebuilt/mt8136/bsp/trustzone/imgs": ("git01", "yocto-aiv/prebuilt/mt8136/bsp/trustzone/imgs", "076b9d471caf08f6216bc73dba5e8072a45fcbe2"),
"prebuilt/mt8136/bsp/trustzone/optee/3.14.0/optee_os": ("git01", "yocto-aiv/prebuilt/mt8136/bsp/trustzone/optee/3.14.0/optee_os", "cab0b75ed7d27e10f09d84e86e47cb3a9c479df7"),
"prebuilt/mt8136/bsp/trustzone/optee/3.14.0/source": ("git01", "yocto-aiv/prebuilt/mt8136/bsp/trustzone/optee/3.14.0/source", "363e9838fe3850e7c802a677e038cce51f2f4fcc"),
"prebuilt/mt8136/bsp/tzapp": ("git01", "yocto-aiv/prebuilt/mt8136/bsp/tzapp", "747f6df089791cd230fd818c0a099ea1e580812e"),
"prebuilt/mt8136/devtools/aee": ("git01", "yocto-aiv/prebuilt/mt8136/devtools/aee", "abb49d41d81005ce06453a08fb3523b389b38ed8"),
"prebuilt/mt8136/devtools/perf-driver-cus": ("git01", "yocto-aiv/prebuilt/mt8136/devtools/perf-driver-cus", "bc028afed93e43dd0ff5bbf57d5947fb6ca94537"),
"prebuilt/mt8136/graphics/libaal_v2": ("git01", "yocto-aiv/prebuilt/mt8136/graphics/libaal_v2", "deb5d867d03b38a75848eb6608a14f86193acd9a"),
"prebuilt/mt8136/ml/neuropilot/apu_nn": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/apu_nn", "5ceb7f21c32894e36a6dec0c02b16b1b54765653"),
"prebuilt/mt8136/ml/neuropilot/cmdl": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/cmdl", "abf38330bec262aafde114a6ea0969778bcd5012"),
"prebuilt/mt8136/ml/neuropilot/cpu_nn": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/cpu_nn", "a9409895c9d42d29cd6a9474ca345bcf5a8e1a94"),
"prebuilt/mt8136/ml/neuropilot/mtkopencv": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/mtkopencv", "8be3d3f417193b0dbe0f6ad68e152206a37eb57e"),
"prebuilt/mt8136/ml/neuropilot/ncc_tflite": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/ncc_tflite", "ed5269bf69f593e7b26e11f744b87e5a8ef8b042"),
"prebuilt/mt8136/ml/neuropilot/neuron": ("git01", "yocto-aiv/prebuilt/mt8136/ml/neuropilot/neuron", "49b087b74a848c0445f3dd063ba5752dc2753e65"),
"prebuilt/mt8136/multimedia/aienc": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/aienc", "a8a98d65d5638b5ad98c2fca8860e26419145531"),
"prebuilt/mt8136/multimedia/libcamera/mt8136": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/libcamera/mt8136", "b07717aa8ddfe95927b44a1fc1399cd7f80d4701"),
"prebuilt/mt8136/multimedia/libcamera/mt8139": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/libcamera/mt8139", "542717c8c2016bb048d1ecc33839197587fb3610"),
"prebuilt/mt8136/multimedia/libmdp_prot": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/libmdp_prot", "9d299d413466678d198c1c2b35cddaae62903504"),
"prebuilt/mt8136/multimedia/libpq": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/libpq", "acb6cc96295d1a4e077d236d94957f016fbc3c01"),
"prebuilt/mt8136/multimedia/libpq3_v2": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/libpq3_v2", "98857328597181a99a69bbc47ce47aca128d465e"),
"prebuilt/mt8136/multimedia/mtkcam-prot": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/mtkcam-prot", "7981acb54ad7556c224baf48df6214c4c47e573d"),
"prebuilt/mt8136/multimedia/mvpu-si/cl-toolchain/llvm-project": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/mvpu-si/cl-toolchain/llvm-project", "e7203a8f410477f317074d6716a05a22b6da45e2"),
"prebuilt/mt8136/multimedia/mvpu-si/mvpu": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/mvpu-si/mvpu", "71c1e676b4ffd5e3f60ba458fca0c7f690e4a634"),
"prebuilt/mt8136/multimedia/mvpu-si/mvpu-algo": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/mvpu-si/mvpu-algo", "26dbb057decd1df231672dc2d87625babbed92a0"),
"prebuilt/mt8136/multimedia/mvpu-si/mvpu-runtime": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/mvpu-si/mvpu-runtime", "040c6617603859fe107187e16218c0670e904804"),
"prebuilt/mt8136/multimedia/smartencode": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/smartencode", "fd16b444e9002b3bc2cebfa7ca704f4b223ddba4"),
"prebuilt/mt8136/multimedia/venc-surveillance": ("git01", "yocto-aiv/prebuilt/mt8136/multimedia/venc-surveillance", "580167ab75a81333f68c0e4597ff9d09d2cafb7b"),
"prebuilt/mt8136/support/buildinfo": ("git01", "yocto-aiv/prebuilt/mt8136/support/buildinfo", "2c004dd6dedd03164909ab33609847dbd190d896"),
"prebuilt/mt8136/support/pdct/mt8136": ("git01", "yocto-aiv/prebuilt/mt8136/support/pdct/mt8136", "ec554ee9c85e384fa5e48716d746949949553ec7"),
"prebuilt/mt8136/support/pdct/mt8139": ("git01", "yocto-aiv/prebuilt/mt8136/support/pdct/mt8139", "4e0ea6c95b3da500322ae758cd852ac9e6e2b424"),
"prebuilt/mt8136/tinysys/mt8136/apusys": ("git01", "yocto-aiv/prebuilt/mt8136/tinysys/mt8136/apusys", "6b01811e4e40434474432f8fa4e0583b3b1bbd31"),
"prebuilt/mt8136/tinysys/mt8136/mcupm": ("git01", "yocto-aiv/prebuilt/mt8136/tinysys/mt8136/mcupm", "4408fb47c38befd238a02e84e00f2194c7889e38"),
"prebuilt/mt8136/tinysys/mt8136/scp": ("git01", "yocto-aiv/prebuilt/mt8136/tinysys/mt8136/scp", "452eec7bf87f9ac18544c1e052a874e7a66a5b47"),
"prebuilt/mt8136/tinysys/mt8139/apusys": ("git01", "yocto-aiv/prebuilt/mt8136/tinysys/mt8139/apusys", "3790163d083e88138bd890d968daba70b8de43f5"),
"prebuilt/mt8136/tinysys/mt8139/dpm": ("git01", "yocto-aiv/prebuilt/mt8136/tinysys/mt8139/dpm", "645d2aeec13f776789678ec0212404286e8d6d10"),
"prebuilt/mt8139/devtools/clang/md32rv/linux-x86": ("git01", "yocto-aiv/prebuilt/mt8139/devtools/clang/md32rv/linux-x86", "16eeefcde00029d00c3772bdce30d4d9206d20d8"),
"prebuilt/mt8139/tinysys/mt8139/mcupm": ("git01", "yocto-aiv/prebuilt/mt8139/tinysys/mt8139/mcupm", "35cd8d0ed916cbdafc05407952d19dca3d2f8474"),
})
# 远程服务器映射
d.setVar("REMOTE_SERVERS", {
"git01": "../..", # 相对路径
"agl": "https://gerrit.automotivelinux.org/gerrit/",
"github": "https://github.com",
"oe": "git://git.openembedded.org",
"rdk": "https://code.rdkcentral.com",
"yocto": "git://git.yoctoproject.org",
})
}
def parse_srcuri(perms):
"""解析URI参数"""
items = {}
for perm in perms:
if perm == "":
continue
if "=" in perm:
k, v = perm.split("=", 1)
items[k.strip()] = v.strip()
return items
def fog_to_git_uri(fog_path, params, d):
"""将fog路径转换为精确的git URI"""
manifest_projects = d.getVar("MANIFEST_PROJECTS")
remote_servers = d.getVar("REMOTE_SERVERS")
if fog_path in manifest_projects:
remote_name, project_name, revision = manifest_projects[fog_path]
server_url = remote_servers[remote_name]
# 构建git URI
if remote_name == "git01":
# 对于git01,使用相对路径
git_uri = f"git://{server_url}/{project_name}.git;protocol=file"
else:
git_uri = f"git://{server_url}/{project_name}.git"
# 添加分支和修订版本信息
git_uri += f";branch=aiv-release-hardknott.mp2"
# 添加其他参数
if "subpath" in params:
git_uri += f";subpath={params['subpath']}"
if "destsuffix" in params:
git_uri += f";destsuffix={params['destsuffix']}"
# 设置SRCREV
name = params.get("name", os.path.basename(fog_path.rstrip('/')))
d.setVar(f"SRCREV_{name}", revision)
print(f"[simplified-fog] Mapped {fog_path} to {git_uri} with SRCREV {revision}")
return git_uri
else:
# 如果manifest中没有找到,使用默认的git01服务器
bb.warn(f"[simplified-fog] Project {fog_path} not found in manifest, using default mapping")
git_uri = f"git://../../yocto-aiv/{fog_path}.git;protocol=file"
# 添加其他参数
if "subpath" in params:
git_uri += f";subpath={params['subpath']}"
if "destsuffix" in params:
git_uri += f";destsuffix={params['destsuffix']}"
return git_uri
def fog_to_transformed_uri(uri, d):
"""将fog:// URI转换为实际的URI"""
if not uri.startswith("fog://"):
return uri
# 解析URI
perms = uri.split(";")
fog_path = perms[0].replace("fog://", "")
params = parse_srcuri(perms[1:])
# 总是使用git协议(基于manifest的精确映射)
return fog_to_git_uri(fog_path, params, d)
python () {
"""主处理函数 - 替换所有fog:// URI"""
src_uri = d.getVar("SRC_URI", False) or ""
if "fog://" not in src_uri:
return
uris = src_uri.split()
new_uris = []
for uri in uris:
if uri.startswith("fog://"):
new_uri = fog_to_transformed_uri(uri, d)
new_uris.append(new_uri)
else:
new_uris.append(uri)
d.setVar("SRC_URI", " ".join(new_uris))
print(f"[simplified-fog] Transformed SRC_URI: {d.getVar('SRC_URI')}")
}
# 移除旧的SRCREV变量(保留新设置的)
python () {
# 获取所有以SRCREV_开头的变量
all_vars = d.keys()
srcrev_vars = [var for var in all_vars if var.startswith("SRCREV_")]
# 只移除那些不在我们新设置中的变量
manifest_projects = d.getVar("MANIFEST_PROJECTS")
known_names = [os.path.basename(k.rstrip('/')) for k in manifest_projects.keys()]
for var in srcrev_vars:
var_name = var.replace("SRCREV_", "")
if var_name not in known_names:
d.delVar(var)
print(f"[simplified-fog] Removed variable: {var}")
}