C

Qt Quick Ultralite tvii_effects Example

set(QUL_TVIIC_PLATFORM OFF)
if("${QUL_PLATFORM}" MATCHES "tviic.*")
    set(QUL_TVIIC_PLATFORM ON)
endif()

if (NOT TARGET Qul::Core)
    find_package(Qul)
endif()

if(QUL_TVIIC_PLATFORM)
    list(APPEND CMAKE_MODULE_PATH ${QUL_PLATFORM_TARGET_DIR}/../tvii-shared/cmake/modules)
    find_package(TVII-SDK REQUIRED EXACT ${REQUIRED_SDK_VERSION} COMPONENTS basic_graphics util freetype)

    message(STATUS "TVII include dirs = ${TVII_SDK_INCLUDE_DIRS}")
else()
    message(STATUS "NOT CROSS COMPILING")

    find_package(Qt6 6.2 COMPONENTS Core Gui Widgets REQUIRED)

    if(CMAKE_HOST_WIN32)
      set(QUL_INSTALLED_QT_PACKAGE Qt6Bundle)
    else()
      set(QUL_INSTALLED_QT_PACKAGE Qt6)
    endif()

    target_link_libraries(tvii_effects_module PRIVATE Qt6::Gui Qt6::Widgets)
endif()

qul_add_qml_module(tvii_effects_module
    URI TviiEffects
    QML_FILES
        Desaturation.qml
        GaussianBlur.qml
        ImageWithOpacityMask.qml
        NeedleTrail.qml
    SOURCES
        desaturation.cpp
        gaussianblur.cpp
        imagewithopacitymask.cpp
        needletrail.cpp
    HEADERS
        desaturation.h
        gaussianblur.h
        imagewithopacitymask.h
        needletrail.h
    OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/modules
)

if(QUL_TVIIC_PLATFORM)
    target_include_directories(tvii_effects_module PUBLIC
        ${TVII_SDK_INCLUDE_DIRS}
    )

    target_compile_definitions(tvii_effects_module PUBLIC QUL_TVIIC_PLATFORM)
    target_sources(tvii_effects_module PRIVATE cygfx.cpp)
else()
    target_link_libraries(tvii_effects_module PRIVATE Qt6::Gui Qt6::Widgets)
endif()

if (QUL_BUILD_QMLPROJECT_EXAMPLES)
    qul_limit_string(effects_module_qmlproject "Lib_tvii_effects_qmlproject_tvii_effects_module")
    target_sources(${effects_module_qmlproject}
        PRIVATE
        desaturation.cpp
        gaussianblur.cpp
        imagewithopacitymask.cpp
        needletrail.cpp
    )

    if(QUL_TVIIC_PLATFORM)
        target_include_directories(${effects_module_qmlproject}
            PUBLIC ${TVII_SDK_INCLUDE_DIRS}
        )

        target_compile_definitions(${effects_module_qmlproject}
            PUBLIC QUL_TVIIC_PLATFORM
        )
        target_sources(${effects_module_qmlproject}
            PRIVATE cygfx.cpp
        )
    else()
        target_link_libraries(${effects_module_qmlproject}
            PRIVATE Qt6::Gui Qt6::Widgets
        )
    endif()

endif()