In Files

Parent

Class Index [+]

Quicksearch

Object

Public Instance Methods

check_multiple_imagemagick_versions() click to toggle source

Seems like lots of people have multiple versions of ImageMagick installed.

    # File ext/RMagick/extconf.rb, line 52
52: def check_multiple_imagemagick_versions()
53:    versions = []
54:    path = ENV['PATH'].split(File::PATH_SEPARATOR)
55:    path.each do |dir|
56:       file = File.join(dir, "Magick-config")
57:       if File.executable? file
58:          vers = `#{file} --version`.chomp.strip
59:          prefix = `#{file} --prefix`.chomp.strip
60:          versions << [vers, prefix, dir]
61:       end
62:    end
63:    versions.uniq!
64:    if versions.size > 1
65:       msg = "\nWarning: Found more than one ImageMagick installation. This could cause problems at runtime.\n"
66:       versions.each do |vers, prefix, dir|
67:          msg << "         #{dir}/Magick-config reports version #{vers} is installed in #{prefix}\n"
68:       end
69:       msg << "Using #{versions[0][0]} from #{versions[0][1]}.\n\n"
70:       Logging::message msg
71:       message msg
72:    end
73: end
check_partial_imagemagick_versions() click to toggle source

Ubuntu (maybe other systems) comes with a partial installation of ImageMagick in the prefix /usr (some libraries, no includes, and no binaries). This causes problems when /usr/lib is in the path (e.g., using the default Ruby installation).

    # File ext/RMagick/extconf.rb, line 80
80: def check_partial_imagemagick_versions()
81:    prefix = config_string("prefix")
82:    matches = [
83:      prefix+"/lib/lib?agick*",
84:      prefix+"/include/ImageMagick",
85:      prefix+"/bin/Magick-config",
86:    ].map do |file_glob|
87:      Dir.glob(file_glob)
88:    end
89:    matches.delete_if { |arr| arr.empty? }
90:    if 0 < matches.length and matches.length < 3
91:       msg = "\nWarning: Found a partial ImageMagick installation. Your operating system likely has some built-in ImageMagick libraries but not all of ImageMagick. This will most likely cause problems at both compile and runtime.\nFound partial installation at: "+prefix+"\n"
92:       Logging::message msg
93:       message msg
94:    end
95: end
exit_failure(msg) click to toggle source
    # File ext/RMagick/extconf.rb, line 42
42: def exit_failure(msg)
43:   Logging::message msg
44:   message msg+"\n"
45:   exit(1)
46: end
have_enum_value(enum, value, headers=nil, &b) click to toggle source

Test for a specific value in an enum type

    # File ext/RMagick/extconf.rb, line 13
13: def have_enum_value(enum, value, headers=nil, &b)
14:   checking_for "#{enum}.#{value}" do
15:     if try_compile(#{COMMON_HEADERS}#{cpp_include(headers)}/*top*/int main() { #{enum} t = #{value}; t = t; return 0; }, &b)
16:       $defs.push(format("-DHAVE_ENUM_%s", value.upcase))
17:       true
18:     else
19:       false
20:     end
21:   end
22: end
have_enum_values(enum, values, headers=nil, &b) click to toggle source

Test for multiple values of the same enum type

    # File ext/RMagick/extconf.rb, line 33
33: def have_enum_values(enum, values, headers=nil, &b)
34:   values.each do |value|
35:     have_enum_value(enum, value, headers, &b)
36:   end
37: end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.