find_package(PkgConfig REQUIRED)
pkg_check_modules(UI_AVFORMAT REQUIRED IMPORTED_TARGET libavformat)
pkg_check_modules(UI_AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
pkg_check_modules(UI_SWSCALE REQUIRED IMPORTED_TARGET libswscale)
pkg_check_modules(UI_AVUTIL REQUIRED IMPORTED_TARGET libavutil)

add_library(c4_game_ui STATIC NativeUi.cpp MenuPanel.cpp NativeHud.cpp HudMeshes.cpp SourceViewSprite.cpp GraphicsPanel.cpp MenuVideo.cpp UiResources.cpp Viewport.cpp)
target_include_directories(c4_game_ui PUBLIC ${PROJECT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(c4_game_ui PUBLIC cxx_std_20)
target_link_libraries(c4_game_ui PUBLIC native_game native_quality PRIVATE native_materials c4_warnings PkgConfig::UI_AVFORMAT PkgConfig::UI_AVCODEC PkgConfig::UI_SWSCALE PkgConfig::UI_AVUTIL)

if(BUILD_TESTING)
    add_executable(c4_ui_transition_check UiTransitionsCheck.cpp)
    target_link_libraries(c4_ui_transition_check PRIVATE c4_game_ui c4_warnings)
    if(MSVC)
        target_compile_options(c4_ui_transition_check PRIVATE /UNDEBUG)
    else()
        target_compile_options(c4_ui_transition_check PRIVATE -UNDEBUG)
    endif()
    add_test(NAME c4_original_ui_transition_boundary COMMAND c4_ui_transition_check "${C4_ORIGINAL_ASSET_ROOT}")
endif()
