嵌入式技术william hill官网
直播中

青sky

8年用户 1240经验值
擅长:模拟技术
私信 关注
[问答]

RTThread的软件包下载目录是否可以更改?


如图:RTT的软件包下载目录目前是在工程目录下,请教一下这个目录是否可以更改(目的是为了多个工程共用)

回帖(2)

最强海贼王

2022-6-1 11:22:38
[img]https://oss-club.rt-thread.org/uploads/20220527/8f5e83d00b2028f8d870d73799174da5.png.webp[/img]
如图:RTT的软件包下载目录目前是在工程目录下,请教一下这个目录是否可以更改(目的是为了多个工程共用)
举报

张虎豹

2022-6-1 11:23:17
补充一下啊,

一、继续用相对路径,目前可以认为是相对于当前目录的当前级目录。改成相对于当前目录的上一级目录,修改点儿如下(所有修改都在 “envtoolsscriptscmdscmd_packagecmd_package_update.py”):

修改 233 行 bsp_package_path = os.path.join(bsp_root, 'packages') -> bsp_package_path = os.path.join(bsp_root, '../packages')

382 行下面添加一行 repo_path = os.path.abspath(repo_path)

            repo_path = get_package_folder(repo_path, pkg['ver'])

            repo_path = os.path.abspath(repo_path)

修改 490 行(原 489 行) bsp_packages_path = os.path.join(bsp_root, 'packages') -> bsp_packages_path = os.path.join(bsp_root, '../packages')

修改 492 行(原 491 行) os.mkdir("packages") -> os.mkdir("../packages")

相对路径层数可以自行修改,这个对大多数 bsp 仓库是一样的。

二、换成绝对路径呢。我测试了一下直接改成绝对路径也能用,只是吧,只是上面修改的第 1 3 两条没有必要执行 os.path.join 函数了,可以直接改成 bsp_package_path = 'F:/packages'

以上,解决了 pkgs --update 下载包的问题。下面说生成项目涉及到的改动。

改每个 bsp 下的每一个包,每个 bsp 包项目目录下都有个 SConscript 文件。添加一句,修改成下面这样。这样是最直接,最容易找得到的地方。但是这样得要求每个项目目录下的 SConscript 文件都要做修改。

for d in list:

    path = os.path.join(cwd, d)

    if os.path.isfile(os.path.join(path, 'SConscript')):

        objs = objs + SConscript(os.path.join(d, 'SConscript'))

objs = objs + SConscript(os.path.join('D:/packages', 'SConscript'))

Return('objs')

修改 components 目录下的 SConscript 文件。方法同上,这种比较隐蔽,只修改这一个地方,所有的 bsp 都适用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分