Skip to content

Commit d52fe23

Browse files
authored
Merge pull request #651 from pimoroni/patch-ci-pico-w
CI: CMake build for Pico W and Pico.
2 parents 397ef78 + b548d67 commit d52fe23

File tree

22 files changed

+112
-10
lines changed

22 files changed

+112
-10
lines changed

.github/workflows/cmake.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,15 @@ env:
1010

1111
jobs:
1212
build:
13-
name: ${{matrix.name}}
13+
name: ${{matrix.name}} (C++)
14+
runs-on: ubuntu-20.04
1415
strategy:
1516
matrix:
1617
include:
17-
- os: ubuntu-20.04
18-
name: Linux
19-
cache-key: linux
20-
cmake-args: '-DPICO_SDK_PATH=$GITHUB_WORKSPACE/pico-sdk -DPICO_SDK_POST_LIST_DIRS=$GITHUB_WORKSPACE/pico-extras'
21-
apt-packages: ccache gcc-arm-none-eabi
22-
23-
runs-on: ${{matrix.os}}
18+
- name: Pico
19+
board: pico
20+
- name: Pico W
21+
board: pico_w
2422

2523
env:
2624
PICO_SDK_PATH: $GITHUB_WORKSPACE/pico-sdk
@@ -59,15 +57,15 @@ jobs:
5957
- name: Install deps
6058
if: runner.os == 'Linux'
6159
run: |
62-
sudo apt update && sudo apt install ${{matrix.apt-packages}}
60+
sudo apt update && sudo apt install ccache gcc-arm-none-eabi
6361
6462
- name: Create Build Environment
6563
run: cmake -E make_directory ${{runner.workspace}}/build
6664

6765
- name: Configure CMake
6866
shell: bash
6967
working-directory: ${{runner.workspace}}/build
70-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ${{matrix.cmake-args}}
68+
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DPICO_SDK_PATH=$GITHUB_WORKSPACE/pico-sdk -DPICO_SDK_POST_LIST_DIRS=$GITHUB_WORKSPACE/pico-extras -DPICO_BOARD=${{matrix.board}}
7169

7270
- name: Build
7371
working-directory: ${{runner.workspace}}/build

examples/breakout_bme280/bme280_basic.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ BME280 bme280(&i2c);
1212

1313

