aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/imagemagick.rb
blob: 7e8c1d33e0f040109d5e6e553882fafc917670c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# some credit to http://github.com/maddox/magick-installer
require 'formula'

class UnsafeSvn <SubversionDownloadStrategy
  def _fetch_command svncommand, url, target
    [svn, '--non-interactive', '--trust-server-cert', svncommand, '--force', url, target]
  end
end

def ghostscript_srsly?
  ARGV.include? '--with-ghostscript'
end

def ghostscript_fonts?
  File.directory? "#{HOMEBREW_PREFIX}/share/ghostscript/fonts"
end

def use_wmf?
  ARGV.include? '--use-wmf'
end

def disable_openmp?
  ARGV.include? '--disable-openmp'
end

def x11?
  # I used this file because old Xcode seems to lack it, and its that old
  # Xcode that loads of people seem to have installed still
  File.file? '/usr/X11/include/ft2build.h'
end

class Imagemagick <Formula
  url 'https://www.imagemagick.org/subversion/ImageMagick/trunk',
        :using => UnsafeSvn, :revision => '2715'
  version '6.6.4-5'
  homepage 'http://www.imagemagick.org'

  head 'https://www.imagemagick.org/subversion/ImageMagick/trunk',
        :using => UnsafeSvn

  depends_on 'jpeg'
  depends_on 'libpng' unless x11?

  depends_on 'ghostscript' => :recommended if ghostscript_srsly? and x11?

  depends_on 'libtiff' => :optional
  depends_on 'little-cms' => :optional
  depends_on 'jasper' => :optional

  depends_on 'libwmf' if use_wmf?

  def skip_clean? path
    path.extname == '.la'
  end

  def options
    [
      ['--with-ghostscript', 'Compile against ghostscript (not recommended.)'],
      ['--use-wmf', 'Compile with libwmf support.'],
      ['--disable-openmp', 'Disable OpenMP.']
    ]
  end

  def install
    ENV.x11 # Add to PATH for freetype-config on Snow Leopard
    ENV.O3 # takes forever otherwise

    args = [ "--disable-osx-universal-binary",
             "--without-perl", # I couldn't make this compile
             "--prefix=#{prefix}",
             "--disable-dependency-tracking",
             "--enable-shared",
             "--disable-static",
             "--with-modules",
             "--without-magick-plus-plus" ]

    args << "--disable-openmp" if MACOS_VERSION < 10.6 or disable_openmp?
    args << "--without-gslib" unless ghostscript_srsly?
    args << "--with-gs-font-dir=#{HOMEBREW_PREFIX}/share/ghostscript/fonts" \
                unless ghostscript_srsly? or ghostscript_fonts?

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

    # We already copy these into the keg root
    %w[NEWS.txt LICENSE ChangeLog].each {|f| (share+"ImageMagick/#{f}").unlink}
  end

  def caveats
    s = <<-EOS.undent
    Because ImageMagick likes to remove tarballs, we're downloading their
    stable release from their SVN repo instead. But they only serve the
    repo over HTTPS, and have an untrusted certificate, so we auto-accept
    this certificate for you.

    If this bothers you, open a ticket with ImageMagick to fix their cert.

    EOS
    unless x11?
      s += <<-EOS.undent
      You don't have X11 from the Xcode DMG installed. Consequently Imagemagick is less fully featured.

      EOS
    end
    unless ghostscript_fonts? or ghostscript_srsly?
      s += <<-EOS.undent
      Some tools will complain if the ghostscript fonts are not installed in:
        #{HOMEBREW_PREFIX}/share/ghostscript/fonts
      EOS
    end
    return s
  end

  def test
    system "identify", "/Library/Application Support/Apple/iChat Icons/Flags/Argentina.gif"
  end
end