Skip to content

Instantly share code, notes, and snippets.

@rootux
Last active April 24, 2019 09:20
Show Gist options
  • Select an option

  • Save rootux/12cf343688b4ac28b2e9ae5f06827856 to your computer and use it in GitHub Desktop.

Select an option

Save rootux/12cf343688b4ac28b2e9ae5f06827856 to your computer and use it in GitHub Desktop.

Revisions

  1. rootux renamed this gist Apr 24, 2019. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. rootux created this gist Apr 24, 2019.
    137 changes: 137 additions & 0 deletions imagemagick_brew_without_perl
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,137 @@
    class Imagemagick < Formula
    desc "Tools and libraries to manipulate images in many formats"
    homepage "https://www.imagemagick.org/"
    # Based on https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb
    # Please always keep the Homebrew mirror as the primary URL as the
    # ImageMagick site removes tarballs regularly which means we get issues
    # unnecessarily and older versions of the formula are broken.
    url "https://dl.bintray.com/homebrew/mirror/imagemagick-6.9.7-3.tar.xz"
    mirror "https://www.imagemagick.org/download/ImageMagick-6.9.7-3.tar.xz"
    sha256 "801767344b835b810a5f88c26f062f0fa01a97264dfe9bf5e5adf59a0b5c91a1"
    head "http://git.imagemagick.org/repos/ImageMagick.git"

    bottle do
    sha256 "9258c4fc88187040a23e8c62e451ef725eb504b721181eba4e6dda382884bf8e" => :sierra
    sha256 "6bb941944b07a17da426a1fae986ef8b13ba091dd52728e2ed59adb19d5fcce0" => :el_capitan
    sha256 "7246f8e60983e429ee088e8a3d2f2b3fb780c868cc5f5d3effff4146ddafe12e" => :yosemite
    end

    option "with-fftw", "Compile with FFTW support"
    option "with-hdri", "Compile with HDRI support"
    option "with-opencl", "Compile with OpenCL support"
    option "with-openmp", "Compile with OpenMP support"
    option "with-quantum-depth-8", "Compile with a quantum depth of 8 bit"
    option "with-quantum-depth-16", "Compile with a quantum depth of 16 bit"
    option "with-quantum-depth-32", "Compile with a quantum depth of 32 bit"
    option "without-magick-plus-plus", "disable build/install of Magick++"
    option "without-modules", "Disable support for dynamically loadable modules"
    option "without-threads", "Disable threads support"
    option "with-zero-configuration", "Disables depending on XML configuration files"

    deprecated_option "enable-hdri" => "with-hdri"
    deprecated_option "with-jp2" => "with-openjpeg"

    depends_on "pkg-config" => :build
    depends_on "libtool" => :run
    depends_on "xz"

    depends_on "jpeg" => :recommended
    depends_on "libpng" => :recommended
    depends_on "libtiff" => :recommended
    depends_on "freetype" => :recommended

    depends_on :x11 => :optional
    depends_on "fontconfig" => :optional
    depends_on "little-cms" => :optional
    depends_on "little-cms2" => :optional
    depends_on "libwmf" => :optional
    depends_on "librsvg" => :optional
    depends_on "liblqr" => :optional
    depends_on "openexr" => :optional
    depends_on "ghostscript" => :optional
    depends_on "webp" => :optional
    depends_on "openjpeg" => :optional
    depends_on "fftw" => :optional
    depends_on "pango" => :optional

    needs :openmp if build.with? "openmp"

    skip_clean :la

    def install
    args = %W[
    --disable-osx-universal-binary
    --prefix=#{prefix}
    --disable-dependency-tracking
    --disable-silent-rules
    --enable-shared
    --enable-static
    ]

    if build.without? "modules"
    args << "--without-modules"
    else
    args << "--with-modules"
    end

    if build.with? "opencl"
    args << "--enable-opencl"
    else
    args << "--disable-opencl"
    end

    if build.with? "openmp"
    args << "--enable-openmp"
    else
    args << "--disable-openmp"
    end

    if build.with? "webp"
    args << "--with-webp=yes"
    else
    args << "--without-webp"
    end

    if build.with? "openjpeg"
    args << "--with-openjp2"
    else
    args << "--without-openjp2"
    end

    args << "--without-gslib" if build.without? "ghostscript"
    args << "--with-gs-font-dir=#{HOMEBREW_PREFIX}/share/ghostscript/fonts" if build.without? "ghostscript"
    args << "--without-magick-plus-plus" if build.without? "magick-plus-plus"
    args << "--enable-hdri=yes" if build.with? "hdri"
    args << "--without-fftw" if build.without? "fftw"
    args << "--without-pango" if build.without? "pango"
    args << "--without-threads" if build.without? "threads"
    args << "--with-rsvg" if build.with? "librsvg"
    args << "--without-x" if build.without? "x11"
    args << "--with-fontconfig=yes" if build.with? "fontconfig"
    args << "--with-freetype=yes" if build.with? "freetype"
    args << "--enable-zero-configuration" if build.with? "zero-configuration"

    if build.with? "quantum-depth-32"
    quantum_depth = 32
    elsif build.with?("quantum-depth-16")
    quantum_depth = 16
    elsif build.with? "quantum-depth-8"
    quantum_depth = 8
    end
    args << "--with-quantum-depth=#{quantum_depth}" if quantum_depth

    # versioned stuff in main tree is pointless for us
    inreplace "configure", "${PACKAGE_NAME}-${PACKAGE_VERSION}", "${PACKAGE_NAME}"
    system "./configure", *args
    system "make", "install"
    end

    test do
    assert_match "PNG", shell_output("#{bin}/identify #{test_fixtures("test.png")}")
    # Check support for recommended features and delegates.
    features = shell_output("#{bin}/convert -version")
    %w[Modules freetype jpeg png tiff].each do |feature|
    assert_match feature, features
    end
    end
    end