# 手工维护 —— 不是 tools/gen_part3.py 的生成产物，重新生成 p01/p03 不会影响这里。
#
# 教学补充示例：方案书「C++方向」课程要求、但仓库 p03/（wiki 抓取内容）未覆盖
# 的技术点，每个子目录一个最小可运行 Qt 程序 + 配套 README.md 教学文档。
# 不计入 README.md/CLAUDE.md 里「144+29=173 个目标」的生成器目标计数。

function(add_teaching_example name dir)
    add_executable(${name} ${dir}/${name}.cpp)
    set_target_properties(${name} PROPERTIES
        CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF AUTOMOC ON)
    target_link_libraries(${name} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
    target_compile_options(${name} PRIVATE -Wall -Wextra)
endfunction()

add_teaching_example(qt_qss_styling qss_styling)
add_teaching_example(qt_model_view_basics model_view)
add_teaching_example(qt_json_parse_write json_io)
add_teaching_example(qt_thread_worker qthread_worker)
add_teaching_example(qt_property_animation property_animation)
add_teaching_example(qt_state_machine state_machine)

add_custom_target(all_teaching_examples DEPENDS
    qt_qss_styling
    qt_model_view_basics
    qt_json_parse_write
    qt_thread_worker
    qt_property_animation
    qt_state_machine)
