class Vtk < Formula desc "Toolkit for 3D computer graphics, image processing, and visualization" homepage "https://www.vtk.org/" url "https://www.vtk.org/files/release/9.2/VTK-9.2.5.tar.gz" sha256 "128d601baa980e98ee034207974b33fb38d2c98ab9cf4a5756efdb09ed6c0949" license "BSD-3-Clause" head "https://gitlab.kitware.com/vtk/vtk.git", branch: "master" bottle do sha256 cellar: :any, arm64_ventura: "5d4d79b2b171400e8989efa3899b721bf62ce9ff6f8997f0c86f08c92b91a12b" sha256 cellar: :any, arm64_monterey: "fc0ae90d5df009812ef7200844eb91a858edac633dfd5135f02f112f9972a0ed" sha256 cellar: :any, arm64_big_sur: "c1a459e4d1cf5f55ad2ce50911be49f34cdc394cf9dff532c950ee8308ad2765" sha256 cellar: :any, ventura: "4af73feefcfeb44a58aaaf077e8cfd0ea715538c0f301be11ae4558a7599de8d" sha256 cellar: :any, monterey: "9f9411db0c66a467f3db4502526855f03044db18b7196fd89ad8cec87122099c" sha256 cellar: :any, big_sur: "d1b8a09fb27eedf4581819dfe5ae1ad60d2ac437376cbb5fbd7e193f1e81cd04" sha256 cellar: :any_skip_relocation, x86_64_linux: "d8e0ff935451c0b11b6073bcb2e5617d8a40c59a53c90344748fd78431ef52b3" end depends_on "cmake" => [:build, :test] depends_on "boost" depends_on "double-conversion" depends_on "eigen" depends_on "fontconfig" depends_on "gl2ps" depends_on "glew" depends_on "hdf5" depends_on "jpeg-turbo" depends_on "jsoncpp" depends_on "libogg" depends_on "libpng" depends_on "libtiff" depends_on "lz4" depends_on "netcdf" depends_on "pugixml" depends_on "pyqt@5" depends_on "python@3.11" depends_on "qt@5" depends_on "sqlite" depends_on "theora" depends_on "utf8cpp" depends_on "xz" uses_from_macos "expat" uses_from_macos "libxml2" uses_from_macos "tcl-tk" uses_from_macos "zlib" on_macos do on_arm do if DevelopmentTools.clang_build_version == 1316 depends_on "llvm" => :build # clang: error: unable to execute command: Segmentation fault: 11 # clang: error: clang frontend command failed due to signal (use -v to see invocation) # Apple clang version 13.1.6 (clang-1316.0.21.2) fails_with :clang end end end on_linux do depends_on "libaec" depends_on "mesa-glu" end fails_with gcc: "5" def install ENV.llvm_clang if DevelopmentTools.clang_build_version == 1316 && Hardware::CPU.arm? args = %W[ -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_NAME_DIR:STRING=#{opt_lib} -DCMAKE_INSTALL_RPATH:STRING=#{rpath} -DCMAKE_DISABLE_FIND_PACKAGE_ICU:BOOL=ON -DVTK_WRAP_PYTHON:BOOL=ON -DVTK_PYTHON_VERSION:STRING=3 -DVTK_LEGACY_REMOVE:BOOL=ON -DVTK_MODULE_ENABLE_VTK_InfovisBoost:STRING=YES -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms:STRING=YES -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig:STRING=YES -DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_eigen:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_glew:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_jpeg:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_lz4:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_lzma:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_ogg:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_pugixml:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_sqlite:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_theora:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_tiff:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_utf8:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=ON -DPython3_EXECUTABLE:FILEPATH=#{which("python3.11")} -DVTK_GROUP_ENABLE_Qt:STRING=YES -DVTK_QT_VERSION:STRING=5 ] # https://github.com/Homebrew/linuxbrew-core/pull/21654#issuecomment-738549701 args << "-DOpenGL_GL_PREFERENCE=LEGACY" args << "-DVTK_USE_COCOA:BOOL=ON" if OS.mac? system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args system "cmake", "--build", "build" system "cmake", "--install", "build" end test do # Force use of Apple Clang on macOS that needs LLVM to build ENV.clang if DevelopmentTools.clang_build_version == 1316 && Hardware::CPU.arm? vtk_dir = lib/"cmake/vtk-#{version.major_minor}" vtk_cmake_module = vtk_dir/"VTK-vtk-module-find-packages.cmake" assert_match Formula["boost"].version.to_s, vtk_cmake_module.read, "VTK needs to be rebuilt against Boost!" (testpath/"CMakeLists.txt").write <<~EOS cmake_minimum_required(VERSION 3.3 FATAL_ERROR) project(Distance2BetweenPoints LANGUAGES CXX) find_package(VTK REQUIRED COMPONENTS vtkCommonCore CONFIG) add_executable(Distance2BetweenPoints Distance2BetweenPoints.cxx) target_link_libraries(Distance2BetweenPoints PRIVATE ${VTK_LIBRARIES}) EOS (testpath/"Distance2BetweenPoints.cxx").write <<~EOS #include #include int main() { double p0[3] = {0.0, 0.0, 0.0}; double p1[3] = {1.0, 1.0, 1.0}; assert(vtkMath::Distance2BetweenPoints(p0, p1) == 3.0); return 0; } EOS system "cmake", ".", "-DCMAKE_BUILD_TYPE=Debug", "-DCMAKE_VERBOSE_MAKEFILE=ON", "-DVTK_DIR=#{vtk_dir}" system "make" system "./Distance2BetweenPoints" (testpath/"Distance2BetweenPoints.py").write <<~EOS import vtk p0 = (0, 0, 0) p1 = (1, 1, 1) assert vtk.vtkMath.Distance2BetweenPoints(p0, p1) == 3 EOS system bin/"vtkpython", "Distance2BetweenPoints.py" end end