set(HEADERS ContainerBox.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 BitCode.h Structured2DGrid.h Structured4DGrid.h) set(SOURCES VoxRaytracer.cpp StructuredData.cpp StructuredGrid.cpp VoxImage.cpp TriangleMesh.cpp Dense.cpp Structured2DGrid.cpp Structured4DGrid.cpp) set(LIBRARIES 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()