cmake_minimum_required(VERSION 3.12.4)

project(lvgl LANGUAGES C)

set(LVGL_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR})

# 收集所有 LVGL 源文件
file(GLOB_RECURSE LVGL_SOURCES
    "${CMAKE_CURRENT_LIST_DIR}/src/*.c"
)

# 创建静态库
add_library(lvgl STATIC ${LVGL_SOURCES})

# 基础包含路径
target_include_directories(lvgl PUBLIC
    ${CMAKE_CURRENT_LIST_DIR}
    ${CMAKE_CURRENT_LIST_DIR}/src
)

# 如果调用者定义了 LV_CONF_DIR，将其加入包含路径（供 lv_conf.h 查找）
if(DEFINED LV_CONF_DIR)
    target_include_directories(lvgl PUBLIC ${LV_CONF_DIR})
endif()

# 如果调用者定义了 SDL2_INCLUDE_DIR，将其加入包含路径（供 SDL 驱动使用）
if(DEFINED SDL2_INCLUDE_DIR)
    target_include_directories(lvgl PUBLIC ${SDL2_INCLUDE_DIR})
endif()

# 编译定义
target_compile_definitions(lvgl PRIVATE
    LV_CONF_INCLUDE_SIMPLE
)

# 关闭一些警告
if(MSVC)
    target_compile_options(lvgl PRIVATE /W0)
else()
    target_compile_options(lvgl PRIVATE -w)
endif()
