#5 Support Windows-style Visual Studio builds

Merged
necklace merged 2 commits from fanc999/msvc.build into necklace/master 3 years ago
2 changed files with 9 additions and 1 deletions
  1. 7 1
      meson.build
  2. 2 0
      src/io-jp2.c

+ 7 - 1
meson.build

@@ -4,7 +4,13 @@ gdk_pixbuf_moduledir = gdk_pixbuf.get_pkgconfig_variable('gdk_pixbuf_moduledir',
 gdk_pixbuf_query_loaders = gdk_pixbuf.get_pkgconfig_variable('gdk_pixbuf_query_loaders')
 gdk_pixbuf_query_loaders = find_program(get_option('gdk_pixbuf_query_loaders_path'), gdk_pixbuf_query_loaders, gdk_pixbuf_query_loaders+'-32', gdk_pixbuf_query_loaders+'-64')
 
-openjpeg = dependency('libopenjp2')
+cc = meson.get_compiler('c')
+
+openjpeg = dependency('libopenjp2', method: 'pkg-config', required: cc.get_argument_syntax() != 'msvc')
+
+if not openjpeg.found()
+  openjpeg = dependency('OpenJPEG', method: 'cmake')
+endif
 
 if get_option('buildtype') == 'debug'
     add_global_arguments('-DDEBUG=TRUE', language: 'c')

+ 2 - 0
src/io-jp2.c

@@ -381,6 +381,7 @@ static gboolean gdk_pixbuf__jp2_image_save
 /*
  * Module entry points - This is where it all starts
  */
+G_MODULE_EXPORT
 void fill_vtable(GdkPixbufModule *module)
 {
 	module->load             = gdk_pixbuf__jp2_image_load;
@@ -392,6 +393,7 @@ void fill_vtable(GdkPixbufModule *module)
 	//module->save_to_callback = gdk_pixbuf__jp2_image_save_to_callback;
 }
 
+G_MODULE_EXPORT
 void fill_info(GdkPixbufFormat *info)
 {
 	static GdkPixbufModulePattern signature[] =