Tue, 15 Jan 2019 16:54:16 -0600
meson: Remove PURPLE_PLUGINS define from config.h
Now that references to the PURPLE_PLUGINS define have been removed,
we can safely remove it from config.h. This patch does so.
project('pidgin', 'c', meson_version : '>=0.37.0') # UPDATING VERSION NUMBERS FOR RELEASES # # purple_micro_version += 1 # # If any functions have been added to libpurple, Pidgin, or Finch: # purple_micro_version = 0 # purple_minor_version += 1 # purple_lt_current += 1 # # If backwards compatibility has been broken in libpurple, Pidgin, or Finch: # purple_micro_version = 0 # purple_minor_version = 0 # purple_major_version += 1; # purple_lt_current += 1 # # purple_version_suffix should be similar to one of the following: # For beta releases: 'beta2' # For code under development: 'devel' # For production releases: '' # purple_lt_current = 20 purple_major_version = 3 purple_minor_version = 0 purple_micro_version = 0 purple_version_suffix = 'devel' purple_version = '@0@.@1@.@2@'.format(purple_major_version, purple_minor_version, purple_micro_version) purple_display_version = '@0@@1@'.format(purple_version, purple_version_suffix) add_project_arguments('-DHAVE_CONFIG_H=1', language : 'c') conf = configuration_data() man_conf = configuration_data() version_conf = configuration_data() conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) conf.set_quoted('PACKAGE', meson.project_name()) conf.set_quoted('PACKAGE_NAME', meson.project_name()) conf.set_quoted('VERSION', purple_display_version) version_conf.set('PURPLE_MAJOR_VERSION', purple_major_version) version_conf.set('PURPLE_MINOR_VERSION', purple_minor_version) version_conf.set('PURPLE_MICRO_VERSION', purple_micro_version) version_conf.set('PURPLE_VERSION', purple_display_version) version_conf.set('PURPLE_API_VERSION', purple_lt_current - purple_minor_version) PURPLE_LIB_VERSION = '@0@.@1@.@2@'.format(purple_lt_current - purple_minor_version, purple_minor_version, purple_micro_version) package_revision = vcs_tag( input : 'package_revision.h.in', output : 'package_revision.h', fallback : meson.project_version()) # For man pages. man_conf.set('VERSION', purple_display_version) man_conf.set('prefix', get_option('prefix')) # Used for pkg-config files. pkgconfig = import('pkgconfig') sedpath = find_program('sed') # Storing build arguments if meson.version().version_compare('>=0.42.0') meson.add_postconf_script('mkmesonconf.py') conf.set('HAVE_MESON_CONFIG', true) endif # Checks for programs. compiler = meson.get_compiler('c') # Check for Sun compiler SUNCC = compiler.compiles('void main() {__SUNPRO_C;};') # Check for Win32 if host_machine.system() == 'windows' windows = import('windows') IS_WIN32 = true ws2_32 = compiler.find_library('ws2_32') dnsapi = compiler.find_library('dnsapi') if build_machine.system() != 'windows' conf.set('IS_WIN32_CROSS_COMPILED', true) endif conf.set('WIN32_LEAN_AND_MEAN', true) conf.set('LIBPIDGIN_DLL_NAMEW', 'L"libpidgin-@0@.dll"'.format(purple_lt_current)) else IS_WIN32 = false ws2_32 = [] dnsapi = [] endif # Checks for header files. # AC_HEADER_SYS_WAIT: conf.set('HAVE_SYS_WAIT_H', compiler.has_header('sys/wait.h')) foreach h : ['fcntl.h', 'unistd.h', 'stdint.h'] if compiler.has_header(h) conf.set('HAVE_' + h.to_upper().underscorify(), true) else error(h + ' is required.') endif endforeach # Checks for typedefs, structures, and compiler characteristics. time_t_size = compiler.sizeof('time_t', prefix : ''' #include <stdio.h> #include <time.h> ''') conf.set('SIZEOF_TIME_T', time_t_size) conf.set('WORDS_BIGENDIAN', host_machine.endian() != 'little') # Check for directories if IS_WIN32 foreach dir : ['bin', 'lib', 'data', 'sysconf', 'locale'] path = join_paths(get_option('prefix'), get_option(dir + 'dir')) conf.set_quoted('WIN32_FHS_@0@DIR'.format(dir.to_upper()), path) endforeach conf.set('PURPLE_LIBDIR', 'wpurple_lib_dir("purple-@0@")'.format(purple_major_version)) conf.set('PIDGIN_LIBDIR', 'wpurple_lib_dir("pidgin-@0@")'.format(purple_major_version)) conf.set('FINCH_LIBDIR', 'wpurple_lib_dir("finch-@0@")'.format(purple_major_version)) conf.set('PURPLE_DATADIR', 'wpurple_data_dir()') conf.set('PURPLE_SYSCONFDIR', 'wpurple_sysconf_dir()') conf.set('PURPLE_LOCALEDIR', 'wpurple_locale_dir()') else foreach dir : ['data', 'sysconf', 'locale'] path = join_paths(get_option('prefix'), get_option(dir + 'dir')) conf.set_quoted('PURPLE_@0@DIR'.format(dir.to_upper()), path) endforeach common_libdir = join_paths(get_option('prefix'), get_option('libdir')) conf.set_quoted('PURPLE_LIBDIR', join_paths(common_libdir, 'purple-@0@'.format(purple_major_version))) conf.set_quoted('PIDGIN_LIBDIR', join_paths(common_libdir, 'pidgin-@0@'.format(purple_major_version))) conf.set_quoted('FINCH_LIBDIR', join_paths(common_libdir, 'finch-@0@'.format(purple_major_version))) endif abslibdir = join_paths(get_option('prefix'), get_option('libdir')) PURPLE_PLUGINDIR = join_paths(abslibdir, 'purple-@0@'.format(purple_major_version)) conf.set_quoted('PURPLE_PLUGINDIR', PURPLE_PLUGINDIR) PIDGIN_PLUGINDIR = join_paths(abslibdir, 'pidgin-@0@'.format(purple_major_version)) conf.set_quoted('PIDGIN_PLUGINDIR', PIDGIN_PLUGINDIR) FINCH_PLUGINDIR = join_paths(abslibdir, 'finch-@0@'.format(purple_major_version)) conf.set_quoted('FINCH_PLUGINDIR', FINCH_PLUGINDIR) # Check for inet_aton if not IS_WIN32 if not compiler.has_function('inet_aton') if not compiler.has_function('inet_aton', args : '-lresolv') # FIXME: Someone needs to link with -lresolv if needed. error('inet_aton not found') endif endif endif if compiler.has_function('gethostent', args : '-lnsl') conf.set('HAVE_LIBNSL', true) endif if IS_WIN32 conf.set('HAVE_GETADDRINFO', true) conf.set('HAVE_INET_NTOP', true) else if not compiler.has_function('socket') if not compiler.has_function('socket', args : '-lsocket') error('socket not found') endif endif # If all goes well, by this point the previous two checks will have # pulled in -lsocket and -lnsl if we need them. if compiler.has_function('getaddrinfo') conf.set('HAVE_GETADDRINFO', true) else if compiler.has_function('getaddrinfo', args : '-lsocket -lnsl') conf.set('HAVE_GETADDRINFO', true) # FIXME: LIBS += declare_dependency(link_with : ['socket', 'nsl']) endif endif conf.set('HAVE_INET_NTOP', compiler.has_function('inet_ntop')) endif conf.set('HAVE_GETIFADDRS', compiler.has_function('getifaddrs')) # Check for socklen_t (in Unix98) if IS_WIN32 socket_header = 'ws2tcpip.h' else socket_header = 'sys/socket.h' endif if not compiler.has_header_symbol(socket_header, 'socklen_t') code = ''' #include <sys/types.h> #include <@0@> int accept(int, struct sockaddr *, size_t *); int main() {} '''.format(socket_header) if compiler.compiles(code, name : 'socklen_t is size_t') conf.set('socklen_t', 'size_t') else conf.set('socklen_t', 'int') endif endif # Some systems do not have sa_len field for struct sockaddr. conf.set('HAVE_STRUCT_SOCKADDR_SA_LEN', compiler.has_member('struct sockaddr', 'sa_len', prefix : '#include <@0@>'.format(socket_header))) # Check for v6-only sockets if IS_WIN32 header = 'ws2tcpip.h' else header = 'netinet/in.h' endif conf.set('HAVE_IPV6_V6ONLY', compiler.has_header_symbol(header, 'IPV6_V6ONLY')) # Windows and Haiku do not use libm for the math functions, they are part # of the C library math = compiler.find_library('m') # before gettexting, in case iconv matters IOKIT = [] if host_machine.system() == 'darwin' if compiler.has_header('CoreFoundation/CoreFoundation.h') if compiler.has_header('IOKit/IOKitLib.h') conf.set('HAVE_IOKIT', true) IOKIT = dependency('appleframeworks', modules : ['IOKit', 'CoreFoundation']) endif endif if run_command('test', '-d', '/sw').returncode() == 0 # FIXME: Not done... #CPPFLAGS="$CPPFLAGS -I/sw/include" #LDFLAGS="$LDFLAGS -L/sw/lib" endif endif # ####################################################################### # # Disable creation and installation of translation files # ####################################################################### INSTALL_I18N = get_option('nls') if INSTALL_I18N i18n = import('i18n') subdir('po') endif # ####################################################################### # # Check for GLib 2.40 (required) # ####################################################################### glib = dependency('glib-2.0', version : '>= 2.40.0') gio = dependency('gio-2.0') gobject = dependency('gobject-2.0') gthread = dependency('gthread-2.0') gnome = import('gnome') if get_option('extraversion') != '' DISPLAY_VERSION = '@0@-@1@'.format(meson.project_version(), get_option('extraversion')) else DISPLAY_VERSION = meson.project_version() endif conf.set_quoted('DISPLAY_VERSION', DISPLAY_VERSION) force_deps = not get_option('missing-dependencies') # ####################################################################### # # Check for GTK+ 2.18 and other things used by the GTK UI # ####################################################################### enable_gestures = get_option('gestures') # ####################################################################### # Check Pidgin dependencies # ####################################################################### if get_option('gtkui') gtk = dependency('gtk+-3.0', version : '>= 3.10.0') webkit = dependency('webkitgtk-3.0', version : '>= 1.3.7') talkatu = dependency('talkatu', version: '>=0.1.0') ####################################################################### # Check if we should compile with enchant support ####################################################################### # We need enchant for spell checking dictionary enumeration, # because webkit1 doesn't have this. enable_enchant = get_option('enchant') if enable_enchant enchant = dependency('enchant', required : force_deps) enable_enchant = enchant.found() conf.set('USE_ENCHANT', enable_enchant) else enchant = [] endif else # GTK enable_enchant = false endif # GTK ENABLE_GTK = get_option('gtkui') ####################################################################### # Check if we should compile with X support ####################################################################### with_x = get_option('x') and not IS_WIN32 if with_x x11 = dependency('x11') if x11.found() conf.set('HAVE_X11', true) else with_x = false if force_deps error(''' X11 development headers not found. Use -Dx=false if you do not need X11 support. ''') endif endif else x11 = [] endif if not get_option('gtkui') or not with_x enable_gestures = false endif ####################################################################### # Check for LibXML2 (required) ####################################################################### libxml = dependency('libxml-2.0', version : '>= 2.6.0') if libxml.version().version_compare('<2.6.18') message('Versions of libxml2 < 2.6.18 may contain bugs that could cause XMPP messages to be discarded.') endif ####################################################################### # Check for JSON-GLib (required) ####################################################################### json = dependency('json-glib-1.0', version : '>= 0.14.0') ####################################################################### # Check for GStreamer ####################################################################### enable_gst = get_option('gstreamer') if enable_gst gstreamer = dependency('gstreamer-1.0', required : force_deps) if gstreamer.found() conf.set('USE_GSTREAMER', true) else enable_gst = false endif else gstreamer = [] endif ####################################################################### # Check for GStreamer Video ####################################################################### enable_gstvideo = enable_gst and get_option('gstreamer-video') if enable_gstvideo gstreamer_video = dependency('gstreamer-video-1.0', required : false) if gstreamer_video.found() conf.set('USE_GSTVIDEO', true) else enable_gstvideo = false endif else gstreamer_video = [] endif ####################################################################### # Check for Farstream ####################################################################### if get_option('farstream') farstream = dependency('farstream-0.2', version : '>= 0.2.7', required : false) enable_farstream = farstream.found() else farstream = [] enable_farstream = false endif ####################################################################### # Check for Voice and Video support ####################################################################### if get_option('vv') if enable_gst and enable_gstvideo and enable_farstream conf.set('USE_VV', true) enable_vv = true else if force_deps error(''' Dependencies for voice/video were not met. Install the necessary gstreamer and farstream packages first. Or use -Dvv=false if you do not need voice/video support. ''') endif enable_vv = false endif else enable_vv = false endif ####################################################################### # Check for Raw data streams support in Farstream ####################################################################### if enable_vv gstreamer_app = dependency('gstreamer-app-1.0', required : false) if gstreamer_app.found() conf.set('USE_GSTAPP', true) conf.set('HAVE_MEDIA_APPLICATION', true) endif else gstreamer_app = [] endif ####################################################################### # Check for Meanwhile headers (for Sametime) ####################################################################### if get_option('meanwhile') meanwhile = dependency('meanwhile', version : ['>= 1.0.0', '< 2.0.0'], required : force_deps) enable_meanwhile = meanwhile.found() else enable_meanwhile = false meanwhile = [] endif ####################################################################### # Check for Native Avahi headers (for Bonjour) ####################################################################### enable_avahi = get_option('avahi') avahi = [] if enable_avahi and IS_WIN32 # Just keep enabled. elif enable_avahi # Attempt to autodetect Avahi avahi_client = dependency('avahi-client', required : false) avahi_glib = dependency('avahi-glib', required : false) if avahi_client.found() and avahi_glib.found() avahi = [avahi_client, avahi_glib] else enable_avahi = false if force_deps error(''' avahi development package not found. Use -Davahi=false if you do not need avahi (Bonjour) support. ''') endif endif endif ####################################################################### # Check for SILC client includes and libraries ####################################################################### have_silc = false if get_option('silc') silc = dependency('silcclient', version : '>= 1.1', required : false) if silc.found() have_silc = true # SILC Toolkit >= 1.0.1 has a new MIME API conf.set('HAVE_SILCMIME_H', true) else if force_deps error(''' SILC development package not found. Use -Dsilc=false if you do not need SILC support. ''') endif endif endif ####################################################################### # Check for Gadu-Gadu protocol library (libgadu) ####################################################################### enable_libgadu = get_option('libgadu') if enable_libgadu libgadu = dependency('libgadu', version : '>= 1.12.0', required : false) have_libgadu = libgadu.found() if have_libgadu if not compiler.has_function('gg_is_gpl_compliant', dependencies : libgadu) have_libgadu = false message(''' libgadu is not compatible with the GPL when compiled with OpenSSL support. To link against libgadu, please recompile it using: ./configure --with-openssl=no Then rerun this Meson build ''') endif endif if not have_libgadu and force_deps error(''' Libgadu development headers not found. Use -Dlibgadu=false if you do not need GG (GaduGadu) support. ''') endif else have_libgadu = false endif DEFAULT_PRPLS = ['bonjour', 'facebook', 'gg', 'irc', 'jabber', 'novell', 'oscar', 'sametime', 'silc', 'simple', 'zephyr'] ALL_PRPLS = DEFAULT_PRPLS + ['null'] dynamic_list = get_option('dynamic-prpls').split(',') if dynamic_list == ['all'] dynamic_list = DEFAULT_PRPLS endif DYNAMIC_PRPLS = [] foreach prpl : dynamic_list if prpl == '' # The list was empty; do nothing. elif prpl == 'sametime' and not enable_meanwhile # Do nothing. elif prpl == 'bonjour' and not enable_avahi # Do nothing. elif prpl == 'silc' and not have_silc # Do nothing. elif prpl == 'gg' and not have_libgadu # Do nothing. elif prpl == 'zephyr' and IS_WIN32 # Do nothing. else DYNAMIC_PRPLS += [prpl] endif endforeach DYNAMIC_BONJOUR = DYNAMIC_PRPLS.contains('bonjour') DYNAMIC_FACEBOOK = DYNAMIC_PRPLS.contains('facebook') DYNAMIC_GG = DYNAMIC_PRPLS.contains('gg') DYNAMIC_IRC = DYNAMIC_PRPLS.contains('irc') DYNAMIC_JABBER = DYNAMIC_PRPLS.contains('jabber') DYNAMIC_NOVELL = DYNAMIC_PRPLS.contains('novell') DYNAMIC_NULL = DYNAMIC_PRPLS.contains('null') DYNAMIC_OSCAR = DYNAMIC_PRPLS.contains('oscar') or DYNAMIC_PRPLS.contains('aim') or DYNAMIC_PRPLS.contains('icq') DYNAMIC_SAMETIME = DYNAMIC_PRPLS.contains('sametime') DYNAMIC_SILC = DYNAMIC_PRPLS.contains('silc') DYNAMIC_SIMPLE = DYNAMIC_PRPLS.contains('simple') DYNAMIC_ZEPHYR = DYNAMIC_PRPLS.contains('zephyr') conf.set('HAVE_SYS_UTSNAME_H', compiler.has_header('sys/utsname.h')) conf.set('HAVE_UNAME', compiler.has_function('uname')) add_project_arguments( '-DPURPLE_DISABLE_DEPRECATED', '-DPIDGIN_DISABLE_DEPRECATED', '-DFINCH_DISABLE_DEPRECATED', '-DGNT_DISABLE_DEPRECATED', language : 'c') if get_option('buildtype') != 'plain' and compiler.get_id() == 'gcc' # We enable -Wall later. # If it's set after the warning CFLAGS in the compiler invocation, it counteracts the -Wno... flags. # This leads to warnings we don't want. # CFLAGS=`echo $CFLAGS |$sedpath 's/-Wall//'` # ENABLE WARNINGS SUPPORTED BY THE VERSION OF GCC IN USE # # Future Possibilities # # Consider adding -Wbad-function-cast. # This leads to spurious warnings using GPOINTER_TO_INT(), et al. directly on a function call. # We'd need an intermediate variable. # foreach newflag : [ '-Waggregate-return', '-Wcast-align', '-Wdeclaration-after-statement', '-Wendif-labels', '-Werror-implicit-function-declaration', '-Wextra -Wno-unused-parameter', '-Wformat', '-Wformat-security', '-Werror=format-security', '-Winit-self', '-Wmissing-declarations', '-Wmissing-noreturn', '-Wmissing-prototypes', '-Wpointer-arith', '-Wfloat-equal', '-Wundef'] if compiler.has_argument(newflag) add_project_arguments(newflag, language : 'c') endif endforeach if get_option('fortify') # AC_MSG_CHECKING(for FORTIFY_SOURCE support) # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <features.h>]], [[ # #if !(__GNUC_PREREQ (4, 1) \ # || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \ # || (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \ # && __GNUC_MINOR__ == 4 \ # && (__GNUC_PATCHLEVEL__ > 2 \ # || (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8)))) # #error No FORTIFY_SOURCE support # #endif # return 0; # ]])], [ # AC_MSG_RESULT(yes) # DEBUG_CFLAGS='$DEBUG_CFLAGS -Wp,-D_FORTIFY_SOURCE=2' # ], [ # AC_MSG_RESULT(no) # ]) endif endif if get_option('buildtype') != 'plain' and SUNCC add_project_arguments('-features=extensions', language : 'c') endif pidginpath = find_program('pidgin', required : false) if get_option('glib-errors-trace') if compiler.get_id() == 'clang' error('--enable-glib-errors-trace doesn\'t work with clang') endif conf.set('ENABLE_GLIBTRACE', true) add_project_arguments('-rdynamic', language : 'c') endif ####################################################################### # Check for Unity and Messaging Menu # Remove when Ubuntu 16.04 is EOL ####################################################################### enable_unity = get_option('unity-integration') if enable_unity UNITY = [ dependency('unity', version : '>= 6.8'), dependency('messaging-menu', version : '>= 12.10') ] conf.set('USES_MM_CHAT_SECTION', 'X-MessagingMenu-UsesChatSection=true') else conf.set('USES_MM_CHAT_SECTION', '') endif ####################################################################### # Check for Secret Service headers ####################################################################### enable_secret_service = get_option('secret-service') and not IS_WIN32 if enable_secret_service secretservice = dependency('libsecret-1', required : force_deps) if secretservice.found() else enable_secret_service = false endif endif ####################################################################### # Check for KWallet headers ####################################################################### enable_kwallet = get_option('kwallet') and not IS_WIN32 enable_kwallet = false if enable_kwallet # Ensure C++ compiler works add_languages('cpp') cxx_compiler = meson.get_compiler('cpp') qt4 = dependency('qt4', modules : 'Core', required : force_deps) enable_kwallet = qt4.found() endif if enable_kwallet # AC_MSG_CHECKING([for metaobject compiler]) # MOC=`$PKG_CONFIG --variable=moc_location QtCore` # AC_SUBST(MOC) # AC_MSG_RESULT([$MOC]) # # KWALLET_CXXFLAGS='' # KWALLET_LIBS='' # if test -z '$with_kwallet_includes' || test -z '$with_kwallet_libs'; then # AC_CHECK_PROG(KDE4_CONFIG, kde4-config, kde4-config, no) # if test 'x$KDE4_CONFIG' = 'xno'; then # enable_kwallet = false # if test 'x$force_deps' = 'xyes'; then # AC_MSG_ERROR([ #kde4-config not found. $KDE4_CONFIG #Use -Dkwallet=false if you do not need KWallet support. #]) # fi # fi # fi endif if enable_kwallet # if test 'x$KDE4_CONFIG' != 'xno'; then # KWALLET_CXXFLAGS='$QT4_CFLAGS -I`$KDE4_CONFIG --path include`' # fi # CPPFLAGS='$CPPFLAGS $KWALLET_CXXFLAGS' # AC_CHECK_HEADER([kwallet.h], , [ # enable_kwallet = false # if test 'x$force_deps' = 'xyes'; then # AC_MSG_ERROR([ #KWallet development headers not found. #Use -Dkwallet=false if you do not need KWallet support. #]) # fi #]) endif if enable_kwallet # AC_MSG_CHECKING([for KWallet libraries]) # if test 'x$KDE4_CONFIG' != 'xno'; then # KWALLET_LIBS='-L`$KDE4_CONFIG --install lib`/kde4/devel -lkdeui' # else # KWALLET_LIBS='-lkdeui' # fi # KWALLET_LIBS='$KWALLET_LIBS' # LIBS='$LIBS $KWALLET_LIBS $QT4_LIBS' # AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <kwallet.h>], # [KWallet::Wallet::LocalWallet();])], [AC_MSG_RESULT([yes])], # [ # AC_MSG_RESULT(no) # enable_kwallet = false # if test 'x$force_deps' = 'xyes'; then # AC_MSG_ERROR([ #KWallet development libraries not found. #Use -Dkwallet=false if you do not need KWallet support. #]) # fi # ]) endif ####################################################################### # Check for GPlugin 0.0.17 ####################################################################### gplugin = dependency('gplugin', version : '>= 0.0.17') ####################################################################### # Check for GObject Introspection ####################################################################### enable_introspection = get_option('introspection') if enable_introspection if dependency('gobject-introspection-1.0', version : '>= 1.30.0', required : force_deps).found() conf.set('ENABLE_INTROSPECTION', true) else enable_introspection = false endif endif if get_option('plugins') PLUGINS = true else PLUGINS = false endif ####################################################################### # Check for Nettle (Crypto Library) ####################################################################### enable_nettle = get_option('nettle') if enable_nettle nettle = dependency('nettle', version : '>= 3.0', required : false) enable_nettle = nettle.found() conf.set('HAVE_NETTLE', enable_nettle) if not enable_nettle and force_deps error(''' Nettle development headers not found Use -Dnettle=false if you do not need it. ''') endif else nettle = [] endif ####################################################################### # Check for Cyrus-SASL (for xmpp/irc) ####################################################################### foreach func : ['snprintf', 'connect'] conf.set('HAVE_' + func.to_upper(), compiler.has_function(func)) endforeach enable_cyrus_sasl = get_option('cyrus-sasl') if enable_cyrus_sasl sasl = dependency('libsasl2', version : '>= 2.0', required : false) enable_cyrus_sasl = sasl.found() conf.set('HAVE_CYRUS_SASL', enable_cyrus_sasl) if not enable_cyrus_sasl and force_deps error(''' Cyrus SASL library not found Use -Dcyrus-sasl=false if you do not need it. ''') endif else enable_cyrus_sasl = false sasl = [] endif ####################################################################### # Check for Kerberos (for Zephyr) ####################################################################### conf.set('ZEPHYR_INT32', 'long') #AC_SUBST(KRB4_CFLAGS) #AC_SUBST(KRB4_LDFLAGS) #AC_SUBST(KRB4_LIBS) kerberos = get_option('krb4') if kerberos if kerberos != 'yes' # KRB4_CFLAGS='-I${kerberos}/include' # if test -d '$kerberos/include/kerberosIV' ; then # KRB4_CFLAGS='$KRB4_CFLAGS -I${kerberos}/include/kerberosIV' # fi # KRB4_LDFLAGS='-L${kerberos}/lib' elif run_command('test', '-d', '/usr/local/include/kerberosIV').returncode() == 0 # KRB4_CFLAGS='-I/usr/local/include/kerberosIV' elif run_command('test', '-d', '/usr/include/kerberosIV').returncode() == 0 # KRB4_CFLAGS='-I/usr/include/kerberosIV' endif conf.set('ZEPHYR_USES_KERBEROS', true) # AC_CHECK_LIB(krb4, krb_rd_req, # [KRB4_LIBS='-lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err'], # [AC_CHECK_LIB(krb, krb_rd_req, # [KRB4_LIBS='-lkrb -ldes'], # [AC_MSG_ERROR([Kerberos 4 libraries not found])], # -ldes)], # -ldes425 -lkrb5 -lk5crypto -lcom_err) # AC_CHECK_FUNCS(krb_set_key krb_rd_req krb_get_lrealm) # AC_CHECK_FUNCS(krb_get_err_text krb_log) krb4 = [] endif if not kerberos krb4 = [] endif ####################################################################### # Check for external libzephyr ####################################################################### zephyr = get_option('zephyr') if zephyr ext_zephyr = dependency('zephyr', required : force_deps) zephyr = ext_zephyr.found() else ext_zephyr = [] endif EXTERNAL_LIBZEPHYR = zephyr conf.set('LIBZEPHYR_EXT', EXTERNAL_LIBZEPHYR) #AC_MSG_CHECKING(for me pot o' gold) #AC_MSG_RESULT(no) foreach func : ['gethostid', 'timegm'] conf.set('HAVE_' + func.to_upper(), compiler.has_function(func)) endforeach foreach header : 'paths.h sgtty.h sys/cdefs.h sys/file.h sys/filio.h sys/ioctl.h sys/msgbuf.h sys/select.h sys/uio.h sys/utsname.h sys/wait.h termios.h'.split() conf.set('HAVE_' + header.to_upper().underscorify(), compiler.has_header(header)) endforeach # sys/sysctl.h on OpenBSD 4.2 requires sys/param.h # sys/sysctl.h on FreeBSD requires sys/types.h have_sys_param_h = compiler.has_header('sys/param.h') conf.set('HAVE_SYS_PARAM_H', have_sys_param_h) prefix = ''' #include <sys/types.h> ''' if have_sys_param_h prefix += ''' #include <sys/param.h> ''' endif conf.set('HAVE_SYS_SYSCTL_H', compiler.has_header('sys/sysctl.h', prefix : prefix)) conf.set('HAVE_SYS_SOCKET_H', compiler.has_header('sys/socket.h')) #AC_VAR_TIMEZONE_EXTERNALS ####################################################################### # Disable pixmap installation ####################################################################### INSTALL_PIXMAPS = get_option('pixmaps-install') # check for gtk-doc ENABLE_DOC = get_option('doc') if ENABLE_DOC if meson.version().version_compare('<0.41.2') if force_deps error('Meson 0.41.2 or newer is required to build documentation.') endif ENABLE_DOC = false endif endif enable_debug = get_option('console-logging') conf.set('DEBUG', enable_debug) # So that config.h may be found. toplevel_inc = include_directories('.') subdir('libpurple') subdir('share/sounds') subdir('finch') subdir('pidgin') subdir('doc') configure_file(output : 'config.h', configuration : conf) message('') message('pidgin ' + purple_display_version) message('') message('Build GTK+ UI................. : ' + get_option('gtkui').to_string()) message('Build console UI.............. : ' + enable_consoleui.to_string()) message('Build for X11................. : ' + with_x.to_string()) message('') message('Enable Gestures............... : ' + enable_gestures.to_string()) message('Protocols to build dynamically : @0@'.format(DYNAMIC_PRPLS)) message('') message('Build with GStreamer support.. : ' + enable_gst.to_string()) message('Build with voice and video.... : ' + enable_vv.to_string()) message('Build with GNU Libidn......... : ' + get_option('idn').to_string()) message('Build with Nettle support..... : ' + enable_nettle.to_string()) message('Build with Cyrus SASL support. : ' + enable_cyrus_sasl.to_string()) message('Use kerberos 4 with zephyr.... : ' + kerberos.to_string()) message('Use external libzephyr........ : ' + zephyr.to_string()) message('Install pixmaps............... : ' + INSTALL_PIXMAPS.to_string()) message('Install translations.......... : ' + INSTALL_I18N.to_string()) message('Has you....................... : yes') message('') message('Build with Enchant support.... : ' + enable_enchant.to_string()) message('Build Unity integration plugin.: ' + enable_unity.to_string()) message('') message('Build with KWallet............ : ' + enable_kwallet.to_string()) message('Build with Secret Service..... : ' + enable_secret_service.to_string()) message('') message('Build with plugin support..... : ' + PLUGINS.to_string()) message('Enable Introspection...........: ' + enable_introspection.to_string()) message('') message('Print debugging messages...... : ' + enable_debug.to_string()) message('Generate documentation........ : ' + ENABLE_DOC.to_string()) message('') bindir = join_paths(get_option('prefix'), get_option('bindir')) message('Pidgin will be installed in @0@.'.format(bindir)) if pidginpath.found() message('Warning: You have an old copy of Pidgin at @0@.'.format(pidginpath.path())) endif if not INSTALL_PIXMAPS message('') message('Warning: You have disabled the installation of pixmap data, but Pidgin') message('still requires installed pixmaps. Be sure you know what you are doing.') endif if not INSTALL_I18N message('') message('Warning: You have disabled the building and installation of translation') message('data. This will prevent building Pidgin desktop files.') message('Be sure you know what you are doing.') endif message('') message('configure complete, now type \'ninja\'') message('')