53 lines
1.8 KiB
Ruby
53 lines
1.8 KiB
Ruby
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 12
|
|
head "https://ceres-solver.googlesource.com/ceres-solver.git"
|
|
|
|
bottle do
|
|
cellar :any
|
|
sha256 "2c086c9caaf2828a6429164960e438bc7b1d601a468599400dbcd9fce6baa33e" => :catalina
|
|
sha256 "6f3edef5bdaf1b23723825305b7cdc84d28a06705bd55735de70813b28cef37f" => :mojave
|
|
sha256 "4d59a78cc1d4fa075ad3cebfabb88f59080b3abe80a834445b018b670f9f2d0b" => :high_sierra
|
|
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")
|
|
end
|
|
end
|