class Redex < Formula include Language::Python::Shebang desc "Bytecode optimizer for Android apps" homepage "https://fbredex.com" license "MIT" revision 10 head "https://github.com/facebook/redex.git", branch: "master" stable do url "https://github.com/facebook/redex/archive/v2017.10.31.tar.gz" sha256 "18a840e4db0fc51f79e17dfd749b2ffcce65a28e7ef9c2b3c255c5ad89f6fd6f" # Fix for automake 1.16.5 patch do url "https://github.com/facebook/redex/commit/4696e1882cf88707bf7560a2994a4207a8b7c7a3.patch?full_index=1" sha256 "dccc41146688448ea2d99dd04d4d41fdaf7e174ae1888d3abb10eb2dfa6ed1da" end # Apply upstream fixes for GCC 11 patch do url "https://github.com/facebook/redex/commit/70a82b873da269e7dd46611c73cfcdf7f84efa1a.patch?full_index=1" sha256 "44ce35ca93922f59fb4d0fd1885d24cce8a08d73b509e1fd2675557948464f1d" end patch do url "https://github.com/facebook/redex/commit/e81dda3f26144a9c94816c12237698ef2addf864.patch?full_index=1" sha256 "523ad3d7841a6716ac973b467be3ea8b6b7e332089f23e4788e1f679fd6f53f5" end patch do url "https://github.com/facebook/redex/commit/253b77159d6783786c8814168d1ff2b783d3a531.patch?full_index=1" sha256 "ed69a6230506704ca4cc7a52418b3af70a6182bd96abdb5874fab02f6b1a7c99" end # Fix compilation on High Sierra # Fix boost issue (https://github.com/facebook/redex/pull/564) # Remove for next release patch :DATA end bottle do sha256 cellar: :any, arm64_ventura: "6cabce85f406715881eff64761cc37403708c045dc12a4560ead729fdd7adabe" sha256 cellar: :any, arm64_monterey: "57f1b1dbdcfb11cc7be567585e03be4d18447fd62dc16034e760d8a8deec953b" sha256 cellar: :any, arm64_big_sur: "9e71e3e44041091e69fbec81fc7d44175b6ee4b2cd557f1ca02791dcd85e6a03" sha256 cellar: :any, ventura: "1c4f62eb7643bb8742bd318adab80d4e8434c8c561e3491c08525d78dce8b533" sha256 cellar: :any, monterey: "7daf7985fe65c3b64225ab66a90a6eba481c83f2b3c053a81d6068b54eff8184" sha256 cellar: :any, big_sur: "607440410a36514ec409e5d95527ca0686e6447b1eb4016325acbdaa5645c743" sha256 cellar: :any, catalina: "34404258648e99e63d7f64ea732d658beb1d2b971d93cf9ddcc25b74cdfa10cb" sha256 cellar: :any_skip_relocation, x86_64_linux: "31b6e3691c62ff5de9087e25886f3e5bbc3a135b9d377fe1aff6f8284f65ddc2" end depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libevent" => :build depends_on "libtool" => :build depends_on "boost" depends_on "jsoncpp" depends_on "python@3.10" resource "test_apk" do url "https://raw.githubusercontent.com/facebook/redex/fa32d542d4074dbd485584413d69ea0c9c3cbc98/test/instr/redex-test.apk" sha256 "7851cf2a15230ea6ff076639c2273bc4ca4c3d81917d2e13c05edcc4d537cc04" end def install # https://github.com/facebook/redex/issues/457 inreplace "Makefile.am", "/usr/include/jsoncpp", Formula["jsoncpp"].opt_include python_scripts = %w[ apkutil redex.py tools/python/dex.py tools/python/dict_utils.py tools/python/file_extract.py tools/python/reach_graph.py tools/redex-tool/DexSqlQuery.py tools/redexdump-apk ] rewrite_shebang detected_python_shebang, *python_scripts system "autoreconf", "--force", "--install", "--verbose" system "./configure", *std_configure_args, "--with-boost=#{Formula["boost"].opt_prefix}" system "make" system "make", "install" end test do testpath.install resource("test_apk") system "#{bin}/redex", "--ignore-zipalign", "redex-test.apk", "-o", "redex-test-out.apk" assert_predicate testpath/"redex-test-out.apk", :exist? end end __END__ diff --git a/libresource/RedexResources.cpp b/libresource/RedexResources.cpp index 525601ec..a359f49f 100644 --- a/libresource/RedexResources.cpp +++ b/libresource/RedexResources.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/libredex/Show.cpp b/libredex/Show.cpp index b042070f..5e492e3f 100644 --- a/libredex/Show.cpp +++ b/libredex/Show.cpp @@ -9,7 +9,14 @@ #include "Show.h" +#include +// Quoted was accepted into public components as of 1.73. The `detail` +// header was removed in 1.74. +#if BOOST_VERSION < 107400 #include +#else +#include +#endif #include #include "ControlFlow.h"