mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-18 08:46:33 +00:00
feat: build IDE2 on linux arm
Ref: arduino/arduino-ide#107 Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
This commit is contained in:
parent
cd1d16f343
commit
e34dccdbb1
@ -115,7 +115,7 @@
|
|||||||
"mockdate": "^3.0.5",
|
"mockdate": "^3.0.5",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"protoc": "^1.0.4",
|
"protoc": "^1.0.4",
|
||||||
"shelljs": "^0.8.3",
|
"shelljs": "^0.8.5",
|
||||||
"sinon": "^12.0.1",
|
"sinon": "^12.0.1",
|
||||||
"sinon-chai": "^3.7.0",
|
"sinon-chai": "^3.7.0",
|
||||||
"typemoq": "^2.1.0",
|
"typemoq": "^2.1.0",
|
||||||
@ -162,7 +162,7 @@
|
|||||||
"version": "0.28.0"
|
"version": "0.28.0"
|
||||||
},
|
},
|
||||||
"fwuploader": {
|
"fwuploader": {
|
||||||
"version": "2.2.0"
|
"version": "2.2.2"
|
||||||
},
|
},
|
||||||
"clangd": {
|
"clangd": {
|
||||||
"version": "14.0.0"
|
"version": "14.0.0"
|
||||||
|
@ -88,6 +88,12 @@
|
|||||||
lsSuffix = 'Linux_64bit.tar.gz';
|
lsSuffix = 'Linux_64bit.tar.gz';
|
||||||
clangdSuffix = 'Linux_64bit';
|
clangdSuffix = 'Linux_64bit';
|
||||||
break;
|
break;
|
||||||
|
case 'linux-arm':
|
||||||
|
clangdExecutablePath = path.join(build, 'clangd');
|
||||||
|
clangFormatExecutablePath = path.join(build, 'clang-format');
|
||||||
|
lsSuffix = 'Linux_ARMv7.tar.gz';
|
||||||
|
clangdSuffix = 'Linux_ARMv6'; // there is no ARNv7 available/ but armv7l GNU/Linux can run ARMv6 artifacts
|
||||||
|
break;
|
||||||
case 'win32-x64':
|
case 'win32-x64':
|
||||||
clangdExecutablePath = path.join(build, 'clangd.exe');
|
clangdExecutablePath = path.join(build, 'clangd.exe');
|
||||||
clangFormatExecutablePath = path.join(build, 'clang-format.exe');
|
clangFormatExecutablePath = path.join(build, 'clang-format.exe');
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"electron-notarize": "^1.1.1",
|
"electron-notarize": "^1.1.1",
|
||||||
"is-ci": "^2.0.0",
|
"is-ci": "^2.0.0",
|
||||||
"ncp": "^2.0.0",
|
"ncp": "^2.0.0",
|
||||||
"shelljs": "^0.8.3"
|
"shelljs": "^0.8.5"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn download:plugins && theia build --mode production && yarn patch",
|
"build": "yarn download:plugins && theia build --mode production && yarn patch",
|
||||||
|
@ -6,9 +6,10 @@
|
|||||||
const shell = require('shelljs');
|
const shell = require('shelljs');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const isCI = require('is-ci');
|
const isCI = require('is-ci');
|
||||||
// Note, this will crash on PI if the available memory is less than desired heap size.
|
// Note, this will crash on PI if the available memory is less than the desired heap size. Limit the max heap size to the 75% of the available memory.
|
||||||
// https://github.com/shelljs/shelljs/issues/1024#issuecomment-1001552543
|
// https://github.com/shelljs/shelljs/issues/1024#issuecomment-1001552543
|
||||||
shell.env.NODE_OPTIONS = '--max_old_space_size=4096'; // Increase heap size for the CI
|
const heapSize = Math.min(4096, (require('v8').getHeapStatistics().total_physical_size / 1024) * 0.75).toFixed(0);
|
||||||
|
shell.env.NODE_OPTIONS = `--max_old_space_size=${heapSize}`; // Increase heap size for the CI
|
||||||
shell.env.PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = 'true'; // Skip download and avoid `ERROR: Failed to download Chromium`.
|
shell.env.PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = 'true'; // Skip download and avoid `ERROR: Failed to download Chromium`.
|
||||||
const template = require('./config').generateTemplate(
|
const template = require('./config').generateTemplate(
|
||||||
new Date().toISOString()
|
new Date().toISOString()
|
||||||
@ -266,14 +267,14 @@ ${fs.readFileSync(path('..', 'build', 'package.json')).toString()}
|
|||||||
//-----------------------------------+
|
//-----------------------------------+
|
||||||
// Package the electron application. |
|
// Package the electron application. |
|
||||||
//-----------------------------------+
|
//-----------------------------------+
|
||||||
|
const arch = process.platform === 'linux' && process.arch === 'arm' ? ' --armv7l' : '';
|
||||||
exec(
|
exec(
|
||||||
`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package`,
|
`yarn --network-timeout 1000000 --cwd ${path('..', 'build')} package${arch}`,
|
||||||
`Packaging your ${productName} application`
|
`Packaging your ${productName} application`
|
||||||
);
|
);
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------+
|
//-----------------------------------------------------------------------------------------------------+
|
||||||
// Recalculate artifacts hash and copy to another folder (because they can change after signing them).
|
// Recalculate artifacts hash and copy to another folder (because they can change after signing them). |
|
||||||
// Azure does not support wildcard for `PublishBuildArtifacts@1.pathToPublish` |
|
|
||||||
//-----------------------------------------------------------------------------------------------------+
|
//-----------------------------------------------------------------------------------------------------+
|
||||||
if (isCI) {
|
if (isCI) {
|
||||||
try {
|
try {
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
"is-ci": "^2.0.0",
|
"is-ci": "^2.0.0",
|
||||||
"mocha": "^7.1.1",
|
"mocha": "^7.1.1",
|
||||||
"semver": "^7.3.2",
|
"semver": "^7.3.2",
|
||||||
"shelljs": "^0.8.3",
|
"shelljs": "^0.8.5",
|
||||||
"sinon": "^9.0.1",
|
"sinon": "^9.0.1",
|
||||||
"temp": "^0.9.1",
|
"temp": "^0.9.1",
|
||||||
"yaml": "^1.10.2",
|
"yaml": "^1.10.2",
|
||||||
|
@ -1338,10 +1338,10 @@ shebang-regex@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
||||||
|
|
||||||
shelljs@^0.8.3:
|
shelljs@^0.8.5:
|
||||||
version "0.8.3"
|
version "0.8.5"
|
||||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097"
|
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
|
||||||
integrity sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==
|
integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.0.0"
|
glob "^7.0.0"
|
||||||
interpret "^1.0.0"
|
interpret "^1.0.0"
|
||||||
|
@ -13404,7 +13404,7 @@ shell-path@^2.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
shell-env "^0.3.0"
|
shell-env "^0.3.0"
|
||||||
|
|
||||||
shelljs@^0.8.3:
|
shelljs@^0.8.5:
|
||||||
version "0.8.5"
|
version "0.8.5"
|
||||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
|
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
|
||||||
integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
|
integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
|
||||||
|
Loading…
x
Reference in New Issue
Block a user