cmake_minimum_required (VERSION 3.5)

project(meson_display_common LANGUAGES C CXX)

set(COMMON_SRC
    base/DrmTypes.cpp
    base/DrmFramebufferBase.cpp
    base/DrmSync.cpp
    display/HwDisplayPlaneBase.cpp
    display/DrmProperty.cpp
    display/DrmBoBase.cpp
    display/DrmAsyncCommitor.cpp
    hwc/HwcVsyncBase.cpp
    utils/DebugHelper.cpp
    utils/MesonLog.cpp
    videotunnel/VideoTunnelDev.cpp
    videotunnel/VtConsumer.cpp
    videotunnel/VtInstance.cpp
    videotunnel/VtInstanceMgr.cpp
    videotunnel/VtHandleEventsThread.cpp
    videotunnel/VtAllocSolidColorBuffer.cpp
)

ADD_DEFINITIONS(-DLINUX_COMPILE)

add_library(meson_display_common STATIC ${COMMON_SRC})

target_include_directories(meson_display_common
    PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/base/include
    ${CMAKE_CURRENT_SOURCE_DIR}/utils/include
    ${CMAKE_CURRENT_SOURCE_DIR}/display/include
    ${CMAKE_CURRENT_SOURCE_DIR}/hwc/include
    ${CMAKE_CURRENT_SOURCE_DIR}/videotunnel/include
    ${CMAKE_SYSROOT}/usr/include
)

find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBDRM REQUIRED libdrm)

target_include_directories(meson_display_common
    PUBLIC
    ${LIBDRM_INCLUDE_DIRS}
)

target_link_libraries(meson_display_common PUBLIC ${LIBDRM_LIBRARIES} videotunnel meson_display_uvm)

set_target_properties(meson_display_common PROPERTIES OUTPUT_NAME "meson_display_common")

target_compile_options(meson_display_common PUBLIC ${LIBDRM_CFLAGS_OTHER})

