# SPDX-FileCopyrightText: 2021 Daniel Vrátil <dvratil@kde.org>
#
# SPDX-License-Identifier: MIT

# Custom includes
include(GenerateHeaders)
include(AddQCoroLibrary)

include(CMakePackageConfigHelpers)

add_qcoro_library(
    NAME Coro
    INTERFACE
    NO_CMAKE_CONFIG
    INCLUDEDIR Coro
    CAMELCASE_HEADERS
        Task
        QCoro
    HEADERS
        concepts_p.h
        coroutine.h
        macros_p.h
        task.h
        waitoperationbase_p.h
    QT_LINK_LIBRARIES
        INTERFACE Core
)

# The QCoroCoroConfig includes the QCoroMacros.cmake so we can't
# use the standard file generated by add_qcoro_library.
configure_package_config_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/QCoroCoroConfig.cmake.in"
    "${CMAKE_CURRENT_BINARY_DIR}/QCoro${QT_VERSION_MAJOR}CoroConfig.cmake"
    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/QCoro${QT_VERSION_MAJOR}Coro
    PATH_VARS CMAKE_INSTALL_INCLUDEDIR
)

write_basic_package_version_file(
    "${CMAKE_CURRENT_BINARY_DIR}/QCoro${QT_VERSION_MAJOR}CoroConfigVersion.cmake"
    VERSION ${qcoro_VERSION}
    COMPATIBILITY SameMajorVersion
)

# Install the extra macros file
install(
    FILES "QCoroMacros.cmake"
    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QCORO_TARGET_PREFIX}Coro/"
)

############################

add_subdirectory(core)

if (QCORO_WITH_QTDBUS)
    add_subdirectory(dbus)
endif()

if (QCORO_WITH_QTNETWORK)
    add_subdirectory(network)
endif()

