project(pluginManager)

set(PLUGINMANAGER_HEADER_FILES

  include/pluginManager.h
  ../common/include/compiler.hpp
  ../common/include/export.hpp
  ../common/include/operatingSystem.hpp

  ../common/include/pluginCommon/iCanvasItem.h
)

set(PLUGINMANAGER_SOURCE_FILES
    source/pluginManager.cpp
)


if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_library(pluginManager SHARED
        MANUAL_FINALIZATION
        ${PLUGINMANAGER_HEADER_FILES}
        ${PLUGINMANAGER_SOURCE_FILES}
    )
else()
    add_library(pluginManager SHARED
        ${PLUGINMANAGER_HEADER_FILES}
        ${PLUGINMANAGER_SOURCE_FILES}
    )
endif()

target_link_libraries(pluginManager PUBLIC Qt${QT_VERSION_MAJOR}::Core
                                                  Qt${QT_VERSION_MAJOR}::Gui
                                                  Qt${QT_VERSION_MAJOR}::Widgets)

target_link_libraries(pluginManager PRIVATE Qt6::Xml)
target_link_libraries(pluginManager PRIVATE Qt6::Network)
target_link_libraries(pluginManager PRIVATE Qt6::Sql ${PostgreSQL_LIBRARIES})

option(BUILD_SHARED_LIBS "Build as shared library" ON)



target_include_directories(pluginManager PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)

target_compile_definitions(pluginManager
  PUBLIC
    DIAGRAM_DESIGNER_SHARED
  PRIVATE
    DIAGRAM_DESIGNER_EXPORTS
    #QT_NO_KEYWORDS
)
