]> git.tdb.fi Git - libs/gui.git/commitdiff
Dirty hack to pull the image loaders in when linking statically
authorMikko Rasa <tdb@tdb.fi>
Fri, 19 Dec 2014 03:26:04 +0000 (05:26 +0200)
committerMikko Rasa <tdb@tdb.fi>
Fri, 19 Dec 2014 03:26:04 +0000 (05:26 +0200)
I can't find any way to add metadata to the symbols to forcibly pull them
in, so this will have to do.

source/graphics/imageloader.cpp
source/graphics/imageloader.h

index 06b70d16862e890997fd274b91cb0da7ff3e273a..fbba25cd75ae59ce6e194134caea9141e79a2177 100644 (file)
@@ -2,6 +2,18 @@
 #include <msp/io/file.h>
 #include <msp/strings/format.h>
 #include "imageloader.h"
+#ifdef WITH_LIBPNG
+#include "png/pngloader.h"
+#endif
+#ifdef WITH_LIBJPEG
+#include "jpeg/jpegloader.h"
+#endif
+#ifdef WITH_DEVIL
+#include "devil/devilloader.h"
+#endif
+#ifdef WITH_QUARTZ
+#include "quartz/quartzloader.h"
+#endif
 
 using namespace std;
 
@@ -36,6 +48,19 @@ ImageLoader *ImageLoader::open_file(const string &fn)
 
 ImageLoader *ImageLoader::open_io(IO::Seekable &io)
 {
+#ifdef WITH_LIBPNG
+       (void)RegisteredImageLoader<PngLoader>::reg;
+#endif
+#ifdef WITH_LIBJPEG
+       (void)RegisteredImageLoader<JpegLoader>::reg;
+#endif
+#ifdef WITH_DEVIL
+       (void)RegisteredImageLoader<DevilLoader>::reg;
+#endif
+#ifdef WITH_QUARTZ
+       (void)RegisteredImageLoader<QuartzLoader>::reg;
+#endif
+
        list<RegisterBase *> &loaders = get_registered_loaders();
        if(registered_loaders_changed)
        {
index 85e6b5200479a3f2814403b4b2a532fd06d1723d..031ecb411667da36a505da084fad0ff2d66ba341 100644 (file)
@@ -58,6 +58,8 @@ public:
 template<typename T>
 class RegisteredImageLoader: public ImageLoader
 {
+       friend class ImageLoader;
+
 private:
        class Register: public RegisterBase
        {