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:
Patrick Griffis
2016-12-13 16:12:03 -05:00
parent 2edf50d4dd
commit 628100c19f
71 changed files with 979 additions and 2097 deletions

View File

@@ -1,17 +0,0 @@
libdir = $(hexchatlibdir)
sources = sysinfo.c format.c shared/df.c
if PLATFORM_OSX
sources += osx/backend.m
else
sources += unix/backend.c unix/match.c unix/parse.c unix/pci.c
endif
EXTRA_DIST = osx unix win32 shared format.h sysinfo.h sysinfo-backend.h
lib_LTLIBRARIES = sysinfo.la
sysinfo_la_SOURCES = $(sources)
sysinfo_la_LDFLAGS = $(PLUGIN_LDFLAGS) -module
sysinfo_la_LIBADD = $(LIBPCI_LIBS) $(GLIB_LIBS)
AM_CPPFLAGS = -I$(top_srcdir)/src/common -I$(srcdir)/shared $(LIBPCI_CFLAGS) $(GLIB_CFLAGS)

View File

@@ -0,0 +1,46 @@
sysinfo_sources = [
'format.c',
'sysinfo.c',
]
sysinfo_deps = [
libgio_dep,
hexchat_plugin_dep
]
sysinfo_includes = []
system = host_machine.system()
if system == 'linux' or system == 'darwin'
sysinfo_includes += 'shared'
sysinfo_sources += [
'shared/df.c'
]
if system == 'linux'
sysinfo_deps += dependency('libpci')
sysinfo_includes += 'unix'
sysinfo_sources += [
'unix/backend.c',
'unix/match.c',
'unix/parse.c',
'unix/pci.c',
]
elif system == 'darwin'
add_languages('objc')
sysinfo_sources += 'osx/backend.m'
endif
elif system == 'windows'
sysinfo_sources += 'win32/backend.c'
else
error('sysinfo: Unknown system?')
endif
shared_module('sysinfo', sysinfo_sources,
dependencies: sysinfo_deps,
include_directories: include_directories(sysinfo_includes),
install: true,
install_dir: plugindir,
name_prefix: '',
)