set(HEADERS uLibVtkInterface.h uLibVtkViewer.h vtkHandlerWidget.h vtkQViewport.h vtkViewport.h vtkObjectsContext.h ) set(SOURCES uLibVtkInterface.cxx uLibVtkViewer.cpp vtkHandlerWidget.cpp vtkQViewport.cpp vtkViewport.cpp vtkObjectsContext.cpp ) ## Pull in Math VTK wrappers (sets MATH_SOURCES / MATH_HEADERS) add_subdirectory(Math) list(APPEND SOURCES ${MATH_SOURCES}) list(APPEND HEADERS ${MATH_HEADERS}) ## Pull in HEP/Detectors VTK wrappers (sets HEP_DETECTORS_SOURCES / HEADERS) add_subdirectory(HEP/Detectors) list(APPEND SOURCES ${HEP_DETECTORS_SOURCES}) list(APPEND HEADERS ${HEP_DETECTORS_HEADERS}) ## Pull in HEP/MuonTomography VTK wrappers (sets HEP_MUONTOMOGRAPHY_SOURCES / HEADERS) add_subdirectory(HEP/MuonTomography) list(APPEND SOURCES ${HEP_MUONTOMOGRAPHY_SOURCES}) list(APPEND HEADERS ${HEP_MUONTOMOGRAPHY_HEADERS}) ## Pull in HEP/Geant VTK wrappers (sets HEP_GEANT_SOURCES / HEADERS) add_subdirectory(HEP/Geant) list(APPEND SOURCES ${HEP_GEANT_SOURCES}) list(APPEND HEADERS ${HEP_GEANT_HEADERS}) set(LIBRARIES Eigen3::Eigen ${ROOT_LIBRARIES} ${VTK_LIBRARIES} ${PACKAGE_LIBPREFIX}Math ${PACKAGE_LIBPREFIX}Detectors ${PACKAGE_LIBPREFIX}Geant) if(USE_CUDA) find_package(CUDAToolkit REQUIRED) list(APPEND LIBRARIES CUDA::cudart) endif() set(libname ${PACKAGE_LIBPREFIX}Vtk) set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE) set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Vtk PARENT_SCOPE) add_library(${libname} SHARED ${SOURCES}) set_target_properties(${libname} PROPERTIES SOVERSION ${PROJECT_SOVERSION} AUTOMOC ON AUTOUIC ON AUTORCC ON) target_link_libraries(${libname} ${LIBRARIES} Qt6::Widgets) install(TARGETS ${libname} EXPORT "uLibTargets" RUNTIME DESTINATION ${INSTALL_BIN_DIR} COMPONENT bin LIBRARY DESTINATION ${INSTALL_LIB_DIR} COMPONENT lib) install(FILES ${HEADERS} DESTINATION ${INSTALL_INC_DIR}/Vtk) install(FILES ${MATH_HEADERS} DESTINATION ${INSTALL_INC_DIR}/Vtk/Math) install(FILES ${HEP_DETECTORS_HEADERS} DESTINATION ${INSTALL_INC_DIR}/Vtk/HEP/Detectors) install(FILES ${HEP_MUONTOMOGRAPHY_HEADERS} DESTINATION ${INSTALL_INC_DIR}/Vtk/HEP/MuonTomography) install(FILES ${HEP_GEANT_HEADERS} DESTINATION ${INSTALL_INC_DIR}/Vtk/HEP/Geant) if(BUILD_TESTING) include(uLibTargetMacros) add_subdirectory(testing) endif()