cmake_minimum_required (VERSION 3.2)

add_library(TransformManipulators MODULE
    src/Main.cpp
    src/FnGLTransformManipulator.cpp
    src/FnMeshGeneration.cpp
    src/coi/FnGLCoiManipulator.cpp
    src/coi/FnGLCoiHandle.cpp
    src/translate/FnGLTranslateManipulator.cpp
    src/translate/FnGLTranslateAxisHandle.cpp
    src/translate/FnGLTranslatePlaneHandle.cpp
    src/translate/FnGLTranslateScreenPlaneHandle.cpp
    src/rotate/FnGLRotateManipulator.cpp
    src/rotate/FnGLRotateAxisHandle.cpp
    src/rotate/FnGLRotateBallHandle.cpp
    src/scale/FnGLScaleManipulator.cpp
    src/scale/FnGLScaleAxisHandle.cpp
    src/scale/FnGLScalePlaneHandle.cpp
    src/scale/FnGLScaleUniformHandle.cpp

    ${KATANA_ROOT}/plugin_apis/src/FnViewer/utils/FnGLManipulator.cpp
    ${KATANA_ROOT}/plugin_apis/src/FnViewer/utils/FnGLShaderProgram.cpp
)

add_definitions(-DFNVIEWER_STATIC=1 -D_USE_MATH_DEFINES -DNOMINMAX -DFNLOGGING_STATIC)

find_package(Qt5 5.6.1 COMPONENTS Core Gui Svg)

if (Qt5_FOUND)
    add_definitions(-DBUILD_WITH_QT)
    set(Qt5_LIBS "Qt5::Core" "Qt5::Gui" "Qt5::Svg")
else()
    message("-- Building without Qt5")
    set(Qt5_LIBS "")
endif()

target_include_directories(TransformManipulators
    PRIVATE
        include
        ${OPENGL_INCLUDE_DIR}
        ${KATANA_ROOT}/plugin_apis/include
        ${Qt5_INCLUDE_DIR}
)

target_link_libraries(TransformManipulators
    PRIVATE
        Katana::FnAttribute
        Katana::FnViewerAPI
        Katana::pystring
        ${OPENGL_LIBRARIES}
        OpenEXR::OpenEXR
        ${Qt5_LIBS}
        GLEW::GLEW)

set_target_properties(TransformManipulators PROPERTIES PREFIX "")
install(TARGETS TransformManipulators DESTINATION Libs)
