class CeresSolver < Formula desc "C++ library for large-scale optimization" homepage "http://ceres-solver.org/" url "http://ceres-solver.org/ceres-solver-1.14.0.tar.gz" sha256 "4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e" revision 3 head "https://ceres-solver.googlesource.com/ceres-solver.git" bottle do cellar :any sha256 "03251844f55852bf15d7abf63988f741a457d35626a212cc8a95ad615620efa8" => :mojave sha256 "9c3bffa8f76a7282a1c532743d26bc6915d01f360506bfaf1e5971b8f818149f" => :high_sierra sha256 "054d0dd4b98c717f6b523c8aa90fbb2dd5e4856cdf2fff976ca0fc15d6d17163" => :sierra sha256 "3e025ac8ccc1de865ce081dc97ec69b521d3477215256cebfcfe985585877f1e" => :el_capitan end depends_on "cmake" depends_on "eigen" depends_on "gflags" depends_on "glog" depends_on "metis" depends_on "suite-sparse" def install system "cmake", ".", *std_cmake_args, "-DBUILD_SHARED_LIBS=ON", "-DEIGEN_INCLUDE_DIR=#{Formula["eigen"].opt_include}/eigen3", "-DMETIS_LIBRARY=#{Formula["metis"].opt_lib}/libmetis.dylib", "-DGLOG_INCLUDE_DIR_HINTS=#{Formula["glog"].opt_include}", "-DGLOG_LIBRARY_DIR_HINTS=#{Formula["glog"].opt_lib}", "-DTBB=OFF" system "make" system "make", "install" pkgshare.install "examples", "data" doc.install "docs/html" unless build.head? end test do cp pkgshare/"examples/helloworld.cc", testpath (testpath/"CMakeLists.txt").write <<~EOS cmake_minimum_required(VERSION 2.8) project(helloworld) find_package(Ceres REQUIRED) include_directories(${CERES_INCLUDE_DIRS}) add_executable(helloworld helloworld.cc) target_link_libraries(helloworld ${CERES_LIBRARIES}) EOS system "cmake", "-DCeres_DIR=#{share}/Ceres", "." system "make" assert_match "CONVERGENCE", shell_output("./helloworld", 0) end end