| # Copyright 2022 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| import("//build_overrides/pi_pico.gni") |
| import("//build_overrides/pigweed.gni") |
| import("$dir_pigweed_experimental/third_party/imgui/imgui.gni") |
| import("$dir_pw_build/target_types.gni") |
| import("app_common_vars.gni") |
| |
| config("common_flags") { |
| cflags = [ |
| "-DDISPLAY_WIDTH=" + pw_app_common_DISPLAY_WIDTH, |
| "-DDISPLAY_HEIGHT=" + pw_app_common_DISPLAY_HEIGHT, |
| "-DDISPLAY_RESET_GPIO=" + pw_app_common_DISPLAY_RESET_GPIO, |
| "-DDISPLAY_TE_GPIO=" + pw_app_common_DISPLAY_TE_GPIO, |
| "-DBACKLIGHT_GPIO=" + pw_app_common_BACKLIGHT_GPIO, |
| "-DFRAMEBUFFER_WIDTH=" + pw_app_common_FRAMEBUFFER_WIDTH, |
| "-DFRAMEBUFFER_START_X=" + pw_app_common_FRAMEBUFFER_START_X, |
| "-DFRAMEBUFFER_START_Y=" + pw_app_common_FRAMEBUFFER_START_Y, |
| ] |
| } |
| |
| config("spi_flags") { |
| cflags = [ |
| "-DDISPLAY_CS_GPIO=" + pw_app_common_DISPLAY_CS_GPIO, |
| "-DDISPLAY_DC_GPIO=" + pw_app_common_DISPLAY_DC_GPIO, |
| "-DSPI_MISO_GPIO=" + pw_app_common_SPI_MISO_GPIO, |
| "-DSPI_MOSI_GPIO=" + pw_app_common_SPI_MOSI_GPIO, |
| "-DSPI_CLOCK_GPIO=" + pw_app_common_SPI_CLOCK_GPIO, |
| ] |
| } |
| |
| config("rp2040_pio_flags") { |
| cflags = [ |
| "-DUSE_PIO=1", |
| # Overclock the rp2040 in common_pico.cc |
| # "-DOVERCLOCK_250=1", |
| ] |
| } |
| |
| config("rp2040_i2c_flags") { |
| cflags = [ |
| "-DI2C_BUS0_SCL=" + pw_app_common_I2C_BUS0_SCL, |
| "-DI2C_BUS0_SDA=" + pw_app_common_I2C_BUS0_SDA, |
| "-DI2C_BUS1_SCL=" + pw_app_common_I2C_BUS1_SCL, |
| "-DI2C_BUS1_SDA=" + pw_app_common_I2C_BUS1_SDA, |
| ] |
| } |
| |
| _pico_common_deps = [ |
| "$PICO_ROOT/src/common/pico_base", |
| "$PICO_ROOT/src/common/pico_stdlib", |
| "$PICO_ROOT/src/rp2_common/hardware_pwm", |
| "$PICO_ROOT/src/rp2_common/hardware_spi", |
| "$PICO_ROOT/src/rp2_common/hardware_vreg", |
| "$dir_pw_digital_io_rp2040", |
| "$dir_pw_display", |
| "$dir_pw_framebuffer_pool", |
| "$dir_pw_i2c_rp2040", |
| "$dir_pw_log", |
| "$dir_pw_spi:chip_selector_digital_out", |
| "$dir_pw_spi_rp2040", |
| "$dir_pw_sync:borrow", |
| "$dir_pw_sync:mutex", |
| "$dir_pw_thread:thread", |
| "$dir_pw_thread_freertos:thread", |
| "//applications/app_common:app_common.facade", |
| "//lib/ft6236", |
| "//lib/icm42670p", |
| "//lib/kudzu_imu_icm42670p", |
| "//lib/max17048", |
| "//lib/pi4ioe5v6416", |
| ] |
| |
| pw_source_set("pico_st7789") { |
| public_configs = [ |
| ":common_flags", |
| ":spi_flags", |
| ":rp2040_i2c_flags", |
| ] |
| cflags = [ "-DDISPLAY_TYPE_ST7789" ] |
| deps = _pico_common_deps |
| deps += [ "$dir_pw_display_driver_st7789" ] |
| sources = [ "common_pico.cc" ] |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| |
| pw_source_set("pico_st7789_pio") { |
| public_configs = [ |
| ":common_flags", |
| ":spi_flags", |
| ":rp2040_pio_flags", |
| ":rp2040_i2c_flags", |
| ] |
| cflags = [ "-DDISPLAY_TYPE_ST7789_PIO" ] |
| deps = _pico_common_deps |
| deps += [ |
| "$dir_pw_display_driver_st7789", |
| "$dir_pw_pixel_pusher_rp2040_pio", |
| "//lib/kudzu_buttons_pi4ioe5v6416", |
| "//lib/pw_touchscreen_ft6236", |
| ] |
| sources = [ "common_pico.cc" ] |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| |
| pw_source_set("host_imgui") { |
| public_configs = [ ":common_flags" ] |
| deps = [ |
| "$dir_pw_display_driver_imgui", |
| "$dir_pw_display_imgui", |
| "$dir_pw_framebuffer_pool", |
| "$dir_pw_thread:thread", |
| "$dir_pw_thread_stl:thread", |
| "//applications/app_common:app_common.facade", |
| "//lib/kudzu_buttons_imgui", |
| "//lib/kudzu_imu_imgui", |
| "//lib/pw_touchscreen_imgui", |
| ] |
| sources = [ "common_host_imgui.cc" ] |
| remove_configs = [] |
| if (host_os == "linux") { |
| remove_configs += [ "$dir_pw_toolchain/host_clang:linux_sysroot" ] |
| } |
| } |
| |
| pw_source_set("host_null") { |
| public_configs = [ ":common_flags" ] |
| deps = [ |
| "$dir_pw_display", |
| "$dir_pw_display_driver_null", |
| "$dir_pw_thread:thread", |
| "$dir_pw_thread_stl:thread", |
| "//applications/app_common:app_common.facade", |
| "//lib/kudzu_buttons_null", |
| "//lib/pw_touchscreen_null", |
| ] |
| sources = [ "common_host_null.cc" ] |
| } |