diff --git a/src/Magnum/SceneGraph/AbstractCamera.h b/src/Magnum/SceneGraph/AbstractCamera.h index c6e8449de..818361965 100644 --- a/src/Magnum/SceneGraph/AbstractCamera.h +++ b/src/Magnum/SceneGraph/AbstractCamera.h @@ -196,7 +196,7 @@ template using AbstractBasicCamera3D = AbstractCamera<3, T>; */ typedef AbstractBasicCamera3D AbstractCamera3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractCamera<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractCamera<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/AbstractFeature.h b/src/Magnum/SceneGraph/AbstractFeature.h index 2f705bf13..944c68f87 100644 --- a/src/Magnum/SceneGraph/AbstractFeature.h +++ b/src/Magnum/SceneGraph/AbstractFeature.h @@ -324,7 +324,7 @@ template using AbstractBasicFeature3D = AbstractFeature<3, T>; */ typedef AbstractBasicFeature3D AbstractFeature3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractFeature<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractFeature<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/AbstractObject.h b/src/Magnum/SceneGraph/AbstractObject.h index ea2de20c5..0f3d0478b 100644 --- a/src/Magnum/SceneGraph/AbstractObject.h +++ b/src/Magnum/SceneGraph/AbstractObject.h @@ -303,7 +303,7 @@ typedef AbstractBasicObject3D AbstractObject3D; typedef AbstractObject<3, Float> AbstractObject3D; #endif -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractObject<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractObject<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/AbstractTransformation.h b/src/Magnum/SceneGraph/AbstractTransformation.h index c9298baa6..9ae6af5a7 100644 --- a/src/Magnum/SceneGraph/AbstractTransformation.h +++ b/src/Magnum/SceneGraph/AbstractTransformation.h @@ -130,7 +130,7 @@ template using AbstractBasicTransformation3D = AbstractTransformation<3 */ typedef AbstractBasicTransformation3D AbstractTransformation3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractTransformation<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractTransformation<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/Animable.h b/src/Magnum/SceneGraph/Animable.h index 0573da9c2..b35b5e34c 100644 --- a/src/Magnum/SceneGraph/Animable.h +++ b/src/Magnum/SceneGraph/Animable.h @@ -368,7 +368,7 @@ template using BasicAnimable3D = Animable<3, T>; */ typedef BasicAnimable3D Animable3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Animable<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT Animable<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/AnimableGroup.h b/src/Magnum/SceneGraph/AnimableGroup.h index 212068cc4..cb2e0fc16 100644 --- a/src/Magnum/SceneGraph/AnimableGroup.h +++ b/src/Magnum/SceneGraph/AnimableGroup.h @@ -104,7 +104,7 @@ template using BasicAnimableGroup3D = AnimableGroup<3, T>; */ typedef BasicAnimableGroup3D AnimableGroup3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT AnimableGroup<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT AnimableGroup<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/Camera2D.h b/src/Magnum/SceneGraph/Camera2D.h index 1ed624b46..6a94151c1 100644 --- a/src/Magnum/SceneGraph/Camera2D.h +++ b/src/Magnum/SceneGraph/Camera2D.h @@ -102,7 +102,7 @@ template class BasicCamera2D: public AbstractBasicCamera2D { */ typedef BasicCamera2D Camera2D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT BasicCamera2D; #endif diff --git a/src/Magnum/SceneGraph/Camera3D.h b/src/Magnum/SceneGraph/Camera3D.h index 67e517a89..45aeca337 100644 --- a/src/Magnum/SceneGraph/Camera3D.h +++ b/src/Magnum/SceneGraph/Camera3D.h @@ -138,7 +138,7 @@ template class BasicCamera3D: public AbstractBasicCamera3D { */ typedef BasicCamera3D Camera3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT BasicCamera3D; #endif diff --git a/src/Magnum/SceneGraph/Drawable.h b/src/Magnum/SceneGraph/Drawable.h index e37ac3792..69c837714 100644 --- a/src/Magnum/SceneGraph/Drawable.h +++ b/src/Magnum/SceneGraph/Drawable.h @@ -241,7 +241,7 @@ template using BasicDrawableGroup3D = DrawableGroup<3, T>; */ typedef BasicDrawableGroup3D DrawableGroup3D; -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Drawable<2, Float>; extern template class MAGNUM_SCENEGRAPH_EXPORT Drawable<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/DualComplexTransformation.h b/src/Magnum/SceneGraph/DualComplexTransformation.h index 4167ab0cd..9d9659374 100644 --- a/src/Magnum/SceneGraph/DualComplexTransformation.h +++ b/src/Magnum/SceneGraph/DualComplexTransformation.h @@ -185,7 +185,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/DualQuaternionTransformation.h b/src/Magnum/SceneGraph/DualQuaternionTransformation.h index 69d75261b..376e05978 100644 --- a/src/Magnum/SceneGraph/DualQuaternionTransformation.h +++ b/src/Magnum/SceneGraph/DualQuaternionTransformation.h @@ -202,7 +202,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/FeatureGroup.h b/src/Magnum/SceneGraph/FeatureGroup.h index 1a0e190ac..a18530742 100644 --- a/src/Magnum/SceneGraph/FeatureGroup.h +++ b/src/Magnum/SceneGraph/FeatureGroup.h @@ -173,7 +173,7 @@ template FeatureGroup; extern template class MAGNUM_SCENEGRAPH_EXPORT AbstractFeatureGroup<3, Float>; #endif diff --git a/src/Magnum/SceneGraph/MatrixTransformation2D.h b/src/Magnum/SceneGraph/MatrixTransformation2D.h index 8aa30e7ad..50291e3f6 100644 --- a/src/Magnum/SceneGraph/MatrixTransformation2D.h +++ b/src/Magnum/SceneGraph/MatrixTransformation2D.h @@ -170,7 +170,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/MatrixTransformation3D.h b/src/Magnum/SceneGraph/MatrixTransformation3D.h index b5b67c84f..fee965547 100644 --- a/src/Magnum/SceneGraph/MatrixTransformation3D.h +++ b/src/Magnum/SceneGraph/MatrixTransformation3D.h @@ -217,7 +217,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/RigidMatrixTransformation2D.h b/src/Magnum/SceneGraph/RigidMatrixTransformation2D.h index 1fb94148e..c275dea30 100644 --- a/src/Magnum/SceneGraph/RigidMatrixTransformation2D.h +++ b/src/Magnum/SceneGraph/RigidMatrixTransformation2D.h @@ -208,7 +208,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/RigidMatrixTransformation3D.h b/src/Magnum/SceneGraph/RigidMatrixTransformation3D.h index 1fb75fc20..1ce512647 100644 --- a/src/Magnum/SceneGraph/RigidMatrixTransformation3D.h +++ b/src/Magnum/SceneGraph/RigidMatrixTransformation3D.h @@ -261,7 +261,7 @@ template struct Transformation> { } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/TranslationTransformation.h b/src/Magnum/SceneGraph/TranslationTransformation.h index 6e09ccaac..097252cb2 100644 --- a/src/Magnum/SceneGraph/TranslationTransformation.h +++ b/src/Magnum/SceneGraph/TranslationTransformation.h @@ -192,7 +192,7 @@ template struct Transfor } -#ifdef CORRADE_TARGET_WINDOWS +#if defined(CORRADE_TARGET_WINDOWS) && !defined(__MINGW32__) extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; extern template class MAGNUM_SCENEGRAPH_EXPORT Object>; #endif diff --git a/src/Magnum/SceneGraph/instantiation.cpp b/src/Magnum/SceneGraph/instantiation.cpp index a5ef30c63..c8f40fb3f 100644 --- a/src/Magnum/SceneGraph/instantiation.cpp +++ b/src/Magnum/SceneGraph/instantiation.cpp @@ -40,8 +40,9 @@ namespace Magnum { namespace SceneGraph { -/* On Windows the instantiations are already marked with extern template */ -#ifndef CORRADE_TARGET_WINDOWS +/* On non-MinGW Windows the instantiations are already marked with extern + template */ +#if !defined(CORRADE_TARGET_WINDOWS) || defined(__MINGW32__) #define MAGNUM_SCENEGRAPH_EXPORT_HPP MAGNUM_SCENEGRAPH_EXPORT #else #define MAGNUM_SCENEGRAPH_EXPORT_HPP