blob: ab29dbacbd8a135cd8b7815e178b5e8ff2d80945 [file] [log] [blame]
# 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" ]
}