Skip to content

Commit

Permalink
Arm32 architecture (#82)
Browse files Browse the repository at this point in the history
* Added 32-bit Arm gn file

It seems like the docker images can compile for Arm 32-bit now. I needed this to run on a headless RaspberryPi, and it appears to work just fine after installing libnss3.

I also updated the README.md to refer to the current docker image (jonmmease/chromium-builder:0.9) that's pulled in the build_kaleido script as of Commit 37e6ec4

* Add arm circleci job

* Comment out other CI jobs for testing arm build

Co-authored-by: Alec G. Moore <[email protected]>
  • Loading branch information
jonmmease and Alec G. Moore authored Apr 2, 2021
1 parent 624c30c commit cc1cc99
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 47 deletions.
105 changes: 61 additions & 44 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,16 @@ jobs:
- linux_build:
arch: "arm64"

linux_build_arm:
machine:
image: ubuntu-1604:201903-01 # the primary container, where your job's commands are run
resource_class: xlarge
environment:
KALEIDO_ARCH: "arm"
steps:
- linux_build:
arch: "arm"

linux_test_37:
docker:
- image: continuumio/miniconda3
Expand Down Expand Up @@ -316,56 +326,63 @@ jobs:
arch: "x86"

workflows:
build-windows-x64:
jobs:
- windows_fetch
- windows_build_x64:
requires:
- windows_fetch
#build-windows-x64:
#jobs:
#- windows_fetch
#- windows_build_x64:
#requires:
#- windows_fetch

build-windows-x86:
jobs:
- windows_fetch
- windows_build_x86:
requires:
- windows_fetch
#build-windows-x86:
#jobs:
#- windows_fetch
#- windows_build_x86:
#requires:
#- windows_fetch

build-mac-x64:
jobs:
- mac_fetch
- mac_build_blink_x64:
requires:
- mac_fetch
- mac_build_x64:
requires:
- mac_build_blink_x64
#build-mac-x64:
#jobs:
#- mac_fetch
#- mac_build_blink_x64:
#requires:
#- mac_fetch
#- mac_build_x64:
#requires:
#- mac_build_blink_x64

build-mac-arm64:
jobs:
- mac_fetch
- mac_build_blink_arm64:
requires:
- mac_fetch
- mac_build_arm64:
requires:
- mac_build_blink_arm64
#build-mac-arm64:
#jobs:
#- mac_fetch
#- mac_build_blink_arm64:
#requires:
#- mac_fetch
#- mac_build_arm64:
#requires:
#- mac_build_blink_arm64

build-linux-x64:
jobs:
- linux_fetch
- linux_build_x64:
requires:
- linux_fetch
- linux_test_37:
requires:
- linux_build_x64
- linux_test_27:
requires:
- linux_build_x64
#build-linux-x64:
#jobs:
#- linux_fetch
#- linux_build_x64:
#requires:
#- linux_fetch
#- linux_test_37:
#requires:
#- linux_build_x64
#- linux_test_27:
#requires:
#- linux_build_x64

#build-linux-arm64:
#jobs:
#- linux_fetch
#- linux_build_arm64:
#requires:
#- linux_fetch

build-linux-arm64:
build-linux-arm:
jobs:
- linux_fetch
- linux_build_arm64:
- linux_build_arm:
requires:
- linux_fetch
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ There are two approaches to building Kaleido on Linux, both of which rely on Doc
The Linux build relies on the `jonmmease/chromium-builder` docker image, and the scripts in `repos/linux_scripts`, to download the chromium source to a local folder and then build it.
Download docker image
```
$ docker pull jonmmease/chromium-builder:0.8
$ docker pull jonmmease/chromium-builder:0.9
```

Fetch the Chromium codebase and checkout the specific tag, then sync all dependencies
Expand Down Expand Up @@ -188,14 +188,14 @@ The `chromium-builder` container mostly follows the instructions at https://chro
Build container with:

```
$ docker build -t jonmmease/chromium-builder:0.8 -f repos/linux_scripts/Dockerfile .
$ docker build -t jonmmease/chromium-builder:0.9 -f repos/linux_scripts/Dockerfile .
```

## kaleido-builder
This container contains a pre-compiled version of chromium source tree. Takes several hours to build!

```
$ docker build -t jonmmease/kaleido-builder:0.8 -f repos/linux_full_scripts/Dockerfile .
$ docker build -t jonmmease/kaleido-builder:0.9 -f repos/linux_full_scripts/Dockerfile .
```


Expand Down
9 changes: 9 additions & 0 deletions repos/linux_scripts/args_arm.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import("//build/args/headless.gn")
enable_nacl=false
is_component_build=false

symbol_level=0
blink_symbol_level=0
is_debug=false

target_cpu="arm"

0 comments on commit cc1cc99

Please sign in to comment.