project(diagramUtils)

set(DIAGRAMUTILS_HEADER_FILES
  include/logger.h
  include/dataManager.h
  include/componentIconManager.h
  include/basePropertyManager.h
  include/projectModelManager.h
  ../common/include/global.h
  ../common/include/baseProperty.h
  ../common/include/compiler.hpp
  ../common/include/export.hpp
  ../common/include/operatingSystem.hpp
)

set(DIAGRAMUTILS_SOURCE_FILES
    source/logger.cpp
    source/dataBase.cpp
    source/dataManager.cpp
    source/basePropertyManager.cpp
    source/projectModelManager.cpp
    source/componentIconManager.cpp
    ../common/source/global.cpp
    ../common/source/baseProperty.cpp
)


if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_library(diagramUtils SHARED
        MANUAL_FINALIZATION
        ${DIAGRAMUTILS_HEADER_FILES}
        ${DIAGRAMUTILS_SOURCE_FILES}
    )
else()
    add_library(diagramUtils SHARED
        ${DIAGRAMUTILS_HEADER_FILES}
        ${DIAGRAMUTILS_SOURCE_FILES}
    )
endif()

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

target_link_libraries(diagramUtils PRIVATE Qt6::Xml)
target_link_libraries(diagramUtils PRIVATE Qt6::Network)
target_link_libraries(diagramUtils PRIVATE Qt6::Sql ${POSTGRESQL_LIBRARIES})

option(BUILD_SHARED_LIBS "Build as shared library" ON)



target_include_directories(diagramUtils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)

target_compile_definitions(diagramUtils
  PUBLIC
    DIAGRAM_DESIGNER_SHARED
  PRIVATE
    DIAGRAM_DESIGNER_EXPORTS
    #QT_NO_KEYWORDS
)
