class Ccache < Formula desc "Object-file caching compiler wrapper" homepage "https://ccache.dev/" url "https://github.com/ccache/ccache/releases/download/v3.7.4/ccache-3.7.4.tar.xz" sha256 "04c0af414b8cf89e541daed59735547fbfd323b1aaa983da0216f6b6731e6836" bottle do cellar :any_skip_relocation sha256 "0a7fceb3c3679a4a877f1d4ae88e077199802dd443dda22de5da0d2876063008" => :mojave sha256 "29271554b78ff5d578005be15d4011d2e1b3049d9c0bfe8e266fe7f897ba6716" => :high_sierra sha256 "c63ff484e61c4d08ae490dc1f7bcc410542c3701b5388aae73a9aa123cd77c78" => :sierra end uses_from_macos "zlib" head do url "https://github.com/ccache/ccache.git" depends_on "asciidoc" => :build depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build end def install ENV["XML_CATALOG_FILES"] = etc/"xml/catalog" if build.head? system "./autogen.sh" if build.head? system "./configure", "--prefix=#{prefix}", "--mandir=#{man}" system "make" system "make", "install" libexec.mkpath %w[ clang clang++ cc gcc gcc2 gcc3 gcc-3.3 gcc-4.0 gcc-4.2 gcc-4.3 gcc-4.4 gcc-4.5 gcc-4.6 gcc-4.7 gcc-4.8 gcc-4.9 gcc-5 gcc-6 gcc-7 gcc-8 gcc-9 c++ c++3 c++-3.3 c++-4.0 c++-4.2 c++-4.3 c++-4.4 c++-4.5 c++-4.6 c++-4.7 c++-4.8 c++-4.9 c++-5 c++-6 c++-7 c++-8 c++-9 g++ g++2 g++3 g++-3.3 g++-4.0 g++-4.2 g++-4.3 g++-4.4 g++-4.5 g++-4.6 g++-4.7 g++-4.8 g++-4.9 g++-5 g++-6 g++-7 g++-8 g++-9 ].each do |prog| libexec.install_symlink bin/"ccache" => prog end end def caveats; <<~EOS To install symlinks for compilers that will automatically use ccache, prepend this directory to your PATH: #{opt_libexec} If this is an upgrade and you have previously added the symlinks to your PATH, you may need to modify it to the path specified above so it points to the current version. NOTE: ccache can prevent some software from compiling. ALSO NOTE: The brew command, by design, will never use ccache. EOS end test do ENV.prepend_path "PATH", opt_libexec assert_equal "#{opt_libexec}/gcc", shell_output("which gcc").chomp system "#{bin}/ccache", "-s" end end