|
17 | 17 | import subprocess
|
18 | 18 |
|
19 | 19 | from platformio.public import PlatformBase
|
| 20 | +from platformio.project.helpers import get_project_dir |
20 | 21 |
|
21 | 22 |
|
22 | 23 | IS_WINDOWS = sys.platform.startswith("win")
|
@@ -68,16 +69,26 @@ def install_package(self, name, *args, **kwargs):
|
68 | 69 | if name != "framework-zephyr":
|
69 | 70 | return pkg
|
70 | 71 |
|
71 |
| - if not os.path.isfile(os.path.join(pkg.path, "_pio", "state.json")): |
72 |
| - self.pm.log.info("Installing Zephyr project dependencies...") |
73 |
| - try: |
74 |
| - subprocess.run([ |
75 |
| - os.path.normpath(sys.executable), |
76 |
| - os.path.join(pkg.path, "scripts", "platformio", "install-deps.py"), |
77 |
| - "--platform", self.name |
78 |
| - ]) |
79 |
| - except subprocess.CalledProcessError: |
80 |
| - self.pm.log.info("Failed to install Zephyr dependencies!") |
| 72 | + prj_west_manifest = os.path.join(get_project_dir(), "west.yml") |
| 73 | + try: |
| 74 | + ( |
| 75 | + subprocess.run( |
| 76 | + [ |
| 77 | + os.path.normpath(sys.executable), |
| 78 | + os.path.join( |
| 79 | + pkg.path, "scripts", "platformio", "install-deps.py" |
| 80 | + ), |
| 81 | + "--platform", |
| 82 | + self.name, |
| 83 | + ] + ( |
| 84 | + ["--manifest", prj_west_manifest] |
| 85 | + if os.path.isfile(prj_west_manifest) |
| 86 | + else [] |
| 87 | + ) |
| 88 | + ) |
| 89 | + ) |
| 90 | + except subprocess.CalledProcessError: |
| 91 | + self.pm.log.info("Failed to install Zephyr dependencies!") |
81 | 92 |
|
82 | 93 | return pkg
|
83 | 94 |
|
|
0 commit comments