119 lines
3.5 KiB
CMake
119 lines
3.5 KiB
CMake
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
|
|
|
|
# project name
|
|
project(lvgl-ui)
|
|
|
|
# set app folder
|
|
set(APP_FOLDER base_ui)
|
|
#set(APP_FOLDER qc_test) # qc-test is only used for AIC chip testing
|
|
#set(APP_FOLDER aic_demo)
|
|
|
|
# set app out put name
|
|
set(APP_OUT_NAME test_lvgl)
|
|
|
|
# Suppress cmake unused warning
|
|
set(ignore ${BUILD_DOC} ${BUILD_DOCS} ${BUILD_EXAMPLE} ${BUILD_EXAMPLES}
|
|
${BUILD_SHARED_LIBS}${BUILD_TEST}${BUILD_TESTING}${BUILD_TESTS})
|
|
|
|
# Add compile option
|
|
add_compile_options(-Wall)
|
|
|
|
# check install directories
|
|
if(NOT CMAKE_INSTALL_PREFIX)
|
|
message(FATAL_ERROR "ERROR: CMAKE_INSTALL_PREFIX is not defined.")
|
|
endif()
|
|
include(GNUInstallDirs)
|
|
|
|
### build lvgl library
|
|
add_subdirectory(lvgl)
|
|
|
|
# lvgl HAL source
|
|
set(LVGL_HAL ${CMAKE_CURRENT_SOURCE_DIR}/lv_drivers)
|
|
set(DRIVER_SOURCE_FILES
|
|
${LVGL_HAL}/aic_dec.c
|
|
${LVGL_HAL}/lv_fbdev.c
|
|
${LVGL_HAL}/lv_ge2d.c
|
|
${LVGL_HAL}/lv_port_indev.c
|
|
${LVGL_HAL}/lv_port_disp.c
|
|
)
|
|
|
|
# obtain app source file
|
|
if (NOT APP_FOLDER STREQUAL qc_test)
|
|
file(GLOB_RECURSE APP_SOURCE_FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${APP_FOLDER}/*.c)
|
|
|
|
file(GLOB APP_SOURCE_FILES_MAIN
|
|
${CMAKE_CURRENT_SOURCE_DIR}/main.c)
|
|
|
|
string(APPEND ${APP_SOURCE_FILES} ${APP_SOURCE_FILES_MAIN})
|
|
endif()
|
|
|
|
# obtain qc_test source file --> only used for AIC chip testing, please ignore
|
|
if (APP_FOLDER STREQUAL qc_test)
|
|
file(GLOB APP_SOURCE_FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${APP_FOLDER}/*.c)
|
|
endif()
|
|
|
|
set(APP_SOURCE_FILES ${APP_SOURCE_FILES} ${APP_SOURCE_FILES_MAIN} ${DRIVER_SOURCE_FILES})
|
|
|
|
# set include path
|
|
set(INCLUDE_PATH
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${APP_FOLDER}
|
|
${LVGL_HAL}
|
|
)
|
|
|
|
add_executable(${APP_OUT_NAME} ${APP_SOURCE_FILES})
|
|
target_link_libraries(${APP_OUT_NAME} lvgl)
|
|
target_link_libraries(${APP_OUT_NAME} lvgl_examples)
|
|
target_link_libraries(${APP_OUT_NAME} lvgl_demos)
|
|
target_link_libraries(${APP_OUT_NAME} media_player)
|
|
target_link_libraries(${APP_OUT_NAME} m)
|
|
target_link_libraries(${APP_OUT_NAME} mpp_base mpp_ve mpp_ge mpp_decoder)
|
|
|
|
if (APP_FOLDER STREQUAL qc_test OR APP_FOLDER STREQUAL aic_demo)
|
|
target_link_libraries(${APP_OUT_NAME} pthread)
|
|
|
|
# using screen mirroring
|
|
if (APP_FOLDER STREQUAL aic_demo)
|
|
#set(use_mirror "use_screen_mirror")
|
|
add_definitions(-DLV_USE_AIC_DEMO=1)
|
|
endif()
|
|
|
|
if(use_mirror STREQUAL "use_screen_mirror")
|
|
target_link_libraries(${APP_OUT_NAME} LinkSupport LinkUtils MSNUtils mpp_decoder asound)
|
|
add_definitions(-DUSE_MSNLINK)
|
|
endif()
|
|
endif()
|
|
|
|
# use freetype font
|
|
if(DEFINED USE_FREETYPE)
|
|
if(${USE_FREETYPE} STREQUAL "yes")
|
|
target_include_directories(lvgl SYSTEM PUBLIC ${STAGING_DIR}/usr/include/freetype2/)
|
|
target_link_libraries(${APP_OUT_NAME} libfreetype.so)
|
|
endif()
|
|
endif()
|
|
|
|
# Find libts for link
|
|
if(${USE_RTP_TSLIB} STREQUAL "yes")
|
|
add_definitions(-DUSE_RTP_TSLIB)
|
|
find_library(LIBTS libts.so)
|
|
target_link_libraries(${APP_OUT_NAME} ${LIBTS})
|
|
endif()
|
|
|
|
# add include path
|
|
target_include_directories(${APP_OUT_NAME} PRIVATE ${INCLUDE_PATH})
|
|
|
|
set_target_properties(${APP_OUT_NAME} PROPERTIES INSTALL_RPATH "/usr/local/lib")
|
|
|
|
add_definitions(-DLVGL_DIR="L:${CMAKE_INSTALL_FULL_DATAROOTDIR}/lvgl_data/")
|
|
|
|
if(DEFINED CMAKE_INSTALL_FULL_BINDIR)
|
|
install(TARGETS ${APP_OUT_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}")
|
|
endif() # CMAKE_INSTALL_FULL_BINDIR
|
|
|
|
if(DEFINED CMAKE_INSTALL_FULL_DATAROOTDIR)
|
|
install(DIRECTORY ${APP_FOLDER}/assets/
|
|
DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/lvgl_data)
|
|
endif() # CMAKE_INSTALL_FULL_DATAROOTDIR
|