# PNG overlay compose regression test (Page Overlay / Peek + Stats sleep screens).
# Uses the PNGdec copy PlatformIO already pinned for the firmware (bitbank2/PNGdec @ 1.1.6),
# falling back to fetching the same tag.
set(PNGDEC_SOURCE_DIR "" CACHE PATH "Existing pinned PNGdec source for host tests")
if(NOT PNGDEC_SOURCE_DIR)
  if(EXISTS "${REPO_ROOT}/.pio/libdeps/x4-pro/PNGdec/src/PNGdec.cpp")
    set(PNGDEC_SOURCE_DIR "${REPO_ROOT}/.pio/libdeps/x4-pro/PNGdec")
  else()
    FetchContent_Declare(pngdec
      GIT_REPOSITORY https://github.com/bitbank2/PNGdec.git
      GIT_TAG 1.1.6
      SOURCE_SUBDIR crossink-host-tests)
    FetchContent_MakeAvailable(pngdec)
    set(PNGDEC_SOURCE_DIR "${pngdec_SOURCE_DIR}")
  endif()
endif()
set(PNGDEC_SRC ${PNGDEC_SOURCE_DIR}/src)
add_library(pngdec_host STATIC
  ${PNGDEC_SRC}/PNGdec.cpp ${PNGDEC_SRC}/adler32.c ${PNGDEC_SRC}/crc32.c ${PNGDEC_SRC}/infback.c
  ${PNGDEC_SRC}/inffast.c ${PNGDEC_SRC}/inflate.c ${PNGDEC_SRC}/inftrees.c ${PNGDEC_SRC}/zutil.c)
target_include_directories(pngdec_host PUBLIC ${PNGDEC_SRC})
target_compile_definitions(pngdec_host PUBLIC PNG_MAX_BUFFERED_PIXELS=16416)
target_compile_options(pngdec_host PRIVATE -w)

add_executable(PngOverlayTest PngOverlayTest.cpp)
target_include_directories(PngOverlayTest PRIVATE ${REPO_ROOT}/src/activities/boot_sleep)
target_compile_definitions(PngOverlayTest PRIVATE PNG_OVERLAY_FIXTURE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/fixtures")
target_link_libraries(PngOverlayTest PRIVATE GTest::gtest_main pngdec_host)
gtest_discover_tests(PngOverlayTest)
