add_library(lv_theme_shadcn_harness STATIC harness.c)
target_link_libraries(lv_theme_shadcn_harness PUBLIC lvgl_theme_shadcn)

function(lv_theme_shadcn_add_test name)
  add_executable(${name} ${name}.c)
  target_link_libraries(${name} PRIVATE lv_theme_shadcn_harness)
  add_test(NAME ${name} COMMAND ${name})
endfunction()

lv_theme_shadcn_add_test(test_palette)
lv_theme_shadcn_add_test(test_lifecycle)
lv_theme_shadcn_add_test(test_surfaces)
lv_theme_shadcn_add_test(test_actions)
lv_theme_shadcn_add_test(test_toggles)
lv_theme_shadcn_add_test(test_ranges)
lv_theme_shadcn_add_test(test_inputs)
lv_theme_shadcn_add_test(test_collections)
lv_theme_shadcn_add_test(test_overlays)
lv_theme_shadcn_add_test(test_coverage)
lv_theme_shadcn_add_test(test_radius)
lv_theme_shadcn_add_test(test_sizes)
lv_theme_shadcn_add_test(test_hover)
lv_theme_shadcn_add_test(test_roles)

if(TARGET lv_theme_shadcn_scenes)
  lv_theme_shadcn_add_test(test_scenes)
  target_link_libraries(test_scenes PRIVATE lv_theme_shadcn_scenes)
endif()
