project('fastiv', 'c', default_options : ['c_std=gnu99', 'warning_level=2'], version : '0.1.0') add_project_arguments( meson.get_compiler('c').get_supported_arguments('-Wno-cast-function-type'), language : 'c', ) # TODO(p): Use libraw_r later, when we start parallelizing/preloading. libraw = dependency('libraw', required : get_option('libraw')) librsvg = dependency('librsvg-2.0', required : get_option('librsvg')) xcursor = dependency('xcursor', required : get_option('xcursor')) libtiff = dependency('libtiff-4', required : get_option('libtiff')) gdkpixbuf = dependency('gdk-pixbuf-2.0', required : get_option('gdk-pixbuf')) dependencies = [ dependency('gtk+-3.0'), dependency('libturbojpeg'), dependency('spng', version : '>=0.7.0', default_options: 'default_library=static'), dependency('pixman-1'), libraw, librsvg, xcursor, libtiff, gdkpixbuf, meson.get_compiler('c').find_library('m', required : false), ] conf = configuration_data() conf.set_quoted('PROJECT_NAME', meson.project_name()) conf.set_quoted('PROJECT_VERSION', meson.project_version()) conf.set('HAVE_LIBRAW', libraw.found()) conf.set('HAVE_LIBRSVG', librsvg.found()) conf.set('HAVE_XCURSOR', xcursor.found()) conf.set('HAVE_LIBTIFF', libtiff.found()) conf.set('HAVE_GDKPIXBUF', gdkpixbuf.found()) configure_file( output : 'config.h', configuration : conf, ) gnome = import('gnome') resources = gnome.compile_resources('resources', 'resources/resources.gresource.xml', source_dir : 'resources', c_name : 'resources', ) exe = executable('fastiv', 'fastiv.c', 'fastiv-view.c', 'fastiv-io.c', 'fastiv-browser.c', 'fastiv-sidebar.c', 'xdg.c', resources, install : true, dependencies : [dependencies]) if gdkpixbuf.found() executable('io-benchmark', 'fastiv-io-benchmark.c', 'fastiv-io.c', 'xdg.c', build_by_default : false, dependencies : [dependencies, gdkpixbuf]) endif install_data('fastiv.desktop', install_dir : get_option('datadir') + '/applications') install_data('fastiv-browse.desktop', install_dir : get_option('datadir') + '/applications') install_data('fastiv.svg', install_dir : get_option('datadir') + '/icons/hicolor/scalable/apps') # TODO(p): Replace this with custom_target(). if not meson.is_cross_build() meson.add_install_script( 'sh', '-c', '''sed -i "/^MimeType=/{c \\ MimeType=$($1 --list-supported-media-types | tr "\\012" ";") }" "$MESON_INSTALL_DESTDIR_PREFIX/$2"''', 'sh', exe.full_path(), get_option('datadir') + '/applications/fastiv.desktop') endif