rmagick 4.1.0.rc1 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.codeclimate.yml +63 -0
- data/.editorconfig +3 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.github/workflows/ci.yml +108 -0
- data/.gitignore +3 -1
- data/.rspec +1 -0
- data/.rubocop.yml +24 -0
- data/.rubocop_todo.yml +151 -297
- data/.yardopts +5 -0
- data/CHANGELOG.md +94 -0
- data/CODE_OF_CONDUCT.md +122 -7
- data/CONTRIBUTING.md +14 -10
- data/README.md +324 -0
- data/Rakefile +16 -22
- data/before_install_linux.sh +22 -32
- data/before_install_osx.sh +57 -2
- data/ext/RMagick/extconf.rb +108 -95
- data/ext/RMagick/rmagick.c +77 -104
- data/ext/RMagick/rmagick.h +77 -70
- data/ext/RMagick/rmdraw.c +289 -446
- data/ext/RMagick/rmenum.c +96 -113
- data/ext/RMagick/rmfill.c +49 -77
- data/ext/RMagick/rmilist.c +144 -244
- data/ext/RMagick/rmimage.c +3416 -4169
- data/ext/RMagick/rminfo.c +540 -738
- data/ext/RMagick/rmkinfo.c +21 -87
- data/ext/RMagick/rmmain.c +419 -246
- data/ext/RMagick/rmmontage.c +60 -126
- data/ext/RMagick/rmpixel.c +401 -345
- data/ext/RMagick/rmstruct.c +62 -88
- data/ext/RMagick/rmutil.c +148 -228
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +128 -77
- data/lib/rvg/clippath.rb +2 -1
- data/lib/rvg/container.rb +10 -5
- data/lib/rvg/describable.rb +1 -1
- data/lib/rvg/embellishable.rb +5 -4
- data/lib/rvg/misc.rb +15 -12
- data/lib/rvg/paint.rb +2 -1
- data/lib/rvg/pathdata.rb +12 -11
- data/lib/rvg/rvg.rb +8 -4
- data/lib/rvg/stylable.rb +9 -7
- data/lib/rvg/text.rb +11 -6
- data/lib/rvg/transformable.rb +3 -2
- data/lib/rvg/units.rb +1 -1
- data/rmagick.gemspec +8 -6
- metadata +46 -421
- data/.appveyor.yml +0 -57
- data/.circleci/config.yml +0 -56
- data/.ruby-version +0 -1
- data/.simplecov +0 -27
- data/.travis.yml +0 -64
- data/Doxyfile +0 -1514
- data/README.textile +0 -259
- data/benchmarks/memory/README.md +0 -50
- data/benchmarks/memory/image_new.rb +0 -8
- data/benchmarks/memory/rmagick.gnuplot +0 -16
- data/doc/.cvsignore +0 -1
- data/doc/comtasks.html +0 -287
- data/doc/constants.html +0 -1581
- data/doc/css/doc.css +0 -299
- data/doc/css/popup.css +0 -34
- data/doc/css/ref.css +0 -67
- data/doc/draw.html +0 -3272
- data/doc/ex/InitialCoords.rb +0 -22
- data/doc/ex/NewCoordSys.rb +0 -30
- data/doc/ex/OrigCoordSys.rb +0 -16
- data/doc/ex/PreserveAspectRatio.rb +0 -204
- data/doc/ex/RotateScale.rb +0 -36
- data/doc/ex/Skew.rb +0 -38
- data/doc/ex/Use01.rb +0 -15
- data/doc/ex/Use02.rb +0 -20
- data/doc/ex/Use03.rb +0 -16
- data/doc/ex/ViewBox.rb +0 -31
- data/doc/ex/adaptive_threshold.rb +0 -9
- data/doc/ex/add_noise.rb +0 -16
- data/doc/ex/affine.rb +0 -48
- data/doc/ex/affine_transform.rb +0 -20
- data/doc/ex/arc.rb +0 -49
- data/doc/ex/arcpath.rb +0 -32
- data/doc/ex/arcs01.rb +0 -28
- data/doc/ex/arcs02.rb +0 -59
- data/doc/ex/average.rb +0 -15
- data/doc/ex/axes.rb +0 -64
- data/doc/ex/baseline_shift01.rb +0 -17
- data/doc/ex/bilevel_channel.rb +0 -8
- data/doc/ex/blur_image.rb +0 -12
- data/doc/ex/border.rb +0 -10
- data/doc/ex/bounding_box.rb +0 -42
- data/doc/ex/cbezier1.rb +0 -41
- data/doc/ex/cbezier2.rb +0 -41
- data/doc/ex/cbezier3.rb +0 -41
- data/doc/ex/cbezier4.rb +0 -42
- data/doc/ex/cbezier5.rb +0 -42
- data/doc/ex/cbezier6.rb +0 -53
- data/doc/ex/channel.rb +0 -25
- data/doc/ex/charcoal.rb +0 -12
- data/doc/ex/chop.rb +0 -29
- data/doc/ex/circle.rb +0 -33
- data/doc/ex/circle01.rb +0 -16
- data/doc/ex/clip_path.rb +0 -60
- data/doc/ex/coalesce.rb +0 -57
- data/doc/ex/color_fill_to_border.rb +0 -29
- data/doc/ex/color_floodfill.rb +0 -28
- data/doc/ex/color_histogram.rb +0 -47
- data/doc/ex/color_reset.rb +0 -11
- data/doc/ex/colorize.rb +0 -16
- data/doc/ex/colors.rb +0 -64
- data/doc/ex/compose_mask.rb +0 -22
- data/doc/ex/composite.rb +0 -133
- data/doc/ex/composite_layers.rb +0 -52
- data/doc/ex/composite_tiled.rb +0 -21
- data/doc/ex/contrast.rb +0 -36
- data/doc/ex/crop.rb +0 -31
- data/doc/ex/crop_with_gravity.rb +0 -42
- data/doc/ex/cubic01.rb +0 -43
- data/doc/ex/cubic02.rb +0 -91
- data/doc/ex/cycle_colormap.rb +0 -21
- data/doc/ex/dissolve.rb +0 -12
- data/doc/ex/drawcomp.rb +0 -41
- data/doc/ex/drop_shadow.rb +0 -60
- data/doc/ex/edge.rb +0 -11
- data/doc/ex/ellipse.rb +0 -45
- data/doc/ex/ellipse01.rb +0 -21
- data/doc/ex/emboss.rb +0 -11
- data/doc/ex/enhance.rb +0 -28
- data/doc/ex/equalize.rb +0 -11
- data/doc/ex/evenodd.rb +0 -42
- data/doc/ex/fill_pattern.rb +0 -23
- data/doc/ex/flatten_images.rb +0 -36
- data/doc/ex/flip.rb +0 -11
- data/doc/ex/flop.rb +0 -11
- data/doc/ex/font_styles.rb +0 -32
- data/doc/ex/fonts.rb +0 -16
- data/doc/ex/frame.rb +0 -12
- data/doc/ex/gaussian_blur.rb +0 -11
- data/doc/ex/get_multiline_type_metrics.rb +0 -41
- data/doc/ex/get_pixels.rb +0 -45
- data/doc/ex/get_type_metrics.rb +0 -142
- data/doc/ex/gradientfill.rb +0 -27
- data/doc/ex/grav.rb +0 -45
- data/doc/ex/gravity.rb +0 -78
- data/doc/ex/group.rb +0 -26
- data/doc/ex/hatchfill.rb +0 -27
- data/doc/ex/image.rb +0 -44
- data/doc/ex/images/Apple.miff +0 -0
- data/doc/ex/images/Ballerina.jpg +0 -0
- data/doc/ex/images/Ballerina3.jpg +0 -0
- data/doc/ex/images/Button_0.gif +0 -0
- data/doc/ex/images/Button_1.gif +0 -0
- data/doc/ex/images/Button_2.gif +0 -0
- data/doc/ex/images/Button_3.gif +0 -0
- data/doc/ex/images/Button_4.gif +0 -0
- data/doc/ex/images/Button_5.gif +0 -0
- data/doc/ex/images/Button_6.gif +0 -0
- data/doc/ex/images/Button_7.gif +0 -0
- data/doc/ex/images/Button_8.gif +0 -0
- data/doc/ex/images/Button_9.gif +0 -0
- data/doc/ex/images/Button_A.gif +0 -0
- data/doc/ex/images/Button_B.gif +0 -0
- data/doc/ex/images/Button_C.gif +0 -0
- data/doc/ex/images/Button_D.gif +0 -0
- data/doc/ex/images/Button_E.gif +0 -0
- data/doc/ex/images/Button_F.gif +0 -0
- data/doc/ex/images/Button_G.gif +0 -0
- data/doc/ex/images/Button_H.gif +0 -0
- data/doc/ex/images/Button_I.gif +0 -0
- data/doc/ex/images/Button_J.gif +0 -0
- data/doc/ex/images/Button_K.gif +0 -0
- data/doc/ex/images/Button_L.gif +0 -0
- data/doc/ex/images/Button_M.gif +0 -0
- data/doc/ex/images/Button_N.gif +0 -0
- data/doc/ex/images/Button_O.gif +0 -0
- data/doc/ex/images/Button_P.gif +0 -0
- data/doc/ex/images/Button_Q.gif +0 -0
- data/doc/ex/images/Button_R.gif +0 -0
- data/doc/ex/images/Button_S.gif +0 -0
- data/doc/ex/images/Button_T.gif +0 -0
- data/doc/ex/images/Button_U.gif +0 -0
- data/doc/ex/images/Button_V.gif +0 -0
- data/doc/ex/images/Button_W.gif +0 -0
- data/doc/ex/images/Button_X.gif +0 -0
- data/doc/ex/images/Button_Y.gif +0 -0
- data/doc/ex/images/Button_Z.gif +0 -0
- data/doc/ex/images/Cheetah.jpg +0 -0
- data/doc/ex/images/Coffee.png +0 -0
- data/doc/ex/images/Flower_Hat.jpg +0 -0
- data/doc/ex/images/Gold_Statue.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
- data/doc/ex/images/Leaf.miff +0 -0
- data/doc/ex/images/No.png +0 -0
- data/doc/ex/images/Polynesia.jpg +0 -0
- data/doc/ex/images/Red_Rocks.jpg +0 -0
- data/doc/ex/images/Rocks_On_Beach.miff +0 -0
- data/doc/ex/images/Shorts.jpg +0 -0
- data/doc/ex/images/Snake.png +0 -0
- data/doc/ex/images/Violin.jpg +0 -0
- data/doc/ex/images/Yellow_Rose.miff +0 -0
- data/doc/ex/images/big-duck.gif +0 -0
- data/doc/ex/images/duck.gif +0 -0
- data/doc/ex/images/duck0.gif +0 -0
- data/doc/ex/images/duck1.gif +0 -0
- data/doc/ex/images/duck10.gif +0 -0
- data/doc/ex/images/duck11.gif +0 -0
- data/doc/ex/images/duck12.gif +0 -0
- data/doc/ex/images/duck13.gif +0 -0
- data/doc/ex/images/duck14.gif +0 -0
- data/doc/ex/images/duck15.gif +0 -0
- data/doc/ex/images/duck2.gif +0 -0
- data/doc/ex/images/duck3.gif +0 -0
- data/doc/ex/images/duck4.gif +0 -0
- data/doc/ex/images/duck5.gif +0 -0
- data/doc/ex/images/duck6.gif +0 -0
- data/doc/ex/images/duck7.gif +0 -0
- data/doc/ex/images/duck8.gif +0 -0
- data/doc/ex/images/duck9.gif +0 -0
- data/doc/ex/images/graydient230x6.gif +0 -0
- data/doc/ex/images/image_with_profile.jpg +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/images/model.miff +0 -0
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/images/smile.miff +0 -0
- data/doc/ex/images/spin.gif +0 -0
- data/doc/ex/implode.rb +0 -34
- data/doc/ex/level.rb +0 -11
- data/doc/ex/level_colors.rb +0 -11
- data/doc/ex/line.rb +0 -41
- data/doc/ex/line01.rb +0 -21
- data/doc/ex/mask.rb +0 -35
- data/doc/ex/matte_fill_to_border.rb +0 -39
- data/doc/ex/matte_floodfill.rb +0 -32
- data/doc/ex/matte_replace.rb +0 -39
- data/doc/ex/median_filter.rb +0 -28
- data/doc/ex/modulate.rb +0 -11
- data/doc/ex/mono.rb +0 -23
- data/doc/ex/morph.rb +0 -25
- data/doc/ex/mosaic.rb +0 -37
- data/doc/ex/motion_blur.rb +0 -11
- data/doc/ex/negate.rb +0 -11
- data/doc/ex/negate_channel.rb +0 -9
- data/doc/ex/nested_rvg.rb +0 -21
- data/doc/ex/nonzero.rb +0 -42
- data/doc/ex/normalize.rb +0 -11
- data/doc/ex/oil_paint.rb +0 -11
- data/doc/ex/opacity.rb +0 -37
- data/doc/ex/ordered_dither.rb +0 -11
- data/doc/ex/path.rb +0 -63
- data/doc/ex/pattern1.rb +0 -25
- data/doc/ex/pattern2.rb +0 -26
- data/doc/ex/polaroid.rb +0 -26
- data/doc/ex/polygon.rb +0 -23
- data/doc/ex/polygon01.rb +0 -21
- data/doc/ex/polyline.rb +0 -22
- data/doc/ex/polyline01.rb +0 -21
- data/doc/ex/posterize.rb +0 -8
- data/doc/ex/preview.rb +0 -8
- data/doc/ex/qbezierpath.rb +0 -52
- data/doc/ex/quad01.rb +0 -34
- data/doc/ex/quantize-m.rb +0 -25
- data/doc/ex/radial_blur.rb +0 -9
- data/doc/ex/raise.rb +0 -8
- data/doc/ex/random_threshold_channel.rb +0 -13
- data/doc/ex/rect01.rb +0 -14
- data/doc/ex/rect02.rb +0 -20
- data/doc/ex/rectangle.rb +0 -34
- data/doc/ex/reduce_noise.rb +0 -28
- data/doc/ex/remap.rb +0 -11
- data/doc/ex/remap_images.rb +0 -19
- data/doc/ex/resize_to_fill.rb +0 -8
- data/doc/ex/resize_to_fit.rb +0 -8
- data/doc/ex/roll.rb +0 -9
- data/doc/ex/rotate.rb +0 -44
- data/doc/ex/rotate_f.rb +0 -14
- data/doc/ex/roundrect.rb +0 -33
- data/doc/ex/rubyname.rb +0 -30
- data/doc/ex/rvg_clippath.rb +0 -12
- data/doc/ex/rvg_linecap.rb +0 -42
- data/doc/ex/rvg_linejoin.rb +0 -40
- data/doc/ex/rvg_opacity.rb +0 -18
- data/doc/ex/rvg_pattern.rb +0 -26
- data/doc/ex/rvg_stroke_dasharray.rb +0 -11
- data/doc/ex/segment.rb +0 -11
- data/doc/ex/sepiatone.rb +0 -7
- data/doc/ex/shade.rb +0 -11
- data/doc/ex/shadow.rb +0 -30
- data/doc/ex/shave.rb +0 -15
- data/doc/ex/shear.rb +0 -10
- data/doc/ex/sketch.rb +0 -17
- data/doc/ex/skewx.rb +0 -51
- data/doc/ex/skewy.rb +0 -47
- data/doc/ex/smile.rb +0 -126
- data/doc/ex/solarize.rb +0 -11
- data/doc/ex/sparse_color.rb +0 -55
- data/doc/ex/splice.rb +0 -8
- data/doc/ex/spread.rb +0 -11
- data/doc/ex/stegano.rb +0 -54
- data/doc/ex/stroke_dasharray.rb +0 -42
- data/doc/ex/stroke_fill.rb +0 -10
- data/doc/ex/stroke_linecap.rb +0 -44
- data/doc/ex/stroke_linejoin.rb +0 -48
- data/doc/ex/stroke_width.rb +0 -49
- data/doc/ex/swirl.rb +0 -17
- data/doc/ex/text.rb +0 -37
- data/doc/ex/text01.rb +0 -16
- data/doc/ex/text_align.rb +0 -36
- data/doc/ex/text_antialias.rb +0 -37
- data/doc/ex/text_styles.rb +0 -19
- data/doc/ex/text_undercolor.rb +0 -28
- data/doc/ex/texture_fill_to_border.rb +0 -34
- data/doc/ex/texture_floodfill.rb +0 -32
- data/doc/ex/texturefill.rb +0 -24
- data/doc/ex/threshold.rb +0 -13
- data/doc/ex/to_blob.rb +0 -13
- data/doc/ex/translate.rb +0 -39
- data/doc/ex/transparent.rb +0 -38
- data/doc/ex/transpose.rb +0 -9
- data/doc/ex/transverse.rb +0 -9
- data/doc/ex/tref01.rb +0 -24
- data/doc/ex/triangle01.rb +0 -15
- data/doc/ex/trim.rb +0 -23
- data/doc/ex/tspan01.rb +0 -17
- data/doc/ex/tspan02.rb +0 -17
- data/doc/ex/tspan03.rb +0 -19
- data/doc/ex/unsharp_mask.rb +0 -28
- data/doc/ex/viewex.rb +0 -33
- data/doc/ex/vignette.rb +0 -12
- data/doc/ex/watermark.rb +0 -27
- data/doc/ex/wave.rb +0 -9
- data/doc/ex/wet_floor.rb +0 -58
- data/doc/ex/writing_mode01.rb +0 -26
- data/doc/ex/writing_mode02.rb +0 -26
- data/doc/ilist.html +0 -2056
- data/doc/image1.html +0 -4680
- data/doc/image2.html +0 -3665
- data/doc/image3.html +0 -4522
- data/doc/imageattrs.html +0 -1638
- data/doc/imusage.html +0 -514
- data/doc/index.html +0 -416
- data/doc/info.html +0 -1499
- data/doc/magick.html +0 -570
- data/doc/optequiv.html +0 -2435
- data/doc/rvg.html +0 -975
- data/doc/rvgclip.html +0 -248
- data/doc/rvggroup.html +0 -305
- data/doc/rvgimage.html +0 -289
- data/doc/rvgpattern.html +0 -475
- data/doc/rvgshape.html +0 -406
- data/doc/rvgstyle.html +0 -270
- data/doc/rvgtext.html +0 -465
- data/doc/rvgtspan.html +0 -238
- data/doc/rvgtut.html +0 -530
- data/doc/rvguse.html +0 -145
- data/doc/rvgxform.html +0 -294
- data/doc/scripts/doc.js +0 -22
- data/doc/scripts/stripeTables.js +0 -23
- data/doc/struct.html +0 -1339
- data/doc/usage.html +0 -1621
- data/examples/constitute.rb +0 -7
- data/examples/crop_with_gravity.rb +0 -43
- data/examples/demo.rb +0 -323
- data/examples/describe.rb +0 -41
- data/examples/find_similar_region.rb +0 -34
- data/examples/histogram.rb +0 -312
- data/examples/identify.rb +0 -174
- data/examples/image_opacity.rb +0 -28
- data/examples/import_export.rb +0 -31
- data/examples/pattern_fill.rb +0 -37
- data/examples/rotating_text.rb +0 -45
- data/examples/spinner.rb +0 -49
- data/examples/thumbnail.rb +0 -64
- data/examples/vignette.rb +0 -78
- data/spec/rmagick/ImageList1_spec.rb +0 -24
- data/spec/rmagick/draw_spec.rb +0 -155
- data/spec/rmagick/image/blue_shift_spec.rb +0 -14
- data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
- data/spec/rmagick/image/composite_spec.rb +0 -72
- data/spec/rmagick/image/constitute_spec.rb +0 -13
- data/spec/rmagick/image/dispatch_spec.rb +0 -16
- data/spec/rmagick/image/dissolve_spec.rb +0 -54
- data/spec/rmagick/image/from_blob_spec.rb +0 -12
- data/spec/rmagick/image/ping_spec.rb +0 -12
- data/spec/rmagick/image/properties_spec.rb +0 -27
- data/spec/rmagick/image/read_spec.rb +0 -28
- data/spec/spec_helper.rb +0 -9
- data/spec/support/issue_200/app.rb +0 -8
- data/test/Draw.rb +0 -351
- data/test/Enum.rb +0 -228
- data/test/Fill.rb +0 -93
- data/test/Image1.rb +0 -606
- data/test/Image2.rb +0 -1408
- data/test/Image3.rb +0 -1086
- data/test/ImageList1.rb +0 -858
- data/test/ImageList2.rb +0 -375
- data/test/Image_attributes.rb +0 -635
- data/test/Import_Export.rb +0 -111
- data/test/Info.rb +0 -436
- data/test/KernelInfo.rb +0 -59
- data/test/Magick.rb +0 -311
- data/test/Pixel.rb +0 -259
- data/test/PolaroidOptions.rb +0 -23
- data/test/Preview.rb +0 -26
- data/test/Struct.rb +0 -45
- data/test/appearance/Montage.rb +0 -26
- data/test/appearance/appearance_assertion.rb +0 -13
- data/test/appearance/expected/montage_border_color.jpg +0 -0
- data/test/cmyk.icm +0 -0
- data/test/lib/internal/Draw.rb +0 -811
- data/test/lib/internal/Geometry.rb +0 -98
- data/test/lib/internal/Magick.rb +0 -40
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +0 -49
- data/test/tmpnam_test.rb +0 -50
data/Rakefile
CHANGED
@@ -43,7 +43,7 @@ task build: [:config] do
|
|
43
43
|
FileUtils.mkdir_p(File.join(base, 'pkg'))
|
44
44
|
FileUtils.mv(File.join(base, gem_name), 'pkg')
|
45
45
|
else
|
46
|
-
|
46
|
+
warn 'Could not build gem'
|
47
47
|
exit $CHILD_STATUS.exitstatus
|
48
48
|
end
|
49
49
|
end
|
@@ -121,21 +121,21 @@ namespace :legacy do
|
|
121
121
|
task README => 'README.txt' do
|
122
122
|
puts "writing #{README}"
|
123
123
|
File.open(README, 'w') do |html|
|
124
|
-
html.write
|
125
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
126
|
-
<html>
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
END_HTML_HEAD
|
124
|
+
html.write <<~END_HTML_HEAD
|
125
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
126
|
+
<html>
|
127
|
+
<head>
|
128
|
+
<title>RMagick #{Magick::VERSION} README</title>
|
129
|
+
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
130
|
+
<meta name="GENERATOR" content="RedCloth">
|
131
|
+
</head>
|
132
|
+
<body>
|
133
|
+
END_HTML_HEAD
|
134
134
|
html.write File.readlines('README.txt')
|
135
|
-
html.write
|
136
|
-
|
137
|
-
</html>
|
138
|
-
END_HTML_TAIL
|
135
|
+
html.write <<~END_HTML_TAIL
|
136
|
+
</body>
|
137
|
+
</html>
|
138
|
+
END_HTML_TAIL
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
@@ -172,7 +172,6 @@ END_HTML_TAIL
|
|
172
172
|
end
|
173
173
|
|
174
174
|
require 'rake/extensiontask'
|
175
|
-
require 'rake/testtask'
|
176
175
|
require 'rspec/core/rake_task'
|
177
176
|
RSpec::Core::RakeTask.new(:spec)
|
178
177
|
|
@@ -180,11 +179,6 @@ Rake::ExtensionTask.new('RMagick2') do |ext|
|
|
180
179
|
ext.ext_dir = 'ext/RMagick'
|
181
180
|
end
|
182
181
|
|
183
|
-
Rake::TestTask.new(:test) do |t|
|
184
|
-
t.libs << 'test'
|
185
|
-
end
|
186
|
-
|
187
|
-
task test: :compile
|
188
182
|
task spec: :compile
|
189
183
|
|
190
184
|
if ENV['STYLE_CHECKS']
|
@@ -192,5 +186,5 @@ if ENV['STYLE_CHECKS']
|
|
192
186
|
RuboCop::RakeTask.new
|
193
187
|
task default: %i[rubocop]
|
194
188
|
else
|
195
|
-
task default: %i[spec
|
189
|
+
task default: %i[spec]
|
196
190
|
end
|
data/before_install_linux.sh
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
1
3
|
set -euox pipefail
|
2
4
|
|
3
5
|
gem install bundler
|
@@ -13,66 +15,54 @@ if [ ! -v IMAGEMAGICK_VERSION ]; then
|
|
13
15
|
exit 1
|
14
16
|
fi
|
15
17
|
|
18
|
+
sudo apt-get clean
|
19
|
+
sudo apt-get update
|
20
|
+
|
16
21
|
# remove all existing imagemagick related packages
|
17
22
|
sudo apt-get autoremove -y imagemagick* libmagick* --purge
|
18
23
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
sudo apt-get install -y build-essential libx11-dev libxext-dev zlib1g-dev \
|
24
|
-
liblcms2-dev libpng-dev libjpeg-dev libfreetype6-dev libxml2-dev \
|
25
|
-
libtiff5-dev libwebp-dev vim ghostscript ccache
|
26
|
-
fi
|
24
|
+
# install build tools, ImageMagick delegates
|
25
|
+
sudo apt-get install -y build-essential libx11-dev libxext-dev zlib1g-dev \
|
26
|
+
liblcms2-dev libpng-dev libjpeg-dev libfreetype6-dev libxml2-dev \
|
27
|
+
libtiff5-dev libwebp-dev liblqr-1-0-dev vim gsfonts ghostscript ccache
|
27
28
|
|
28
29
|
if [ ! -d /usr/include/freetype ]; then
|
29
30
|
# If `/usr/include/freetype` is not existed, ImageMagick 6.7 configuration fails about Freetype.
|
30
31
|
sudo ln -sf /usr/include/freetype2 /usr/include/freetype
|
31
32
|
fi
|
32
33
|
|
33
|
-
project_dir
|
34
|
-
build_dir
|
34
|
+
project_dir=$(pwd)
|
35
|
+
build_dir="${project_dir}/build-ImageMagick/ImageMagick-${IMAGEMAGICK_VERSION}"
|
35
36
|
if [ -v CONFIGURE_OPTIONS ]; then
|
36
|
-
build_dir
|
37
|
+
build_dir="${build_dir}-${CONFIGURE_OPTIONS}"
|
37
38
|
fi
|
38
39
|
|
39
40
|
build_imagemagick() {
|
40
41
|
mkdir -p build-ImageMagick
|
41
42
|
|
42
43
|
version=(${IMAGEMAGICK_VERSION//./ })
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
elif (( "${version[0]}${version[1]}" >= 69 )); then
|
48
|
-
wget https://github.com/ImageMagick/ImageMagick6/archive/${IMAGEMAGICK_VERSION}.tar.gz
|
49
|
-
tar -xf ${IMAGEMAGICK_VERSION}.tar.gz
|
50
|
-
rm ${IMAGEMAGICK_VERSION}.tar.gz
|
51
|
-
mv ImageMagick6-${IMAGEMAGICK_VERSION} $build_dir
|
52
|
-
else
|
53
|
-
wget https://www.imagemagick.org/download/releases/ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz
|
54
|
-
tar -xf ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz
|
55
|
-
rm ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz
|
56
|
-
mv ImageMagick-${IMAGEMAGICK_VERSION} $build_dir
|
57
|
-
fi
|
44
|
+
wget "https://imagemagick.org/download/releases/ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
45
|
+
tar -xf "ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
46
|
+
rm "ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
47
|
+
mv "ImageMagick-${IMAGEMAGICK_VERSION}" "${build_dir}"
|
58
48
|
|
59
49
|
options="--with-magick-plus-plus=no --disable-docs"
|
60
50
|
if [ -v CONFIGURE_OPTIONS ]; then
|
61
|
-
options="${CONFIGURE_OPTIONS} $options"
|
51
|
+
options="${CONFIGURE_OPTIONS} ${options}"
|
62
52
|
fi
|
63
53
|
|
64
|
-
cd $build_dir
|
65
|
-
CC="ccache cc" CXX="ccache c++" ./configure --prefix=/usr $options
|
54
|
+
cd "${build_dir}"
|
55
|
+
CC="ccache cc" CXX="ccache c++" ./configure --prefix=/usr "${options}"
|
66
56
|
make -j
|
67
57
|
}
|
68
58
|
|
69
|
-
if [ ! -d $build_dir ]; then
|
59
|
+
if [ ! -d "${build_dir}" ]; then
|
70
60
|
build_imagemagick
|
71
61
|
fi
|
72
62
|
|
73
|
-
cd $build_dir
|
63
|
+
cd "${build_dir}"
|
74
64
|
sudo make install -j
|
75
|
-
cd $project_dir
|
65
|
+
cd "${project_dir}"
|
76
66
|
|
77
67
|
sudo ldconfig
|
78
68
|
|
data/before_install_osx.sh
CHANGED
@@ -1,2 +1,57 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -euox pipefail
|
4
|
+
|
5
|
+
gem install bundler
|
6
|
+
|
7
|
+
if [ -v STYLE_CHECKS ]; then
|
8
|
+
set +ux
|
9
|
+
exit 0
|
10
|
+
fi
|
11
|
+
|
12
|
+
if [ ! -v IMAGEMAGICK_VERSION ]; then
|
13
|
+
echo "you must specify an ImageMagick version."
|
14
|
+
echo "example: 'IMAGEMAGICK_VERSION=6.8.9-10 bash ./before_install_osx.sh'"
|
15
|
+
exit 1
|
16
|
+
fi
|
17
|
+
|
18
|
+
export HOMEBREW_NO_AUTO_UPDATE=true
|
19
|
+
brew install wget pkg-config ghostscript freetype jpeg little-cms2 libomp libpng libtiff liblqr libtool libxml2 zlib webp
|
20
|
+
|
21
|
+
export LDFLAGS="-L/usr/local/opt/libxml2/lib -L/usr/local/opt/zlib/lib"
|
22
|
+
export CPPFLAGS="-I/usr/local/opt/libxml2/include/libxml2 -I/usr/local/opt/zlib/include"
|
23
|
+
|
24
|
+
project_dir=$(pwd)
|
25
|
+
build_dir="${project_dir}/build-ImageMagick/ImageMagick-${IMAGEMAGICK_VERSION}"
|
26
|
+
if [ -v CONFIGURE_OPTIONS ]; then
|
27
|
+
build_dir="${build_dir}-${CONFIGURE_OPTIONS}"
|
28
|
+
fi
|
29
|
+
|
30
|
+
build_imagemagick() {
|
31
|
+
mkdir -p build-ImageMagick
|
32
|
+
|
33
|
+
version=(${IMAGEMAGICK_VERSION//./ })
|
34
|
+
wget "https://imagemagick.org/download/releases/ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
35
|
+
tar -xf "ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
36
|
+
rm "ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
37
|
+
mv "ImageMagick-${IMAGEMAGICK_VERSION}" "${build_dir}"
|
38
|
+
|
39
|
+
options="--with-magick-plus-plus=no --disable-docs"
|
40
|
+
if [ -v CONFIGURE_OPTIONS ]; then
|
41
|
+
options="${CONFIGURE_OPTIONS} ${options}"
|
42
|
+
fi
|
43
|
+
|
44
|
+
cd "${build_dir}"
|
45
|
+
./configure --prefix=/usr/local "${options}"
|
46
|
+
make -j
|
47
|
+
}
|
48
|
+
|
49
|
+
if [ ! -d "${build_dir}" ]; then
|
50
|
+
build_imagemagick
|
51
|
+
fi
|
52
|
+
|
53
|
+
cd "${build_dir}"
|
54
|
+
make install -j
|
55
|
+
cd "${project_dir}"
|
56
|
+
|
57
|
+
set +ux
|
data/ext/RMagick/extconf.rb
CHANGED
@@ -2,7 +2,6 @@ lib_dir = File.expand_path('../../lib', File.dirname(__FILE__))
|
|
2
2
|
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
|
3
3
|
require 'rubygems'
|
4
4
|
require 'mkmf'
|
5
|
-
require 'date'
|
6
5
|
|
7
6
|
module RMagick
|
8
7
|
class Extconf
|
@@ -16,12 +15,14 @@ module RMagick
|
|
16
15
|
@stdout = $stdout.dup
|
17
16
|
|
18
17
|
setup_pkg_config_path
|
19
|
-
configure_compile_options
|
20
18
|
assert_can_compile!
|
19
|
+
configure_compile_options
|
21
20
|
configure_headers
|
22
21
|
end
|
23
22
|
|
24
23
|
def setup_pkg_config_path
|
24
|
+
return if RUBY_PLATFORM =~ /mswin|mingw/
|
25
|
+
|
25
26
|
if find_executable('brew')
|
26
27
|
pkg_config_path = "#{`brew --prefix imagemagick@6`.strip}/lib/pkgconfig"
|
27
28
|
elsif find_executable('pacman')
|
@@ -64,55 +65,32 @@ module RMagick
|
|
64
65
|
# Magick-config is not available on Windows
|
65
66
|
if RUBY_PLATFORM !~ /mswin|mingw/
|
66
67
|
|
67
|
-
# Check for compiler. Extract first word so ENV['CC'] can be a program name with arguments.
|
68
|
-
config = defined?(RbConfig) ? ::RbConfig : ::Config
|
69
|
-
cc = (ENV['CC'] || config::CONFIG['CC'] || 'gcc').split(' ').first
|
70
|
-
exit_failure "No C compiler found in ${ENV['PATH']}. See mkmf.log for details." unless find_executable(cc)
|
71
|
-
|
72
|
-
magick_package = determine_imagemagick_package
|
73
|
-
|
74
|
-
$magick_version = `pkg-config #{magick_package} --modversion`[/^(\d+\.\d+\.\d+)/]
|
75
|
-
|
76
68
|
check_multiple_imagemagick_versions
|
77
69
|
check_partial_imagemagick_versions
|
78
70
|
|
79
|
-
# Ensure minimum ImageMagick version
|
80
|
-
# Check minimum ImageMagick version if possible
|
81
|
-
checking_for("outdated ImageMagick version (<= #{Magick::MIN_IM_VERSION})") do
|
82
|
-
Logging.message("Detected ImageMagick version: #{$magick_version}\n")
|
83
|
-
|
84
|
-
exit_failure "Can't install RMagick #{RMAGICK_VERS}. You must have ImageMagick #{Magick::MIN_IM_VERSION} or later.\n" if Gem::Version.new($magick_version) < Gem::Version.new(Magick::MIN_IM_VERSION)
|
85
|
-
end
|
86
|
-
|
87
71
|
# Save flags
|
88
|
-
$CFLAGS
|
89
|
-
$CPPFLAGS
|
90
|
-
$LDFLAGS
|
91
|
-
$LOCAL_LIBS = ENV['LIBS']
|
72
|
+
$CFLAGS = "#{ENV['CFLAGS']} " + `pkg-config --cflags #{$magick_package}`.chomp
|
73
|
+
$CPPFLAGS = "#{ENV['CPPFLAGS']} " + `pkg-config --cflags #{$magick_package}`.chomp
|
74
|
+
$LDFLAGS = "#{ENV['LDFLAGS']} " + `pkg-config --libs #{$magick_package}`.chomp
|
75
|
+
$LOCAL_LIBS = "#{ENV['LIBS']} " + `pkg-config --libs #{$magick_package}`.chomp
|
92
76
|
|
93
|
-
|
77
|
+
configure_archflags_for_osx($magick_package) if RUBY_PLATFORM =~ /darwin/ # osx
|
94
78
|
|
95
79
|
elsif RUBY_PLATFORM =~ /mingw/ # mingw
|
96
80
|
|
97
|
-
`#{magick_command} -version` =~ /Version: ImageMagick (\d+\.\d+\.\d+)-+\d+ /
|
98
|
-
abort 'Unable to get ImageMagick version' unless Regexp.last_match(1)
|
99
|
-
$magick_version = Regexp.last_match(1)
|
100
|
-
|
101
81
|
dir_paths = search_paths_for_library_for_windows
|
102
82
|
$CPPFLAGS = %(-I"#{dir_paths[:include]}")
|
103
83
|
$LDFLAGS = %(-L"#{dir_paths[:lib]}")
|
84
|
+
$LDFLAGS << ' -lucrt' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.0')
|
104
85
|
|
105
86
|
have_library(im_version_at_least?('7.0.0') ? 'CORE_RL_MagickCore_' : 'CORE_RL_magick_')
|
106
87
|
|
107
88
|
else # mswin
|
108
89
|
|
109
|
-
`#{magick_command} -version` =~ /Version: ImageMagick (\d+\.\d+\.\d+)-+\d+ /
|
110
|
-
abort 'Unable to get ImageMagick version' unless Regexp.last_match(1)
|
111
|
-
$magick_version = Regexp.last_match(1)
|
112
|
-
|
113
90
|
dir_paths = search_paths_for_library_for_windows
|
114
91
|
$CPPFLAGS << %( -I"#{dir_paths[:include]}")
|
115
92
|
$LDFLAGS << %( -libpath:"#{dir_paths[:lib]}")
|
93
|
+
$LDFLAGS << ' -libpath:ucrt' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.0')
|
116
94
|
|
117
95
|
$LOCAL_LIBS = im_version_at_least?('7.0.0') ? 'CORE_RL_MagickCore_.lib' : 'CORE_RL_magick_.lib'
|
118
96
|
|
@@ -121,30 +99,6 @@ module RMagick
|
|
121
99
|
$CFLAGS << (have_macro('__GNUC__') ? ' -std=gnu99' : ' -std=c99')
|
122
100
|
end
|
123
101
|
|
124
|
-
# Test for a specific value in an enum type
|
125
|
-
def have_enum_value(enum, value, headers = nil, &b)
|
126
|
-
checking_for "#{enum}.#{value}" do
|
127
|
-
if try_compile(<<"SRC", &b)
|
128
|
-
#{COMMON_HEADERS}
|
129
|
-
#{cpp_include(headers)}
|
130
|
-
/*top*/
|
131
|
-
int main() { #{enum} t = #{value}; t = t; return 0; }
|
132
|
-
SRC
|
133
|
-
$defs.push(format('-DHAVE_ENUM_%s', value.upcase))
|
134
|
-
true
|
135
|
-
else
|
136
|
-
false
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
# Test for multiple values of the same enum type
|
142
|
-
def have_enum_values(enum, values, headers = nil, &b)
|
143
|
-
values.each do |value|
|
144
|
-
have_enum_value(enum, value, headers, &b)
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
102
|
def exit_failure(msg)
|
149
103
|
msg = "ERROR: #{msg}"
|
150
104
|
|
@@ -163,10 +117,6 @@ SRC
|
|
163
117
|
end
|
164
118
|
|
165
119
|
def determine_imagemagick_package
|
166
|
-
unless find_executable('pkg-config')
|
167
|
-
exit_failure "Can't install RMagick #{RMAGICK_VERS}. Can't find pkg-config in #{ENV['PATH']}\n"
|
168
|
-
end
|
169
|
-
|
170
120
|
packages = `pkg-config --list-all`.scan(/(ImageMagick\-[\.A-Z0-9]+) .*/).flatten
|
171
121
|
|
172
122
|
# For ancient version of ImageMagick 6 we need a different regex
|
@@ -245,21 +195,33 @@ SRC
|
|
245
195
|
matches.delete_if(&:empty?)
|
246
196
|
return unless !matches.empty? && matches.length < 3
|
247
197
|
|
248
|
-
msg =
|
198
|
+
msg = <<~MESSAGE
|
199
|
+
|
200
|
+
Warning: Found a partial ImageMagick installation. Your operating
|
201
|
+
system likely has some built-in ImageMagick libraries but not all of
|
202
|
+
ImageMagick. This will most likely cause problems at both compile and
|
203
|
+
runtime.
|
204
|
+
Found partial installation at: #{prefix}
|
205
|
+
|
206
|
+
MESSAGE
|
207
|
+
|
249
208
|
Logging.message msg
|
250
209
|
message msg
|
251
210
|
end
|
252
211
|
|
253
212
|
# issue #169
|
254
213
|
# set ARCHFLAGS appropriately for OSX
|
255
|
-
def
|
256
|
-
|
257
|
-
|
258
|
-
|
214
|
+
def configure_archflags_for_osx(magick_package)
|
215
|
+
return unless `pkg-config #{magick_package} --libs-only-L`.match(%r{-L(.+)/lib})
|
216
|
+
|
217
|
+
imagemagick_dir = Regexp.last_match(1)
|
218
|
+
command = Dir.glob(File.join(imagemagick_dir, "bin/*")).select { |file| File.executable? file }.first
|
219
|
+
fileinfo = `file #{command}`
|
259
220
|
|
260
221
|
# default ARCHFLAGS
|
261
222
|
archs = $ARCH_FLAG.scan(/-arch\s+(\S+)/).flatten
|
262
223
|
|
224
|
+
archflags = []
|
263
225
|
archs.each do |arch|
|
264
226
|
archflags << "-arch #{arch}" if fileinfo.include?(arch)
|
265
227
|
end
|
@@ -290,54 +252,101 @@ SRC
|
|
290
252
|
|
291
253
|
return dir_paths if found_lib
|
292
254
|
|
293
|
-
exit_failure
|
294
|
-
Can't install RMagick #{RMAGICK_VERS}.
|
295
|
-
Can't find the ImageMagick library.
|
296
|
-
Retry with '--with-opt-dir' option.
|
297
|
-
Usage: gem install rmagick -- '--with-opt-dir=\"[path to ImageMagick]\"'
|
298
|
-
e.g.
|
299
|
-
|
300
|
-
END_MINGW
|
255
|
+
exit_failure <<~END_MINGW
|
256
|
+
Can't install RMagick #{RMAGICK_VERS}.
|
257
|
+
Can't find the ImageMagick library.
|
258
|
+
Retry with '--with-opt-dir' option.
|
259
|
+
Usage: gem install rmagick -- '--with-opt-dir=\"[path to ImageMagick]\"'
|
260
|
+
e.g.
|
261
|
+
gem install rmagick -- '--with-opt-dir=\"C:\Program Files\ImageMagick-6.9.1-Q16\"'
|
262
|
+
END_MINGW
|
301
263
|
end
|
302
264
|
|
303
265
|
def assert_can_compile!
|
304
266
|
assert_minimum_ruby_version!
|
305
267
|
assert_has_dev_libs!
|
268
|
+
|
269
|
+
# Check for compiler. Extract first word so ENV['CC'] can be a program name with arguments.
|
270
|
+
cc = (ENV['CC'] || RbConfig::CONFIG['CC'] || 'gcc').split(' ').first
|
271
|
+
exit_failure "No C compiler found in ${ENV['PATH']}. See mkmf.log for details." unless find_executable(cc)
|
306
272
|
end
|
307
273
|
|
308
274
|
def assert_minimum_ruby_version!
|
309
|
-
|
275
|
+
supported = checking_for("Ruby version >= #{MIN_RUBY_VERS}") do
|
310
276
|
Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(MIN_RUBY_VERS)
|
311
277
|
end
|
312
|
-
|
313
|
-
|
278
|
+
|
279
|
+
exit_failure "Can't install RMagick #{RMAGICK_VERS}. Ruby #{MIN_RUBY_VERS} or later required.\n" unless supported
|
314
280
|
end
|
315
281
|
|
316
282
|
def assert_has_dev_libs!
|
317
|
-
|
283
|
+
failure_message = <<~END_FAILURE
|
284
|
+
Can't install RMagick #{RMAGICK_VERS}.
|
285
|
+
Can't find the ImageMagick library or one of the dependent libraries.
|
286
|
+
Check the mkmf.log file for more detailed information.
|
287
|
+
END_FAILURE
|
288
|
+
|
289
|
+
if RUBY_PLATFORM !~ /mswin|mingw/
|
290
|
+
unless find_executable('pkg-config')
|
291
|
+
exit_failure "Can't install RMagick #{RMAGICK_VERS}. Can't find pkg-config in #{ENV['PATH']}\n"
|
292
|
+
end
|
293
|
+
|
294
|
+
unless `pkg-config --libs MagickCore`[/\bl\s*(MagickCore|Magick)6?\b/]
|
295
|
+
exit_failure failure_message
|
296
|
+
end
|
297
|
+
|
298
|
+
$magick_package = determine_imagemagick_package
|
299
|
+
$magick_version = `pkg-config #{$magick_package} --modversion`[/^(\d+\.\d+\.\d+)/]
|
300
|
+
else
|
301
|
+
`#{magick_command} -version` =~ /Version: ImageMagick (\d+\.\d+\.\d+)-+\d+ /
|
302
|
+
$magick_version = Regexp.last_match(1)
|
303
|
+
exit_failure failure_message unless $magick_version
|
304
|
+
end
|
318
305
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
306
|
+
# Ensure minimum ImageMagick version
|
307
|
+
# Check minimum ImageMagick version if possible
|
308
|
+
checking_for("outdated ImageMagick version (<= #{Magick::MIN_IM_VERSION})") do
|
309
|
+
Logging.message("Detected ImageMagick version: #{$magick_version}\n")
|
310
|
+
|
311
|
+
exit_failure "Can't install RMagick #{RMAGICK_VERS}. You must have ImageMagick #{Magick::MIN_IM_VERSION} or later.\n" if Gem::Version.new($magick_version) < Gem::Version.new(Magick::MIN_IM_VERSION)
|
323
312
|
end
|
324
313
|
end
|
325
314
|
|
326
315
|
def create_header_file
|
327
|
-
[
|
316
|
+
ruby_api = [
|
317
|
+
'rb_gc_adjust_memory_usage' # Ruby 2.4.0
|
318
|
+
]
|
319
|
+
memory_api = %w[
|
320
|
+
posix_memalign
|
321
|
+
malloc_usable_size
|
322
|
+
malloc_size
|
323
|
+
_aligned_msize
|
324
|
+
]
|
325
|
+
imagemagick_api = [
|
328
326
|
'GetImageChannelEntropy', # 6.9.0-0
|
329
|
-
'SetImageGray' # 6.9.1-10
|
330
|
-
|
327
|
+
'SetImageGray', # 6.9.1-10
|
328
|
+
'SetMagickAlignedMemoryMethods' # 7.0.9-0
|
329
|
+
]
|
330
|
+
|
331
|
+
check_api = ruby_api + memory_api + imagemagick_api
|
332
|
+
check_api.each do |func|
|
331
333
|
have_func(func, headers)
|
332
334
|
end
|
333
335
|
|
336
|
+
unless have_header('malloc.h')
|
337
|
+
have_header('malloc/malloc.h')
|
338
|
+
end
|
339
|
+
|
334
340
|
# Miscellaneous constants
|
335
341
|
$defs.push("-DRUBY_VERSION_STRING=\"ruby #{RUBY_VERSION}\"")
|
336
342
|
$defs.push("-DRMAGICK_VERSION_STRING=\"RMagick #{RMAGICK_VERS}\"")
|
337
343
|
|
338
344
|
$defs.push('-DIMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9=1') if im_version_at_least?('6.8.9')
|
339
345
|
$defs.push('-DIMAGEMAGICK_GREATER_THAN_EQUAL_6_9_0=1') if im_version_at_least?('6.9.0')
|
346
|
+
$defs.push('-DIMAGEMAGICK_GREATER_THAN_EQUAL_6_9_10=1') if im_version_at_least?('6.9.10')
|
340
347
|
$defs.push('-DIMAGEMAGICK_7=1') if im_version_at_least?('7.0.0')
|
348
|
+
$defs.push('-DIMAGEMAGICK_GREATER_THAN_EQUAL_7_0_8=1') if im_version_at_least?('7.0.8')
|
349
|
+
$defs.push('-DIMAGEMAGICK_GREATER_THAN_EQUAL_7_0_10=1') if im_version_at_least?('7.0.10')
|
341
350
|
|
342
351
|
create_header
|
343
352
|
end
|
@@ -349,14 +358,20 @@ END_MINGW
|
|
349
358
|
$defs = []
|
350
359
|
|
351
360
|
# Force re-compilation if the generated Makefile changed.
|
352
|
-
$config_h = 'Makefile
|
361
|
+
$config_h = 'Makefile'
|
353
362
|
|
354
363
|
create_makefile('RMagick2')
|
355
364
|
print_summary
|
356
365
|
end
|
357
366
|
|
358
367
|
def magick_command
|
359
|
-
@magick_command ||= find_executable('magick')
|
368
|
+
@magick_command ||= if find_executable('magick')
|
369
|
+
'magick'
|
370
|
+
elsif find_executable('identify')
|
371
|
+
'identify'
|
372
|
+
else
|
373
|
+
raise NotImplementedError, "no executable found for ImageMagick"
|
374
|
+
end
|
360
375
|
end
|
361
376
|
|
362
377
|
def im_version_at_least?(version)
|
@@ -364,17 +379,15 @@ END_MINGW
|
|
364
379
|
end
|
365
380
|
|
366
381
|
def print_summary
|
367
|
-
summary =
|
368
|
-
|
369
|
-
|
370
|
-
#{
|
371
|
-
#{
|
372
|
-
|
373
|
-
Ruby #{RUBY_VERSION} (#{RUBY_PLATFORM}) and ImageMagick #{$magick_version}
|
374
|
-
#{'=' * 70}
|
382
|
+
summary = <<~"END_SUMMARY"
|
383
|
+
#{'=' * 70}
|
384
|
+
#{Time.now.strftime('%a %d %b %y %T')}
|
385
|
+
This installation of RMagick #{RMAGICK_VERS} is configured for
|
386
|
+
Ruby #{RUBY_VERSION} (#{RUBY_PLATFORM}) and ImageMagick #{$magick_version}
|
387
|
+
#{'=' * 70}
|
375
388
|
|
376
389
|
|
377
|
-
END_SUMMARY
|
390
|
+
END_SUMMARY
|
378
391
|
|
379
392
|
Logging.message summary
|
380
393
|
message summary
|