mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-12 16:50:19 +00:00
build: Replace Autotools with Meson
Quick rundown of benefits: - Much faster: - Autotools (with autogen): 22 seconds - Meson: 7 seconds - Meson (with ccache): 2 seconds - Simpler: - ~1000 lines smaller - Single simple language - Potentially better Windows (Visual Studio) support What is not done: - Complete Windows support - OSX support (easy) Closes #2013 Closes #1937 Closes #1803
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
|
||||
include $(top_srcdir)/m4/clang-analyze.am
|
||||
|
||||
localedir = $(datadir)/locale
|
||||
|
||||
bin_PROGRAMS = hexchat
|
||||
|
||||
AM_CPPFLAGS = $(GUI_CFLAGS) -DLOCALEDIR=\"$(localedir)\"
|
||||
|
||||
hexchat_LDADD = $(top_builddir)/src/common/libhexchatcommon.a $(GUI_LIBS)
|
||||
|
||||
EXTRA_DIST = \
|
||||
ascii.h banlist.h chanlist.h chanview.h chanview-tabs.c \
|
||||
chanview-tree.c custom-list.h editlist.h fe-gtk.h fkeys.h gtkutil.h joind.h \
|
||||
maingui.h menu.h notifygui.h notifications palette.h pixmaps.h plugin-notification.h \
|
||||
plugin-tray.h plugingui.c plugingui.h rawlog.h servlistgui.h setup.h sexy-iso-codes.h \
|
||||
sexy-spell-entry.h textgui.h urlgrab.h userlistgui.h xtext.h
|
||||
|
||||
BUILT_SOURCES = resources.h resources.c
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
if DO_PLUGIN
|
||||
plugingui_c = plugingui.c
|
||||
endif
|
||||
|
||||
if HAVE_ISO_CODES
|
||||
iso_codes_c = sexy-iso-codes.c
|
||||
endif
|
||||
|
||||
if USE_LIBNOTIFY
|
||||
notify_c = notifications/notification-libnotify.c
|
||||
else
|
||||
if HAVE_GTK_MAC
|
||||
notify_c = notifications/notification-osx.m
|
||||
hexchat_LDFLAGS = -framework Foundation
|
||||
else
|
||||
notify_c = notifications/notification-dummy.c
|
||||
endif
|
||||
endif
|
||||
|
||||
nodist_hexchat_SOURCES = resources.h resources.c
|
||||
hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \
|
||||
dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \
|
||||
maingui.c notifygui.c $(notify_c) palette.c pixmaps.c plugin-tray.c $(plugingui_c) \
|
||||
plugin-notification.c rawlog.c servlistgui.c setup.c $(iso_codes_c) \
|
||||
sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c
|
||||
hexchat_CPPFLAGS = -I$(top_builddir)/src/common $(AM_CPPFLAGS)
|
||||
|
||||
resources_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir)/data --generate-dependencies $(top_srcdir)/data/hexchat.gresource.xml)
|
||||
|
||||
resources.h: $(top_srcdir)/data/hexchat.gresource.xml $(resources_files)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-header --manual-register $<
|
||||
|
||||
resources.c: $(top_srcdir)/data/hexchat.gresource.xml $(resources_files)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-source --manual-register $<
|
||||
|
||||
EXTRA_DIST += $(resources_files)
|
||||
|
||||
if DO_STATIC_ANALYSIS
|
||||
analyze_plists = $(hexchat_SOURCES:%.c=%.plist)
|
||||
all-local: $(analyze_plists)
|
||||
MOSTLYCLEANFILES = $(analyze_plists)
|
||||
endif
|
||||
79
src/fe-gtk/meson.build
Normal file
79
src/fe-gtk/meson.build
Normal file
@@ -0,0 +1,79 @@
|
||||
hexchat_gtk_sources = [
|
||||
'ascii.c',
|
||||
'banlist.c',
|
||||
'chanlist.c',
|
||||
'chanview.c',
|
||||
'custom-list.c',
|
||||
'dccgui.c',
|
||||
'editlist.c',
|
||||
'fe-gtk.c',
|
||||
'fkeys.c',
|
||||
'gtkutil.c',
|
||||
'ignoregui.c',
|
||||
'joind.c',
|
||||
'menu.c',
|
||||
'maingui.c',
|
||||
'notifygui.c',
|
||||
'palette.c',
|
||||
'pixmaps.c',
|
||||
'plugin-tray.c',
|
||||
'plugin-notification.c',
|
||||
'rawlog.c',
|
||||
'servlistgui.c',
|
||||
'setup.c',
|
||||
'sexy-spell-entry.c',
|
||||
'textgui.c',
|
||||
'urlgrab.c',
|
||||
'userlistgui.c',
|
||||
'xtext.c'
|
||||
]
|
||||
|
||||
hexchat_gtk_deps = [
|
||||
hexchat_common_dep,
|
||||
libgmodule_dep, # used by libsexy
|
||||
dependency('gtk+-2.0', version: '>= 2.24.0')
|
||||
]
|
||||
|
||||
hexchat_gtk_cflags = [
|
||||
'-fPIE'
|
||||
]
|
||||
|
||||
hexchat_gtk_ldflags = [
|
||||
'-pie'
|
||||
]
|
||||
|
||||
if get_option('with-libnotify')
|
||||
hexchat_gtk_sources += 'notifications/notification-libnotify.c'
|
||||
hexchat_gtk_deps += dependency('libnotify')
|
||||
elif false # TODO HAVE_GTK_MAC
|
||||
else
|
||||
hexchat_gtk_sources += 'notifications/notification-dummy.c'
|
||||
endif
|
||||
|
||||
iso_codes = dependency('iso-codes', required: false)
|
||||
if iso_codes.found()
|
||||
hexchat_gtk_sources += 'sexy-iso-codes.c'
|
||||
iso_codes_prefix = iso_codes.get_pkgconfig_variable('prefix')
|
||||
hexchat_gtk_cflags += '-DISO_CODES_PREFIX="@0@"'.format(iso_codes_prefix)
|
||||
hexchat_gtk_cflags += '-DISO_CODES_LOCALEDIR="@0@"'.format(
|
||||
join_paths(iso_codes_prefix, 'share/locale'))
|
||||
endif
|
||||
|
||||
if get_option('with-plugin')
|
||||
hexchat_gtk_sources += 'plugingui.c'
|
||||
endif
|
||||
|
||||
resources = gnome.compile_resources('resources',
|
||||
'../../data/hexchat.gresource.xml',
|
||||
source_dir: '../../data', # TODO: Fix upstream
|
||||
c_name: 'hexchat',
|
||||
extra_args: ['--manual-register']
|
||||
)
|
||||
|
||||
executable('hexchat',
|
||||
sources: resources + hexchat_gtk_sources,
|
||||
dependencies: hexchat_gtk_deps,
|
||||
c_args: hexchat_gtk_cflags,
|
||||
link_args: hexchat_gtk_ldflags,
|
||||
install: true
|
||||
)
|
||||
Reference in New Issue
Block a user