# *** MorphoGraphX add-on CMake file
Set(ADDON ImplicitDeformation)  # set to addon name
Set(${ADDON}_DIR ${MorphoGraphX_SOURCE_DIR}/AddOns/${ADDON})

Set(BUILD_${ADDON} FALSE CACHE BOOL "Check to build add-on ${ADDON}")
If(BUILD_${ADDON})
  Set(MGX_ADDONS ${MGX_ADDONS}-${ADDON} PARENT_SCOPE)

  # *** Required packages
#  Find_Package(...)

  Include_Directories(
    ${MGX_SOURCE_PATH} ${MGX_BINARY_PATH}
    )
  Include_Directories(
    SYSTEM ${MGXViewer_SOURCE_PATH}
  )

  # Header files
  Set(${ADDON}_HDRS
    ImplicitDeformation.hpp
    ShepardDeformation.hpp
    ImplicitDeformationProcesses.hpp
    )

  # Source files
  Set(${ADDON}_SRCS
    ImplicitDeformation.cpp
    ShepardDeformation.cpp
    ImplicitDeformationProcesses.cpp
    )

  If(THRUST_BACKEND_CUDA)
    Cuda_Add_Library(mgxU${ADDON} SHARED ${${ADDON}_SRCS} ${${ADDON}_CUDA_SRCS} ${${ADDON}_DIR}/${ADDON}Icons.qrc)
    Target_Link_Libraries(mgxU${ADDON} ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES})
  Else()
    Add_Library(mgxU${ADDON} SHARED ${${ADDON}_SRCS} ${${ADDON}_DIR}/${ADDON}Icons.qrc)
    Target_Link_Libraries(mgxU${ADDON})
  EndIf()

  Target_Link_Libraries(mgxU${ADDON} mgx mgxBase)
  If(WIN32)
    Set_Target_Properties(mgxU${ADDON} PROPERTIES
      PREFIX "")
    Install(TARGETS mgxU${ADDON}
      RUNTIME DESTINATION ${MGX_PROCESS_DIR} COMPONENT MGXU${ADDON})
  Else()
    Set_Target_Properties(mgxU${ADDON} PROPERTIES
      PUBLIC_HEADER "${${ADDON}_HDRS}"
      PREFIX "")
    Install(TARGETS mgxU${ADDON}
      DESTINATION ${MGX_PROCESS_DIR} COMPONENT MGXU${ADDON}
      PUBLIC_HEADER DESTINATION ${MGX_PROCESS_INCLUDE_DIR} COMPONENT MGXU${ADDON})
  EndIf()

EndIf(BUILD_${ADDON})
