CMakeLists.txt (1731B)
1 project(lvgl) 2 foreach(BACKEND_NAME "SDL" "LINUX_DRM" "LINUX_FBDEV" "X11" "WAYLAND") 3 execute_process(COMMAND "${PROJECT_SOURCE_DIR}/scripts/backend_conf.sh" ${BACKEND_NAME} OUTPUT_VARIABLE IS_BACKEND_ENABLED) 4 set("LV_USE_${BACKEND_NAME}" ${IS_BACKEND_ENABLED}) 5 endforeach() 6 7 # Uncomment if the program needs debugging 8 #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -ggdb") 9 10 set(CMAKE_C_STANDARD 99) # LVGL officially supports C99 and above 11 set(CMAKE_CXX_STANDARD 17) #C17 12 set(CMAKE_CXX_STANDARD_REQUIRED ON) 13 add_subdirectory(lvgl) 14 target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) 15 16 if (LV_USE_LINUX_DRM) 17 18 find_package(PkgConfig REQUIRED) 19 pkg_check_modules(LIBDRM REQUIRED libdrm) 20 21 target_include_directories(lvgl PUBLIC ${LIBDRM_INCLUDE_DIRS}) 22 23 elseif (LV_USE_SDL) 24 25 find_package(PkgConfig REQUIRED) 26 pkg_check_modules(SDL2 REQUIRED sdl2) 27 pkg_check_modules(SDL2_image REQUIRED SDL2_image) 28 29 target_include_directories(lvgl PRIVATE ${SDL2_INCLUDE_DIRS}) 30 target_include_directories(lvgl PRIVATE ${SDL2_IMAGE_INCLUDE_DIRS}) 31 32 elseif (LV_USE_WAYLAND) 33 34 find_package(PkgConfig REQUIRED) 35 pkg_check_modules(wayland-client REQUIRED wayland-client) 36 pkg_check_modules(wayland-cursor REQUIRED wayland-cursor) 37 pkg_check_modules(xkbcommon REQUIRED xkbcommon) 38 39 # Wayland protocols 40 pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols>=1.25) 41 pkg_get_variable(WAYLAND_PROTOCOLS_BASE wayland-protocols pkgdatadir) 42 43 execute_process(COMMAND "scripts/gen_wl_protocols.sh" OUTPUT_VARIABLE WAYLAND_PROTOCOLS_SRC) 44 45 target_include_directories(lvgl PRIVATE ${PROJECT_SOURCE_DIR} 46 "${PROJECT_SOURCE_DIR}/wl_protocols") 47 endif() 48