mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-16 10:40: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,35 +0,0 @@
|
||||
noinst_LIBRARIES = libhexchatdbus.a
|
||||
libhexchatdbus_a_SOURCES = \
|
||||
dbus-plugin.c \
|
||||
dbus-plugin.h \
|
||||
dbus-client.c \
|
||||
dbus-client.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
remote-object.xml \
|
||||
example.py \
|
||||
org.hexchat.service.service.in
|
||||
|
||||
BUILT_SOURCES = \
|
||||
remote-object-glue.h
|
||||
|
||||
# Dbus service file
|
||||
servicedir = $(DBUS_SERVICES_DIR)
|
||||
service_in_files = org.hexchat.service.service.in
|
||||
service_DATA = $(service_in_files:.service.in=.service)
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES) $(service_DATA)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src/common $(COMMON_CFLAGS) $(DBUS_CFLAGS)
|
||||
|
||||
noinst_PROGRAMS = example
|
||||
example_SOURCES = example.c
|
||||
example_LDADD = $(DBUS_LIBS) $(GLIB_LIBS)
|
||||
|
||||
remote-object-glue.h: remote-object.xml
|
||||
$(AM_V_GEN) $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=remote_object --mode=glib-server --output=$@ $<
|
||||
|
||||
# Rule to make the service file with bindir expanded
|
||||
$(service_DATA): $(service_in_files) Makefile
|
||||
@sed -e "s|\@bindir\@|$(bindir)|" $< > $@
|
||||
|
||||
44
src/common/dbus/meson.build
Normal file
44
src/common/dbus/meson.build
Normal file
@@ -0,0 +1,44 @@
|
||||
dbus_deps = [
|
||||
dependency('dbus-glib-1')
|
||||
]
|
||||
|
||||
dbus_sources = [
|
||||
'dbus-plugin.c',
|
||||
'dbus-client.c'
|
||||
]
|
||||
|
||||
dbus_includes = [
|
||||
include_directories('..'),
|
||||
config_h_include
|
||||
]
|
||||
|
||||
dbus_service_dir = join_paths(get_option('datadir'), 'dbus-1/services')
|
||||
|
||||
dbus_conf = configuration_data()
|
||||
dbus_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
|
||||
configure_file(
|
||||
input: 'org.hexchat.service.service.in',
|
||||
output: 'org.hexchat.service.service',
|
||||
configuration: dbus_conf,
|
||||
install: true,
|
||||
install_dir: dbus_service_dir
|
||||
)
|
||||
|
||||
dbus_binding_tool = find_program('dbus-binding-tool')
|
||||
dbus_remote_object = custom_target('remote-object-glue',
|
||||
input: 'remote-object.xml',
|
||||
output: 'remote-object-glue.h',
|
||||
command: [dbus_binding_tool, '--prefix=remote_object', '--mode=glib-server',
|
||||
'--output=@OUTPUT@', '@INPUT@']
|
||||
)
|
||||
|
||||
hexchat_dbus = static_library('hexchatdbus',
|
||||
sources: [dbus_remote_object, marshal] + dbus_sources,
|
||||
dependencies: common_deps + dbus_deps,
|
||||
include_directories: dbus_includes,
|
||||
pic: true
|
||||
)
|
||||
|
||||
hexchat_dbus_dep = declare_dependency(
|
||||
link_with: hexchat_dbus
|
||||
)
|
||||
Reference in New Issue
Block a user