diff --git a/configure.ac b/configure.ac index cd0fc630e..8e6ed95f7 100644 --- a/configure.ac +++ b/configure.ac @@ -1892,6 +1892,14 @@ LDFLAGS=$restore_ldflags AM_CONDITIONAL([IMAGEMAGICK], [test "x$have_imagemagick" = "xyes"]) +dnl IRCD_ENABLE_MAGICK is always defined for use in a constexpr if +AM_COND_IF([IMAGEMAGICK], +[ + IRCD_DEFINE(USE_MAGICK, [1], [Magick support is available and enabled]) +], [ + IRCD_DEFINE(USE_MAGICK, [0], [Magick support is unavailable or disabled]) +]) + dnl dnl dnl boost support diff --git a/include/ircd/magick.h b/include/ircd/magick.h index e1fd0b3ff..61ee8c296 100644 --- a/include/ircd/magick.h +++ b/include/ircd/magick.h @@ -110,3 +110,17 @@ struct ircd::magick::job string_view description; // only valid for current job duration std::exception_ptr eptr; // apropos exception reference }; + +// inline stubs when magick disabled/unavailable. +#if !IRCD_USE_MAGICK + +inline +ircd::magick::init::init() +{} + +inline +ircd::magick::init::~init() +noexcept +{} + +#endif IRCD_USE_MAGICK diff --git a/modules/media/thumbnail.cc b/modules/media/thumbnail.cc index 7a49e336b..1b636d0cc 100644 --- a/modules/media/thumbnail.cc +++ b/modules/media/thumbnail.cc @@ -292,8 +292,11 @@ get__thumbnail_local(client &client, const bool fallback // Reasons to just send the original image { + // Not available in build + !IRCD_USE_MAGICK + // Disabled by configuration - !enable + || !enable // Access denied for this operation || !permitted