PageRenderTime 74ms CodeModel.GetById 31ms RepoModel.GetById 1ms app.codeStats 0ms

/Library/Formula/eigen.rb

https://bitbucket.org/JoshHagins/homebrew
Ruby | 50 lines | 42 code | 6 blank | 2 comment | 1 complexity | bcd2f4e614f903a9b2e2530c915dc361 MD5 | raw file
  1. class Eigen < Formula
  2. homepage "http://eigen.tuxfamily.org/"
  3. url "http://bitbucket.org/eigen/eigen/get/3.2.3.tar.bz2"
  4. sha1 "303e8241aaa879a328d675de368525a591c42e51"
  5. bottle do
  6. cellar :any
  7. sha1 "c5186ca59c192a26ace3775c6da18d7afc0a4669" => :yosemite
  8. sha1 "83ea196f29660928719ba2ea2537b8b674a0f3b5" => :mavericks
  9. sha1 "af6cc494f7082b18d88ffa61630d387575fd5e8f" => :mountain_lion
  10. end
  11. head "https://bitbucket.org/eigen/eigen", :using => :hg
  12. depends_on "cmake" => :build
  13. option :universal
  14. def install
  15. ENV.universal_binary if build.universal?
  16. mkdir "eigen-build" do
  17. args = std_cmake_args
  18. args.delete "-DCMAKE_BUILD_TYPE=None"
  19. args << "-DCMAKE_BUILD_TYPE=Release"
  20. args << "-Dpkg_config_libdir=#{lib}" << ".."
  21. system "cmake", *args
  22. system "make install"
  23. end
  24. (share/"cmake/Modules").install "cmake/FindEigen3.cmake"
  25. end
  26. test do
  27. (testpath/"test.cpp").write <<-EOS.undent
  28. #include <iostream>
  29. #include <Eigen/Dense>
  30. using Eigen::MatrixXd;
  31. int main()
  32. {
  33. MatrixXd m(2,2);
  34. m(0,0) = 3;
  35. m(1,0) = 2.5;
  36. m(0,1) = -1;
  37. m(1,1) = m(1,0) + m(0,1);
  38. std::cout << m << std::endl;
  39. }
  40. EOS
  41. system ENV.cxx, "test.cpp", "-I#{include}/eigen3", "-o", "test"
  42. assert_equal `./test`.split, %w[3 -1 2.5 1.5]
  43. end
  44. end