aboutsummaryrefslogtreecommitdiff
path: root/Mk/Uses/magick.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Uses/magick.mk')
-rw-r--r--Mk/Uses/magick.mk76
1 files changed, 54 insertions, 22 deletions
diff --git a/Mk/Uses/magick.mk b/Mk/Uses/magick.mk
index 1d44270031ab..9739a8260f9d 100644
--- a/Mk/Uses/magick.mk
+++ b/Mk/Uses/magick.mk
@@ -2,29 +2,33 @@
#
# Feature: magick
# Usage: USES=magick:ARGS
-# Valid ARGS: [version],[kinds],[flavor]
+# Valid ARGS: [version],[flavor],[kinds]
#
# version The chooseable versions are <none>, 6 and 7.
-# USES=magick -- depend on ${IMAGEMAGICK_DEFAULT} (default)
+# USES=magick -- depend on version from DEFAULT_VERSIONS
# USES=magick:6 -- depend on ImageMagick6
# USES=magick:7 -- depend on ImageMagick7
#
-# flavor The flavors are <none> and nox11
-# USES=magick -- depend on the default flavor (default)
+# flavor The flavors are <none>, x11 and nox11
+# USES=magick -- depend on flavor from DEFAULT_VERSIONS
+# USES=magick:x11 -- depend on the x11 flavor
# USES=magick:nox11 -- depend on the nox11 flavor
#
# kinds The dependency kinds are <none>, lib, build, run and test
-# USES=magick -- add a LIB_DEPENDS (default)
-# USES=magick:lib -- add a LIB_DEPENDS
-# USES=magick:build -- add a BUILD_DEPENDS
-# USES=magick:run -- add a RUN_DEPENDS
-# USES=magick:test -- add a TEST_DEPENDS
-# USES=build,run -- add a BUILD_- and RUN_DEPENDS
+# USES=magick -- add a LIB_DEPENDS (default)
+# USES=magick:lib -- add a LIB_DEPENDS
+# USES=magick:build -- add a BUILD_DEPENDS
+# USES=magick:run -- add a RUN_DEPENDS
+# USES=magick:test -- add a TEST_DEPENDS
+# USES=magick:build,run -- add a BUILD_- and RUN_DEPENDS
#
-# In short, on a default ports tree
+# In short, on a default ports tree without custom DEFAULT_VERSIONS
# USES=magick
# is equivalent to
-# USES=magick:7,lib
+# USES=magick:7,x11,lib
+#
+# Make sure to only add arguments strictly needed, as [version] and [flavor]
+# will override user configuration in DEFAULT_VERSIONS.
#
# MAINTAINER: tcberner@FreeBSD.org
#
@@ -46,24 +50,43 @@ IGNORE= Incorrect USES=magick:${magick_ARGS} - multiple versions defined
. endif
. endfor
# Fallback to the default version
-.if empty(_magick_version)
-_magick_version= ${IMAGEMAGICK_DEFAULT}
-.endif
+. if empty(_magick_version)
+_magick_version= ${IMAGEMAGICK_DEFAULT:C/-.*//}
+. endif
+. if !${_magick_versions:M${_magick_version}}
+IGNORE= Invalid version of ImageMagick: "${_magick_version}"
+. endif
#=== Flavor selection ===
-_magick_flavors= nox11
+_magick_flavors= x11 nox11
_magick_flavor= #
+_magick_portflavor= #
+_magick_pkgflavor= #
. for _flavor in ${_magick_flavors:O:u}
. if ${magick_ARGS:M${_flavor}}
. if empty(_magick_flavor)
-_magick_flavor= -${_flavor}
+_magick_flavor= ${_flavor}
. else
IGNORE= Incorrect USES=magick:${magick_ARGS} - multiple flavors defined
. endif
. endif
. endfor
+# Fallback to the default flavor
+. if empty(_magick_flavor) && ${IMAGEMAGICK_DEFAULT:M*-*}
+_magick_flavor= ${IMAGEMAGICK_DEFAULT:C/.*-//}
+. endif
+. if !empty(_magick_flavor)
+. if !${_magick_flavors:M${_magick_flavor}}
+IGNORE= Invalid flavor of ImageMagick: "${_magick_flavor}"
+. else
+_magick_portflavor= @${_magick_flavor}
+. if ${_magick_flavor:Mnox11}
+_magick_pkgflavor= -nox11
+. endif
+. endif
+. endif
-#=== Dependeny selection ===
+#=== Dependency selection ===
_magick_depends= lib build run test
_magick_depend= #
. for _depend in ${_magick_depends:O:u}
@@ -71,14 +94,23 @@ _magick_depend= #
_magick_depend+= ${_depend}
. endif
. endfor
-.if empty(_magick_depend)
+. if empty(_magick_depend)
_magick_depend= lib
-.endif
+. endif
+
+#=== Check for invalid arguments ===
+_magick_unknown_args:= ${magick_ARGS:N${_magick_version}:N${_magick_flavor}}
+. for _depend in ${_magick_depend}
+_magick_unknown_args:= ${_magick_unknown_args:N${_depend}}
+. endfor
+. if !empty(_magick_unknown_args)
+IGNORE= Invalid USES=magick - unsupported argument(s): ${_magick_unknown_args}
+. endif
#=== Dependency setup ===
-_MAGICK_PORT= graphics/ImageMagick${_magick_version}${_magick_flavor}
+_MAGICK_PORT= graphics/ImageMagick${_magick_version}${_magick_portflavor}
_MAGICK_LIB= libMagick++-${_magick_version}.so
-_MAGICK_PKG= ImageMagick${_magick_version}${_magick_flavor}
+_MAGICK_PKG= ImageMagick${_magick_version}${_magick_pkgflavor}
_MAGICK_BUILD_DEPENDS= ${_MAGICK_PKG}>=${_magick_version}:${_MAGICK_PORT}
_MAGICK_LIB_DEPENDS= ${_MAGICK_LIB}:${_MAGICK_PORT}