summary refs log tree commit diff stats
path: root/plugins/sysinfo
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2016-12-13 16:12:03 -0500
committerPatrick Griffis <tingping@tingping.se>2017-06-13 23:54:51 -0400
commit628100c19f5d82747170acdf2917cba8c119ccbf (patch)
tree351a7e9714a1a58390ba349808df5703cef25c3e /plugins/sysinfo
parent2edf50d4ddc61ce6f73bf02263c9bdd09632c66b (diff)
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
Diffstat (limited to 'plugins/sysinfo')
-rw-r--r--plugins/sysinfo/Makefile.am17
-rw-r--r--plugins/sysinfo/meson.build46
2 files changed, 46 insertions, 17 deletions
diff --git a/plugins/sysinfo/Makefile.am b/plugins/sysinfo/Makefile.am
deleted file mode 100644
index 60042018..00000000
--- a/plugins/sysinfo/Makefile.am
+++ /dev/null
@@ -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)
diff --git a/plugins/sysinfo/meson.build b/plugins/sysinfo/meson.build
new file mode 100644
index 00000000..2bee3e76
--- /dev/null
+++ b/plugins/sysinfo/meson.build
@@ -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: '',
+)
\ No newline at end of file