[native_base]
extends = portduino_base
build_flags = ${portduino_base.build_flags} -I variants/portduino
  -D ARCH_PORTDUINO
  -I /usr/include
board = cross_platform
lib_deps = ${portduino_base.lib_deps}
build_src_filter = ${portduino_base.build_src_filter}

[env:native]
extends = native_base
; The pkg-config commands below optionally add link flags.
; the || : is just a "or run the null command" to avoid returning an error code
build_flags = ${native_base.build_flags}
  !pkg-config --libs libulfius --silence-errors || :
  !pkg-config --libs openssl --silence-errors || :

[env:native-tft]
extends = native_base
build_type = release
lib_deps =
  ${native_base.lib_deps}
  ${device-ui_base.lib_deps}
build_flags = ${native_base.build_flags} -Os -lX11 -linput -lxkbcommon -ffunction-sections -fdata-sections -Wl,--gc-sections
  -D MESHTASTIC_EXCLUDE_CANNEDMESSAGES=1
  -D RAM_SIZE=16384
  -D USE_X11=1
  -D HAS_TFT=1
  -D HAS_SCREEN=1

  -D LV_CACHE_DEF_SIZE=6291456
  -D LV_BUILD_TEST=0
  -D LV_USE_LIBINPUT=1
  -D LV_LVGL_H_INCLUDE_SIMPLE
  -D LV_CONF_INCLUDE_SIMPLE
  -D LV_COMP_CONF_INCLUDE_SIMPLE
  -D USE_LOG_DEBUG
  -D LOG_DEBUG_INC=\"DebugConfiguration.h\"
  -D USE_PACKET_API
  -D VIEW_320x240
  !pkg-config --libs libulfius --silence-errors || :
  !pkg-config --libs openssl --silence-errors || :
build_src_filter =
  ${native_base.build_src_filter}

[env:native-fb]
extends = native_base
build_type = release
lib_deps =
  ${native_base.lib_deps}
  ${device-ui_base.lib_deps}
board_level = extra
build_flags = ${native_base.build_flags} -Os -ffunction-sections -fdata-sections -Wl,--gc-sections
  -D MESHTASTIC_EXCLUDE_CANNEDMESSAGES=1
  -D RAM_SIZE=8192
  -D USE_FRAMEBUFFER=1
  -D LV_COLOR_DEPTH=32
  -D HAS_TFT=1
  -D HAS_SCREEN=1
  -D LV_BUILD_TEST=0
  -D LV_USE_LOG=0
  -D LV_USE_EVDEV=1
  -D LV_LVGL_H_INCLUDE_SIMPLE
  -D LV_CONF_INCLUDE_SIMPLE
  -D LV_COMP_CONF_INCLUDE_SIMPLE
  -D USE_LOG_DEBUG
  -D LOG_DEBUG_INC=\"DebugConfiguration.h\"
  -D USE_PACKET_API
  -D VIEW_320x240
  -D MAP_FULL_REDRAW
  !pkg-config --libs libulfius --silence-errors || :
  !pkg-config --libs openssl --silence-errors || :
build_src_filter =
  ${native_base.build_src_filter}

[env:native-tft-debug]
extends = native_base
build_type = debug
lib_deps =
  ${native_base.lib_deps}
  ${device-ui_base.lib_deps}
board_level = extra
build_flags = ${native_base.build_flags} -O0 -fsanitize=address -lX11 -linput -lxkbcommon
  -D MESHTASTIC_EXCLUDE_CANNEDMESSAGES=1
  -D DEBUG_HEAP
  -D RAM_SIZE=16384
  -D USE_X11=1
  -D HAS_TFT=1
  -D HAS_SCREEN=0
  -D LV_CACHE_DEF_SIZE=6291456
  -D LV_BUILD_TEST=0
  -D LV_USE_LOG=1
  -D LV_USE_SYSMON=1
  -D LV_USE_PERF_MONITOR=1
  -D LV_USE_MEM_MONITOR=0
  -D LV_USE_PROFILER=0
  -D LV_USE_LIBINPUT=1
  -D LV_LVGL_H_INCLUDE_SIMPLE
  -D LV_CONF_INCLUDE_SIMPLE
  -D LV_COMP_CONF_INCLUDE_SIMPLE
  -D USE_LOG_DEBUG
  -D LOG_DEBUG_INC=\"DebugConfiguration.h\"
  -D USE_PACKET_API
  -D VIEW_320x240
  !pkg-config --libs libulfius --silence-errors || :
  !pkg-config --libs openssl --silence-errors || :
build_src_filter = ${env:native-tft.build_src_filter}

[env:coverage]
extends = env:native
build_flags = -lgcov --coverage -fprofile-abs-path -fsanitize=address ${env:native.build_flags}
