Top Level Namespace

Defined Under Namespace

Modules: Magick

Constant Summary collapse

RMAGICK_VERS =
"0.0.0"
MIN_RUBY_VERS =
"1.8.5"
MIN_RUBY_VERS_NO =
MIN_RUBY_VERS.tr(".","").to_i
MIN_IM_VERS =
"6.4.9"
MIN_IM_VERS_NO =
MIN_IM_VERS.tr(".","").to_i
SUMMARY =
<<"END_SUMMARY"


#{"=" * 70}
#{DateTime.now.strftime("%a %d%b%y %T")}
This installation of RMagick #{RMAGICK_VERS} is configured for
Ruby #{RUBY_VERSION} (#{RUBY_PLATFORM}) and ImageMagick #{$magick_version}
#{"=" * 70}


END_SUMMARY

Instance Method Summary collapse

Instance Method Details

#check_multiple_imagemagick_versionsObject

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



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'ext/RMagick/extconf.rb', line 52

def check_multiple_imagemagick_versions()
   versions = []
   path = ENV['PATH'].split(File::PATH_SEPARATOR)
   path.each do |dir|
      file = File.join(dir, "Magick-config")
      if File.executable? file
         vers = `#{file} --version`.chomp.strip
         prefix = `#{file} --prefix`.chomp.strip
         versions << [vers, prefix, dir]
      end
   end
   versions.uniq!
   if versions.size > 1
      msg = "\nWarning: Found more than one ImageMagick installation. This could cause problems at runtime.\n"
      versions.each do |vers, prefix, dir|
         msg << "         #{dir}/Magick-config reports version #{vers} is installed in #{prefix}\n"
      end
      msg << "Using #{versions[0][0]} from #{versions[0][1]}.\n\n"
      Logging::message msg
      message msg
   end
end

#check_partial_imagemagick_versionsObject

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).



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'ext/RMagick/extconf.rb', line 80

def check_partial_imagemagick_versions()
   prefix = config_string("prefix")
   matches = [
     prefix+"/lib/lib?agick*",
     prefix+"/include/ImageMagick",
     prefix+"/bin/Magick-config",
   ].map do |file_glob|
     Dir.glob(file_glob)
   end
   matches.delete_if { |arr| arr.empty? }
   if 0 < matches.length and matches.length < 3
      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"
      Logging::message msg
      message msg
   end
end

#exit_failure(msg) ⇒ Object



42
43
44
45
46
# File 'ext/RMagick/extconf.rb', line 42

def exit_failure(msg)
  Logging::message msg
  message msg+"\n"
  exit(1)
end

#have_enum_value(enum, value, headers = nil, &b) ⇒ Object

Test for a specific value in an enum type



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'ext/RMagick/extconf.rb', line 13

def have_enum_value(enum, value, headers=nil, &b)
  checking_for "#{enum}.#{value}" do
    if try_compile(<<"SRC", &b)
#{COMMON_HEADERS}
#{cpp_include(headers)}
/*top*/
int main() { #{enum} t = #{value}; t = t; return 0; }
SRC
      $defs.push(format("-DHAVE_ENUM_%s", value.upcase))
      true
    else
      false
    end
  end
end

#have_enum_values(enum, values, headers = nil, &b) ⇒ Object

Test for multiple values of the same enum type



33
34
35
36
37
# File 'ext/RMagick/extconf.rb', line 33

def have_enum_values(enum, values, headers=nil, &b)
  values.each do |value|
    have_enum_value(enum, value, headers, &b)
  end
end