set(HEADERS ContainerBox.h Cylinder.h Assembly.h Dense.h Geometry.h Transform.h StructuredData.h StructuredGrid.h VoxImage.h VoxRaytracer.h Utils.h VoxImageFilter.h VoxImageFilter.hpp VoxImageFilterLinear.hpp VoxImageFilterMedian.hpp VoxImageFilterABTrim.hpp VoxImageFilterBilateral.hpp VoxImageFilterThreshold.hpp VoxImageFilter2ndStat.hpp VoxImageFilterCustom.hpp Accumulator.h TriangleMesh.h QuadMesh.h BitCode.h Structured2DGrid.h Structured4DGrid.h Units.h CLHEP_defs.hh) set(SOURCES VoxRaytracer.cpp StructuredData.cpp StructuredGrid.cpp VoxImage.cpp TriangleMesh.cpp QuadMesh.cpp Assembly.cpp Dense.cpp Structured2DGrid.cpp Structured4DGrid.cpp MathRegistrations.cpp) set(LIBRARIES ${PACKAGE_LIBPREFIX}Core Eigen3::Eigen ${ROOT_LIBRARIES} ${VTK_LIBRARIES}) set(libname ${PACKAGE_LIBPREFIX}Math) set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE) set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Math PARENT_SCOPE) add_library(${libname} SHARED ${SOURCES}) set_target_properties(${libname} PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_SOVERSION} CXX_STANDARD 17 CUDA_STANDARD 17) target_link_libraries(${libname} ${LIBRARIES}) if(USE_CUDA) set_source_files_properties(VoxRaytracer.cpp VoxImage.cpp PROPERTIES LANGUAGE CUDA) endif() 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}/Math) if(BUILD_TESTING) include(uLibTargetMacros) add_subdirectory(testing) endif()