Files
uLib/src/Vtk/CMakeLists.txt
2026-03-27 15:02:17 +00:00

76 lines
2.6 KiB
CMake

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()