if get_option('consoleui') libgnt_dep = dependency('gnt3', version : '>= 3.0.0', required : false) libgnt_proj = subproject('libgnt', 'doc=' + get_option('doc').to_string(), 'introspection=' + enable_introspection.to_string(), libgnt_dep = libgnt_proj.get_variable('libgnt_dep') libgnt_gir = libgnt_proj.get_variable('libgnt_gir') ####################################################################### # Check for ncurses and other things used by it # FIXME: This should be temporary until libgnt wraps the functionality. ####################################################################### ncurses_header = 'ncurses.h' # Some distros put the headers in ncursesw/, some don't. These are ordered to # pick the last available as most-specific version. ncursesw_header_paths = ['', 'ncursesw/'] ncurses = dependency('ncursesw', required : false) foreach location : ncursesw_header_paths f = location + 'ncurses.h' if compiler.has_header_symbol(f, 'get_wch', prefix : '#define _XOPEN_SOURCE_EXTENDED') ncurses_available = false ncurses_libs = compiler.find_library('ncursesw', required : false) foreach location : ncursesw_header_paths f = location + 'ncurses.h' if compiler.has_header_symbol(f, 'get_wch', prefix : '#define _XOPEN_SOURCE_EXTENDED') ncurses = declare_dependency( include_directories : ncurses_inc, dependencies : ncurses_libs # ncursesw was not found. Look for plain old ncurses ncurses = dependency('ncurses', required : false) ncurses_libs = compiler.find_library('ncurses', required : false) ncurses_available = ncurses_libs.found() ncurses = declare_dependency(dependencies : ncurses_libs) if not ncurses_available and host_machine.system() == 'windows' ncurses_header = 'curses.h' ncurses_libs = compiler.find_library('pdcurses', required : false) ncurses_available = compiler.has_header(ncurses_header) and ncurses_libs.found() ncurses = declare_dependency(dependencies : ncurses_libs) error('ncurses could not be found!') if libgnt_dep.found() and ncurses_available ncurses_header = '-DNCURSES_HEADER="@0@"'.format(ncurses_header) Finch will not be built. You need to install libgnt (or its requirements) and its development headers. winmm = compiler.find_library('winmm') finch_winres = configure_file( input : 'finch_winres.rc.in', output : 'finch_winres.rc', configuration : version_conf) finch_SOURCES += windows.compile_resources(finch_winres) libfinch_winres = configure_file( input : 'libfinch_winres.rc.in', output : 'libfinch_winres.rc', configuration : version_conf) libfinch_SOURCES += windows.compile_resources(libfinch_winres) install_headers(libfinch_headers, subdir : 'finch-3') libfinch_inc = include_directories('.') libfinch = shared_library('finch3', c_args : ['-DSTANDALONE', '-DGNTSEAL_ENABLE', ncurses_header], include_directories : [toplevel_inc], version : PURPLE_LIB_VERSION, dependencies : [libpurple_dep, libgnt_dep, ncurses, glib, winmm], libfinch_dep = declare_dependency( include_directories : [toplevel_inc, libfinch_inc], dependencies : [libpurple_dep, libgnt_dep, glib]) finch = executable('finch3', c_args : ['-DSTANDALONE', '-DGNTSEAL_ENABLE'], dependencies : [libpurple_dep, libgnt_dep, libfinch_dep], description : 'Finch is an instant messenger application that uses libpurple for protocol support and ncurses (libgnt) for the UI.', version : meson.project_version(), requires : ['gnt', 'purple-3'], variables : ['plugindir=${libdir}/finch-@0@'.format(purple_major_version)]) introspection_sources = libfinch_headers gnome.generate_gir(libfinch, sources : introspection_sources, includes : [libgnt_gir[0], libpurple_gir[0], gplugin_gir], identifier_prefix : 'Finch', export_packages : 'finch', nsversion : '@0@.@1@'.format(purple_major_version, gplugin_include_directories, extra_args : ['--quiet'])