|
1 | 1 | idf_component_register( |
2 | | - SRCS "esp_lv_decoder.c" |
3 | 2 | INCLUDE_DIRS "include" |
4 | 3 | PRIV_INCLUDE_DIRS "priv_include" |
5 | 4 | ) |
6 | 5 |
|
7 | | -include(package_manager) |
8 | | -cu_pkg_define_version(${CMAKE_CURRENT_LIST_DIR}) |
| 6 | +# Get LVGL version |
| 7 | +idf_build_get_property(build_components BUILD_COMPONENTS) |
| 8 | +if(lvgl IN_LIST build_components) |
| 9 | + set(lvgl_name lvgl) # Local component |
| 10 | + set(lvgl_ver $ENV{LVGL_VERSION}) # Get the version from env variable (set from LVGL v9.2) |
| 11 | +else() |
| 12 | + set(lvgl_name lvgl__lvgl) # Managed component |
| 13 | + idf_component_get_property(lvgl_ver ${lvgl_name} COMPONENT_VERSION) # Get the version from esp-idf build system |
| 14 | +endif() |
| 15 | + |
| 16 | +if("${lvgl_ver}" STREQUAL "") |
| 17 | + message("Could not determine LVGL version, assuming v9.x") |
| 18 | +endif() |
| 19 | + |
| 20 | +# Select folder by LVGL version |
| 21 | +set(ADD_LIBS "") |
| 22 | +message(STATUS "LVGL version: ${lvgl_ver}") |
| 23 | +if(lvgl_ver VERSION_LESS "9.0.0") |
| 24 | + message(VERBOSE "Compiling decoder for LVGL8") |
| 25 | + set(DECODER_FOLDER "lvgl8") |
| 26 | + list(APPEND ADD_LIBS idf::esp_mm) |
| 27 | + else() |
| 28 | + message(VERBOSE "Compiling decoder for LVGL9") |
| 29 | + set(DECODER_FOLDER "lvgl9") |
| 30 | + list(APPEND ADD_LIBS idf::esp_mm) |
| 31 | +endif() |
| 32 | + |
| 33 | +set(DECODER_PARH "src/${DECODER_FOLDER}") |
| 34 | + |
| 35 | +if("espressif__esp_new_jpeg" IN_LIST build_components) |
| 36 | + list(APPEND ADD_LIBS idf::espressif__esp_new_jpeg) |
| 37 | +endif() |
| 38 | +if("esp_new_jpeg" IN_LIST build_components) |
| 39 | + list(APPEND ADD_LIBS idf::esp_new_jpeg) |
| 40 | +endif() |
| 41 | + |
| 42 | +if("espressif__libpng" IN_LIST build_components) |
| 43 | + list(APPEND ADD_LIBS idf::espressif__libpng) |
| 44 | +endif() |
| 45 | +if("libpng" IN_LIST build_components) |
| 46 | + list(APPEND ADD_LIBS idf::libpng) |
| 47 | +endif() |
| 48 | + |
| 49 | +if(${target} STREQUAL "esp32p4") |
| 50 | + list(APPEND ADD_LIBS idf::esp_driver_jpeg) |
| 51 | +endif() |
| 52 | + |
| 53 | +# Here we create the real lvgl_docoder_lib |
| 54 | +add_library(lvgl_docoder_lib STATIC |
| 55 | + ${DECODER_PARH}/esp_lv_decoder.c |
| 56 | + ${ADD_SRCS} |
| 57 | + ) |
| 58 | +target_include_directories(lvgl_docoder_lib PUBLIC "include") |
| 59 | +target_include_directories(lvgl_docoder_lib PRIVATE "priv_include") |
| 60 | +target_link_libraries(lvgl_docoder_lib PUBLIC |
| 61 | + idf::${lvgl_name} |
| 62 | + ) |
| 63 | +target_link_libraries(lvgl_docoder_lib PRIVATE |
| 64 | + ${ADD_LIBS} |
| 65 | + ) |
| 66 | + |
| 67 | +# Finally, link the lvgl_docoder_lib its esp-idf interface library |
| 68 | +target_link_libraries(${COMPONENT_LIB} INTERFACE lvgl_docoder_lib) |
0 commit comments