# Compat variables for plugins.
function(_QT5_QUERY_QMAKE VAR RESULT)
    get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} LOCATION)
    execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} "-query" ${VAR}
                    RESULT_VARIABLE return_code
                    OUTPUT_VARIABLE output)
    if(NOT return_code)
        file(TO_CMAKE_PATH "${output}" output)
        STRING(REGEX REPLACE "(\r?\n)+$" "" output "${output}")
        set(${RESULT} ${output} PARENT_SCOPE)
    endif(NOT return_code)
endfunction(_QT5_QUERY_QMAKE)

# Source
set(appmenu_qt_SRCS
    appmenuplatformmenubar.cpp
    )

# Build
include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}
    ${DBUSMENUQT_INCLUDE_DIRS}
    )

if(USE_QT5)
    include_directories(
        ${QT_INCLUDE_DIRS}
        ${Qt5Core_INCLUDE_DIRS}
        ${Qt5Widgets_INCLUDE_DIRS}
        ${Qt5DBus_INCLUDE_DIRS}
        ${Qt5Gui_INCLUDE_DIRS}
        ${Qt5Xml_INCLUDE_DIRS}
        )

    qt5_add_dbus_interface(appmenu_qt_SRCS com.canonical.AppMenu.Registrar.xml
                           registrar)
    set(CMAKE_AUTOMOC TRUE)
    # Fetch the Qt5 plugins directory path
    _qt5_query_qmake(QT_INSTALL_PLUGINS QT_PLUGINS_DIR)
else()
    include_directories(
        ${QT_INCLUDE_DIR}
        ${QT_QTCORE_INCLUDE_DIR}
        ${QT_QTDBUS_INCLUDE_DIR}
        ${QT_QTGUI_INCLUDE_DIR}
        ${QT_QTXML_INCLUDE_DIR}
        )

    qt4_add_dbus_interface(appmenu_qt_SRCS com.canonical.AppMenu.Registrar.xml
                           registrar)
    qt4_automoc(${appmenu_qt_SRCS})
endif()


link_directories(
    ${DBUSMENUQT_LIBRARY_DIRS}
    )

add_library(appmenu-qt MODULE
    ${appmenu_qt_SRCS}
    )

if(USE_QT5)
    target_link_libraries(appmenu-qt
        ${DBUSMENUQT_LIBRARIES}
        ${Qt5Core_LIBRARIES}
        ${Qt5DBus_LIBRARIES}
        ${Qt5Widgets_LIBRARIES}
        ${Qt5Gui_LIBRARIES}
        ${Qt5Xml_LIBRARIES}
        )
else()
    target_link_libraries(appmenu-qt
        ${DBUSMENUQT_LIBRARIES}
        ${QT_QTCORE_LIBRARIES}
        ${QT_QTDBUS_LIBRARIES}
        ${QT_QTGUI_LIBRARIES}
        ${QT_QTXML_LIBRARIES}
        )
endif()

# Install
install(TARGETS appmenu-qt
    DESTINATION ${QT_PLUGINS_DIR}/menubar/
    )
