Browse Source

Don't declare extern PluginManager::Manager template anywhere.

Originally I copied this over from SceneGraph template classes, where it
was used to prevent the compiler from needlessly instantiating a
template that was already available elsewhere. But this is a different
case, the extern template is not preventing any instatiation of
anything, no code is inline, so it apparently should not have been there
at all, instead of being disabled for ḾinGW GCC and clang-cl, and then
subsequently discovering it also breaks MinGW Clang.

Since I'm not testing with MinGW Clang on the CI (only with MinGW GCC),
this went unnoticed for a while -- sorry.
pull/570/head
Vladimír Vondruš 4 years ago
parent
commit
ca722eac6e
  1. 8
      src/Magnum/Audio/AbstractImporter.h
  2. 8
      src/Magnum/ShaderTools/AbstractConverter.h
  3. 8
      src/Magnum/Text/AbstractFont.h
  4. 8
      src/Magnum/Text/AbstractFontConverter.h
  5. 8
      src/Magnum/Trade/AbstractImageConverter.h
  6. 8
      src/Magnum/Trade/AbstractImporter.h
  7. 8
      src/Magnum/Trade/AbstractSceneConverter.h

8
src/Magnum/Audio/AbstractImporter.h

@ -238,12 +238,4 @@ class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractManagi
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_AUDIO_EXPORT Manager<Magnum::Audio::AbstractImporter>;
}}
#endif
#endif

8
src/Magnum/ShaderTools/AbstractConverter.h

@ -1203,12 +1203,4 @@ template<class Callback, class T> void AbstractConverter::setInputFileCallback(C
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_SHADERTOOLS_EXPORT Manager<Magnum::ShaderTools::AbstractConverter>;
}}
#endif
#endif

8
src/Magnum/Text/AbstractFont.h

@ -651,12 +651,4 @@ template<class Callback, class T> void AbstractFont::setFileCallback(Callback ca
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_TEXT_EXPORT Manager<Magnum::Text::AbstractFont>;
}}
#endif
#endif

8
src/Magnum/Text/AbstractFontConverter.h

@ -420,12 +420,4 @@ class MAGNUM_TEXT_EXPORT AbstractFontConverter: public PluginManager::AbstractPl
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_TEXT_EXPORT Manager<Magnum::Text::AbstractFontConverter>;
}}
#endif
#endif

8
src/Magnum/Trade/AbstractImageConverter.h

@ -1906,12 +1906,4 @@ class MAGNUM_TRADE_EXPORT AbstractImageConverter: public PluginManager::Abstract
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_TRADE_EXPORT Manager<Magnum::Trade::AbstractImageConverter>;
}}
#endif
#endif

8
src/Magnum/Trade/AbstractImporter.h

@ -2566,12 +2566,4 @@ template<class Callback, class T> void AbstractImporter::setFileCallback(Callbac
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_TRADE_EXPORT Manager<Magnum::Trade::AbstractImporter>;
}}
#endif
#endif

8
src/Magnum/Trade/AbstractSceneConverter.h

@ -482,12 +482,4 @@ class MAGNUM_TRADE_EXPORT AbstractSceneConverter: public PluginManager::Abstract
}}
/* clang-cl complains about "explicit instantiation of undefined template"
here, so don't define anything */
#if defined(CORRADE_TARGET_WINDOWS) && !(defined(CORRADE_TARGET_MINGW) && !defined(CORRADE_TARGET_CLANG)) && !defined(CORRADE_TARGET_CLANG_CL)
namespace Corrade { namespace PluginManager {
extern template class MAGNUM_TRADE_EXPORT Manager<Magnum::Trade::AbstractSceneConverter>;
}}
#endif
#endif

Loading…
Cancel
Save