1414
int main() {
15+
#ifdef PICO_DEFAULT_LED_PIN
1516
gpio_init(PICO_DEFAULT_LED_PIN);
1617
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
18+
#endif
1719

1820
stdio_init_all();
1921

examples/breakout_bme688/bme688_forced.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ I2C i2c(BOARD::BREAKOUT_GARDEN);
1515
BME68X bme68x(&i2c);
1616

1717
int main() {
18+
#ifdef PICO_DEFAULT_LED_PIN
1819
gpio_init(PICO_DEFAULT_LED_PIN);
1920
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
21+
#endif
2022

2123
stdio_init_all();
2224

examples/breakout_bme688/bme688_parallel.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ uint16_t durations[profile_length] = { 5, 2, 10, 30, 5, 5, 5, 5, 5, 5 };
2828

2929

3030
int main() {
31+
#ifdef PICO_DEFAULT_LED_PIN
3132
gpio_init(PICO_DEFAULT_LED_PIN);
3233
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
34+
#endif
3335

3436
stdio_init_all();
3537

examples/breakout_bmp280/bmp280_basic.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ BMP280 bmp280(&i2c);
1212

1313

1414
int main() {
15+
#ifdef PICO_DEFAULT_LED_PIN
1516
gpio_init(PICO_DEFAULT_LED_PIN);
1617
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
18+
#endif
1719

1820
stdio_init_all();
1921

examples/breakout_dotmatrix/bargraph/bargraph.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,18 @@ uint8_t values[HALF_WIDTH] = { 0, 0, 0, 0, 0 };
1515
uint8_t next_value = 0;
1616

1717
int main() {
18+
#ifdef PICO_DEFAULT_LED_PIN
1819
gpio_init(PICO_DEFAULT_LED_PIN);
1920
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
21+
#endif
2022

2123
display.init();
2224

2325
while(true) {
26+
27+
#ifdef PICO_DEFAULT_LED_PIN
2428
gpio_put(PICO_DEFAULT_LED_PIN, true);
29+
#endif
2530

2631
absolute_time_t at = get_absolute_time();
2732
uint64_t t = to_us_since_boot(at) / 1000000;
@@ -49,7 +54,9 @@ int main() {
4954

5055
display.show();
5156

57+
#ifdef PICO_DEFAULT_LED_PIN
5258
gpio_put(PICO_DEFAULT_LED_PIN, false);
59+
#endif
5360

5461
sleep_ms(1000 / HEIGHT);
5562
}

examples/breakout_dotmatrix/eyes/eyes.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ void eye(uint8_t x, uint8_t y) {
1717
}
1818

1919
int main() {
20+
#ifdef PICO_DEFAULT_LED_PIN
2021
gpio_init(PICO_DEFAULT_LED_PIN);
2122
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
23+
#endif
2224

2325
display.init();
2426

@@ -50,7 +52,9 @@ int main() {
5052
// This gives our crude blink code time to not look like a random flicker
5153
display.show();
5254

55+
#ifdef PICO_DEFAULT_LED_PIN
5356
gpio_put(PICO_DEFAULT_LED_PIN, led_toggle);
57+
#endif
5458
led_toggle = !led_toggle;
5559

5660
sleep_ms(100);

examples/breakout_dotmatrix/image/image.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,20 @@ uint8_t offset = 0;
2727

2828

2929
int main() {
30+
#ifdef PICO_DEFAULT_LED_PIN
3031
gpio_init(PICO_DEFAULT_LED_PIN);
3132
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
33+
#endif
3234

3335
display.init();
3436

3537
while(true) {
3638
display.set_image(image, IMAGE_WIDTH, IMAGE_HEIGHT, offset, 0, true, false, ON_LEVEL, IMAGE_PADDING);
3739
display.show();
3840

41+
#ifdef PICO_DEFAULT_LED_PIN
3942
gpio_put(PICO_DEFAULT_LED_PIN, led_toggle);
43+
#endif
4044
led_toggle = !led_toggle;
4145

4246
sleep_ms(500);

examples/breakout_dotmatrix/timer/timer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ BreakoutDotMatrix display(&i2c);
1111
bool led_toggle = false;
1212

1313
int main() {
14+
#ifdef PICO_DEFAULT_LED_PIN
1415
gpio_init(PICO_DEFAULT_LED_PIN);
1516
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
17+
#endif
1618

1719
display.init();
1820
display.show();
@@ -37,7 +39,9 @@ int main() {
3739
display.set_character(5, right);
3840
display.show();
3941

42+
#ifdef PICO_DEFAULT_LED_PIN
4043
gpio_put(PICO_DEFAULT_LED_PIN, led_toggle);
44+
#endif
4145
led_toggle = !led_toggle;
4246

4347
sleep_ms(1000 / 60);

examples/breakout_encoder/demo.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ void count_changed(int16_t count) {
4242
}
4343

4444
int main() {
45+
#ifdef PICO_DEFAULT_LED_PIN
4546
gpio_init(PICO_DEFAULT_LED_PIN);
4647
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
48+
#endif
4749

4850
stdio_init_all();
4951

@@ -57,7 +59,9 @@ int main() {
5759
enc.clear_interrupt_flag();
5860

5961
while(true) {
62+
#ifdef PICO_DEFAULT_LED_PIN
6063
gpio_put(PICO_DEFAULT_LED_PIN, toggle);
64+
#endif
6165
toggle = !toggle;
6266

6367
if(enc.get_interrupt_flag()) {
@@ -75,7 +79,9 @@ int main() {
7579
}
7680
else {
7781
printf("Encoder not found :'(\n");
82+
#ifdef PICO_DEFAULT_LED_PIN
7883
gpio_put(PICO_DEFAULT_LED_PIN, true);
84+
#endif
7985
}
8086

8187
return 0;

0 commit comments

Comments
 (0)