xs-dev 0.25.3 → 0.25.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/toolbox/setup/pico.js +19 -4
- package/package.json +1 -1
|
@@ -16,10 +16,12 @@ async function default_1() {
|
|
|
16
16
|
const OS = (0, os_1.type)().toLowerCase();
|
|
17
17
|
const PICO_BRANCH = '1.5.0';
|
|
18
18
|
const PICO_SDK_REPO = 'https://github.com/raspberrypi/pico-sdk';
|
|
19
|
+
const PICO_EXTRAS_REPO = 'https://github.com/raspberrypi/pico-extras';
|
|
19
20
|
const PICO_EXAMPLES_REPO = 'https://github.com/raspberrypi/pico-examples';
|
|
20
21
|
const PICOTOOL_REPO = 'https://github.com/raspberrypi/picotool';
|
|
21
22
|
const PICO_ROOT = (_a = process.env.PICO_ROOT) !== null && _a !== void 0 ? _a : gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'pico');
|
|
22
23
|
const PICO_SDK_DIR = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-sdk');
|
|
24
|
+
const PICO_EXTRAS_DIR = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-extras');
|
|
23
25
|
const PICO_EXAMPLES_PATH = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-examples');
|
|
24
26
|
const PICOTOOL_PATH = gluegun_1.filesystem.resolve(PICO_ROOT, 'picotool');
|
|
25
27
|
const PICOTOOL_BUILD_DIR = gluegun_1.filesystem.resolve(PICOTOOL_PATH, 'build');
|
|
@@ -57,7 +59,7 @@ async function default_1() {
|
|
|
57
59
|
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PICO_GCC_ROOT=/usr`);
|
|
58
60
|
}
|
|
59
61
|
spinner.succeed();
|
|
60
|
-
// 2. Install the pico sdk, examples, and picotool:
|
|
62
|
+
// 2. Install the pico sdk, extras, examples, and picotool:
|
|
61
63
|
if (gluegun_1.filesystem.exists(PICO_SDK_DIR) === false) {
|
|
62
64
|
spinner.start('Cloning pico-sdk repo');
|
|
63
65
|
await gluegun_1.system.exec(`git clone --depth 1 --single-branch -b ${PICO_BRANCH} ${PICO_SDK_REPO} ${PICO_SDK_DIR}`, {
|
|
@@ -69,8 +71,13 @@ async function default_1() {
|
|
|
69
71
|
});
|
|
70
72
|
spinner.succeed();
|
|
71
73
|
}
|
|
74
|
+
if (gluegun_1.filesystem.exists(PICO_EXTRAS_DIR) === false) {
|
|
75
|
+
spinner.start('Cloning pico-extras repo');
|
|
76
|
+
await gluegun_1.system.exec(`git clone --depth 1 --single-branch -b sdk-${PICO_BRANCH} ${PICO_EXTRAS_REPO} ${PICO_EXTRAS_DIR}`, { stdout: process.stdout });
|
|
77
|
+
spinner.succeed();
|
|
78
|
+
}
|
|
72
79
|
if (gluegun_1.filesystem.exists(PICO_EXAMPLES_PATH) === false) {
|
|
73
|
-
spinner.start('Cloning pico-
|
|
80
|
+
spinner.start('Cloning pico-examples repo');
|
|
74
81
|
await gluegun_1.system.exec(`git clone --depth 1 --single-branch -b sdk-${PICO_BRANCH} ${PICO_EXAMPLES_REPO} ${PICO_EXAMPLES_PATH}`, { stdout: process.stdout });
|
|
75
82
|
spinner.succeed();
|
|
76
83
|
}
|
|
@@ -81,7 +88,7 @@ async function default_1() {
|
|
|
81
88
|
});
|
|
82
89
|
spinner.succeed();
|
|
83
90
|
}
|
|
84
|
-
// 3. Set the PICO_SDK_PATH environment variable to point to the Pico SDK directory
|
|
91
|
+
// 3. Set the PICO_SDK_PATH environment variable to point to the Pico SDK directory and PICO_EXTRAS_DIR to the Pico extras directory
|
|
85
92
|
if (process.env.PICO_SDK_DIR === undefined) {
|
|
86
93
|
spinner.info('Setting PICO_SDK_DIR');
|
|
87
94
|
process.env.PICO_SDK_DIR = PICO_SDK_DIR;
|
|
@@ -90,6 +97,14 @@ async function default_1() {
|
|
|
90
97
|
else {
|
|
91
98
|
spinner.info(`Using existing $PICO_SDK_DIR: ${process.env.PICO_SDK_DIR}`);
|
|
92
99
|
}
|
|
100
|
+
if (process.env.PICO_EXTRAS_DIR === undefined) {
|
|
101
|
+
spinner.info('Setting PICO_EXTRAS_DIR');
|
|
102
|
+
process.env.PICO_EXTRAS_DIR = PICO_EXTRAS_DIR;
|
|
103
|
+
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PICO_EXTRAS_DIR=${PICO_EXTRAS_DIR}`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
spinner.info(`Using existing $PICO_EXTRAS_DIR: ${process.env.PICO_EXTRAS_DIR}`);
|
|
107
|
+
}
|
|
93
108
|
// 4. Build some pico tools:
|
|
94
109
|
if (gluegun_1.filesystem.exists(PICO_SDK_BUILD_DIR) === false ||
|
|
95
110
|
((_b = gluegun_1.filesystem.list(PICO_SDK_BUILD_DIR)) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
@@ -148,4 +163,4 @@ Then run: xs-dev run --example helloworld --device pico
|
|
|
148
163
|
`);
|
|
149
164
|
}
|
|
150
165
|
exports.default = default_1;
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL3BpY28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBbUQ7QUFDbkQsMkJBQXlDO0FBQ3pDLDJDQUE0RDtBQUM1RCxnRUFBdUM7QUFDdkMsb0NBQTBEO0FBQzFELHdDQUE4RDtBQUM5RCx5Q0FBMkM7QUFDM0MseUNBQWtEO0FBRW5DLEtBQUs7O0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFBO0lBQzNCLE1BQU0sYUFBYSxHQUFHLHlDQUF5QyxDQUFBO0lBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsNENBQTRDLENBQUE7SUFDckUsTUFBTSxrQkFBa0IsR0FBRyw4Q0FBOEMsQ0FBQTtJQUN6RSxNQUFNLGFBQWEsR0FBRyx5Q0FBeUMsQ0FBQTtJQUMvRCxNQUFNLFNBQVMsR0FDYixNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxtQ0FBSSxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2xFLE1BQU0sWUFBWSxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUM5RCxNQUFNLGVBQWUsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDcEUsTUFBTSxrQkFBa0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDekUsTUFBTSxhQUFhLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sa0JBQWtCLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxD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
|