| # 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("$dir_pw_third_party/mcuxpresso/mcuxpresso.gni") |
| |
| declare_args() { |
| # LCD width in pixels (ex. "320") |
| pw_lcd_width = "" |
| |
| # LCD height in pixels (ex. "240") |
| pw_lcd_height = "" |
| |
| # LCD backlight pin (ex "4", or "-1" if unused) |
| pw_lcd_backlight = "-1" |
| |
| # LCD reset GPIO pin (ex "2", or "-1" if unused) |
| pw_lcd_rst_pin_num = "-1" |
| |
| # GPIO Port of LCD CS pin (ex. "A") |
| pw_lcd_cs_port_char = "" |
| |
| # GPIO Pin of LDD CS (ex. "10") |
| pw_lcd_cs_pin_num = "" |
| |
| # GPIO Port of LCD DC pin (ex. "B") |
| pw_lcd_dc_port_char = "" |
| |
| # GPIO Pin of LDD dc (ex. "11") |
| pw_lcd_dc_pin_num = "" |
| |
| # SPI bus MISO pin (ex. "12", or "-1" if unusedsable) |
| pw_spi_miso_pin_num = "-1" |
| |
| # SPI bus MOSI pin (ex. "13") |
| pw_spi_mosi_pin_num = "" |
| |
| # SPI bus clock pin (ex. "14") |
| pw_spi_clock_pin_num = "" |
| |
| # framebuffer width in pixels (ex. "320") |
| pw_nxp_buffer_width = "" |
| |
| # framebuffer start pixel X coord (ex. "4") |
| pw_nxp_buffer_start_x = "0" |
| |
| # framebuffer start pixel Y coord (ex. "4") |
| pw_nxp_buffer_start_y = "0" |
| } |
| |
| config("common_standard_flags") { |
| cflags = [ |
| "-DLCD_WIDTH=" + pw_lcd_width, |
| "-DLCD_HEIGHT=" + pw_lcd_height, |
| "-DTFT_BL=" + pw_lcd_backlight, |
| "-DTFT_CS=" + pw_lcd_cs_pin_num, |
| "-DTFT_DC=" + pw_lcd_dc_pin_num, |
| "-DTFT_RST=" + pw_lcd_rst_pin_num, |
| "-DTFT_MISO=" + pw_spi_miso_pin_num, |
| "-DTFT_MOSI=" + pw_spi_mosi_pin_num, |
| "-DTFT_SCLK=" + pw_spi_clock_pin_num, |
| ] |
| } |
| |
| config("common_stm32_flags") { |
| cflags = [ |
| "-DLCD_WIDTH=" + pw_lcd_width, |
| "-DLCD_HEIGHT=" + pw_lcd_height, |
| "-DLCD_BL=" + pw_lcd_backlight, |
| "-DLCD_CS_PORT_CHAR=" + pw_lcd_cs_port_char, |
| "-DLCD_CS_PIN_NUM=" + pw_lcd_cs_pin_num, |
| "-DLCD_DC_PORT_CHAR=" + pw_lcd_dc_port_char, |
| "-DLCD_DC_PIN_NUM=" + pw_lcd_dc_pin_num, |
| "-DLCD_RST_PIN_NUM=" + pw_lcd_rst_pin_num, |
| ] |
| } |
| |
| config("common_mimxrt595_flags") { |
| cflags = [ |
| "-DLCD_WIDTH=" + pw_lcd_width, |
| "-DLCD_HEIGHT=" + pw_lcd_height, |
| "-DFRAMEBUFFER_WIDTH=" + pw_nxp_buffer_width, |
| "-DFRAMEBUFFER_START_X=" + pw_nxp_buffer_start_x, |
| "-DFRAMEBUFFER_START_Y=" + pw_nxp_buffer_start_y, |
| ] |
| } |
| |
| config("common_host_flags") { |
| cflags = [ |
| "-DLCD_WIDTH=" + pw_lcd_width, |
| "-DLCD_HEIGHT=" + pw_lcd_height, |
| ] |
| } |
| |
| pw_source_set("stm32cube") { |
| public_configs = [ ":common_stm32_flags" ] |
| deps = [ |
| "$dir_pw_digital_io_stm32cube", |
| "$dir_pw_display", |
| "$dir_pw_display_driver_ili9341", |
| "$dir_pw_spi_stm32cube", |
| "$dir_pw_sync:borrow", |
| "$dir_pw_sync:mutex", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_stm32cube.cc" ] |
| } |
| |
| pw_source_set("stm32") { |
| deps = [ |
| "$dir_pw_display_driver_null", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_stm32.cc" ] |
| } |
| |
| pw_source_set("arduino") { |
| public_configs = [ ":common_standard_flags" ] |
| deps = [ |
| "$dir_pw_digital_io_arduino", |
| "$dir_pw_display", |
| "$dir_pw_display_driver_ili9341", |
| "$dir_pw_spi_arduino", |
| "$dir_pw_sync:borrow", |
| "$dir_pw_sync:mutex", |
| "$dir_pw_third_party/arduino:arduino_core_sources", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_arduino.cc" ] |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| |
| if (pw_third_party_mcuxpresso_SDK != "") { |
| pw_source_set("mimxrt595") { |
| public_configs = [ ":common_mimxrt595_flags" ] |
| deps = [ |
| "$dir_pw_display", |
| "$dir_pw_display_driver_mipi_dsi", |
| "$dir_pw_framebuffer_pool", |
| "$dir_pw_mipi_dsi_mcuxpresso", |
| "$pw_third_party_mcuxpresso_SDK", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_mimxrt595.cc" ] |
| } |
| } |
| |
| _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", |
| "$dir_pw_digital_io_pico", |
| "$dir_pw_display", |
| "$dir_pw_log", |
| "$dir_pw_spi_pico", |
| "$dir_pw_sync:borrow", |
| "$dir_pw_sync:mutex", |
| "//applications/app_common:app_common.facade", |
| ] |
| |
| pw_source_set("pico_ili9341") { |
| public_configs = [ ":common_standard_flags" ] |
| cflags = [ "-DDISPLAY_TYPE_ILI9341" ] |
| deps = _pico_common_deps |
| deps += [ "$dir_pw_display_driver_ili9341" ] |
| sources = [ "common_pico.cc" ] |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| |
| pw_source_set("pico_st7789") { |
| public_configs = [ ":common_standard_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_st7735") { |
| public_configs = [ ":common_standard_flags" ] |
| cflags = [ "-DDISPLAY_TYPE_ST7735" ] |
| deps = _pico_common_deps |
| deps += [ "$dir_pw_display_driver_st7735" ] |
| sources = [ "common_pico.cc" ] |
| remove_configs = [ "$dir_pw_build:strict_warnings" ] |
| } |
| |
| pw_source_set("host_imgui") { |
| public_configs = [ ":common_host_flags" ] |
| deps = [ |
| "$dir_pw_display_driver_imgui", |
| "$dir_pw_display_imgui", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_host_imgui.cc" ] |
| } |
| |
| pw_source_set("host_null") { |
| public_configs = [ ":common_host_flags" ] |
| deps = [ |
| "$dir_pw_display", |
| "$dir_pw_display_driver_null", |
| "//applications/app_common:app_common.facade", |
| ] |
| sources = [ "common_host_null.cc" ] |
| } |