summary refs log tree commit diff stats
path: root/data
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 /data
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 'data')
-rw-r--r--data/Makefile.am16
-rw-r--r--data/icons/Makefile.am15
-rw-r--r--data/icons/meson.build9
-rw-r--r--data/man/Makefile.am3
-rw-r--r--data/man/meson.build10
-rw-r--r--data/meson.build11
-rw-r--r--data/misc/Makefile.am50
-rw-r--r--data/misc/hexchat.appdata.xml.in6
-rw-r--r--data/misc/hexchat.desktop.in.in10
-rw-r--r--data/misc/htm.desktop.in2
-rw-r--r--data/misc/meson.build48
-rw-r--r--data/pkgconfig/Makefile.am4
-rw-r--r--data/pkgconfig/meson.build14
13 files changed, 101 insertions, 97 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
deleted file mode 100644
index b5077d24..00000000
--- a/data/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-SUBDIRS =
-
-if DO_PLUGIN
-SUBDIRS += pkgconfig
-endif
-
-if DO_GTK
-SUBDIRS += icons misc man
-else
-if WITH_TM
-SUBDIRS += misc
-endif
-endif
-
-EXTRA_DIST = \
-	hexchat.gresource.xml
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
deleted file mode 100644
index 05eb59d5..00000000
--- a/data/icons/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-icon_DATA = hexchat.png
-icondir = $(datadir)/icons/hicolor/48x48/apps
-
-hicolor_DATA = hexchat.svg
-hicolordir = $(datadir)/icons/hicolor/scalable/apps
-
-UPDATE_ICON_CACHE = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor || :
-
-install-data-hook:
-	$(UPDATE_ICON_CACHE);
-
-uninstall-hook:
-	$(UPDATE_ICON_CACHE);
-
-EXTRA_DIST = $(icon_DATA) $(hicolor_DATA)
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 00000000..d7926e83
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,9 @@
+icondir = join_paths(get_option('datadir'), 'icons/hicolor')
+install_data(
+  'hexchat.png',
+  install_dir: join_paths(icondir, '48x48/apps')
+)
+install_data(
+  'hexchat.svg',
+  install_dir: join_paths(icondir, 'scalable/apps')
+)
diff --git a/data/man/Makefile.am b/data/man/Makefile.am
deleted file mode 100644
index a967701c..00000000
--- a/data/man/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-man_MANS = hexchat.1
-
-EXTRA_DIST = hexchat.1.in
diff --git a/data/man/meson.build b/data/man/meson.build
new file mode 100644
index 00000000..8f07f558
--- /dev/null
+++ b/data/man/meson.build
@@ -0,0 +1,10 @@
+man_conf = configuration_data()
+man_conf.set('VERSION', meson.project_version())
+
+configure_file(
+  input: 'hexchat.1.in',
+  output: 'hexchat.1',
+  configuration: man_conf,
+  install: true,
+  install_dir: join_paths(get_option('mandir'), 'man1')
+)
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 00000000..b905c314
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,11 @@
+if get_option('with-plugin')
+  subdir('pkgconfig')
+endif
+
+if get_option('with-gtk')
+  subdir('icons')
+  subdir('misc')
+  subdir('man')
+elif get_option('with-theme-manager')
+  subdir('misc')
+endif
diff --git a/data/misc/Makefile.am b/data/misc/Makefile.am
deleted file mode 100644
index 45036a3c..00000000
--- a/data/misc/Makefile.am
+++ /dev/null
@@ -1,50 +0,0 @@
-
-appdatadir = $(datadir)/appdata
-appdata_in_files =
-
-if DO_GTK
-appdata_in_files += hexchat.appdata.xml.in
-endif
-
-appdata_DATA = $(appdata_in_files:.xml.in=.xml)
-@INTLTOOL_XML_RULE@
-
-if USE_DBUS
-exec_command = 'hexchat --existing %U'
-else
-exec_command = 'hexchat %U'
-endif
-
-hexchat.desktop.in: hexchat.desktop.in.in
-	$(AM_V_GEN)sed -e s!\@exec_command\@!$(exec_command)! < $< > $@
-
-data_desktopdir = $(datadir)/applications
-data_desktop_in_files =
-
-if DO_GTK
-data_desktop_in_files += hexchat.desktop.in
-endif
-
-if WITH_TM
-data_desktop_in_files += htm.desktop.in
-mime_DATA = htm-mime.xml
-mimedir = $(datadir)/mime/packages
-endif
-
-data_desktop_DATA = $(data_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-UPDATE_MIME_DATABASE = update-mime-database "$(datadir)/mime" || :
-UPDATE_DESKTOP_DATABASE = update-desktop-database -q "$(datadir)/applications" || :
-
-install-data-hook:
-	$(UPDATE_MIME_DATABASE);
-	$(UPDATE_DESKTOP_DATABASE);
-
-uninstall-hook:
-	$(UPDATE_MIME_DATABASE);
-	$(UPDATE_DESKTOP_DATABASE);
-
-EXTRA_DIST = hexchat.appdata.xml.in hexchat.desktop.in.in htm.desktop.in htm-mime.xml
-
-CLEANFILES = $(appdata_DATA) $(data_desktop_DATA) hexchat.desktop.in
diff --git a/data/misc/hexchat.appdata.xml.in b/data/misc/hexchat.appdata.xml.in
index 8b5b3ee8..7ffaf3dc 100644
--- a/data/misc/hexchat.appdata.xml.in
+++ b/data/misc/hexchat.appdata.xml.in
@@ -8,8 +8,8 @@
   <translation type="gettext">hexchat</translation>
   <summary>IRC Client</summary>
   <description>
-    <_p>HexChat is an easy to use yet extensible IRC Client. It allows you to securely join multiple networks and talk to users privately or in channels using a customizable interface. You can even transfer files.</_p>
-    <_p>HexChat supports features such as: DCC, SASL, proxies, spellcheck, alerts, logging, custom themes, and Python/Perl scripts.</_p>
+    <p>HexChat is an easy to use yet extensible IRC Client. It allows you to securely join multiple networks and talk to users privately or in channels using a customizable interface. You can even transfer files.</p>
+    <p>HexChat supports features such as: DCC, SASL, proxies, spellcheck, alerts, logging, custom themes, and Python/Perl scripts.</p>
   </description>
   <url type="homepage">http://hexchat.github.io</url>
   <url type="bugtracker">https://github.com/hexchat/hexchat</url>
@@ -19,7 +19,7 @@
   <screenshots>
     <screenshot type="default">
       <image>http://i.imgur.com/tLMguQz.png</image>
-      <_caption>Main Chat Window</_caption>
+      <caption>Main Chat Window</caption>
     </screenshot>
   </screenshots>
   <releases>
diff --git a/data/misc/hexchat.desktop.in.in b/data/misc/hexchat.desktop.in.in
index a778e9b5..a5ff40d8 100644
--- a/data/misc/hexchat.desktop.in.in
+++ b/data/misc/hexchat.desktop.in.in
@@ -1,8 +1,8 @@
 [Desktop Entry]
-_Name=HexChat
-_GenericName=IRC Client
-_Comment=Chat with other people online
-_Keywords=IM;Chat;
+Name=HexChat
+GenericName=IRC Client
+Comment=Chat with other people online
+Keywords=IM;Chat;
 Exec=@exec_command@
 Icon=hexchat
 Terminal=false
@@ -14,5 +14,5 @@ MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;
 Actions=SafeMode;
 
 [Desktop Action SafeMode]
-_Name=Open Safe Mode
+Name=Open Safe Mode
 Exec=hexchat --no-auto --no-plugins
diff --git a/data/misc/htm.desktop.in b/data/misc/htm.desktop.in
index 0971ac77..53cac289 100644
--- a/data/misc/htm.desktop.in
+++ b/data/misc/htm.desktop.in
@@ -1,5 +1,5 @@
 [Desktop Entry]
-_Name=HexChat Theme Manager
+Name=HexChat Theme Manager
 Exec=thememan %f
 Icon=hexchat
 Terminal=false
diff --git a/data/misc/meson.build b/data/misc/meson.build
new file mode 100644
index 00000000..ec79b757
--- /dev/null
+++ b/data/misc/meson.build
@@ -0,0 +1,48 @@
+appdir = join_paths(get_option('datadir'), 'applications')
+
+if get_option('with-gtk')
+  i18n.merge_file(
+    input: 'hexchat.appdata.xml.in',
+    output: 'hexchat.appdata.xml',
+    po_dir: '../../po',
+    install: true,
+    install_dir: join_paths(get_option('datadir'), 'appdata')
+  )
+
+  desktop_conf = configuration_data()
+  if get_option('with-dbus')
+    desktop_conf.set('exec_command', 'hexchat --existing %U')
+  else
+    desktop_conf.set('exec_command', 'hexchat %U')
+  endif
+
+  desktop_file = configure_file(
+    input: 'hexchat.desktop.in.in',
+    output: 'hexchat.desktop.in',
+    configuration: desktop_conf
+  )
+
+  i18n.merge_file(
+    input: desktop_file,
+    output: 'hexchat.desktop',
+    po_dir: '../../po',
+    type: 'desktop',
+    install: true,
+    install_dir: appdir
+  )
+endif
+
+if get_option('with-theme-manager')
+  i18n.merge_file(
+    input: 'htm.desktop.in',
+    output: 'htm.desktop',
+    po_dir: '../../po',
+    type: 'desktop',
+    install: true,
+    install_dir: appdir
+  )
+
+  install_data('htm-mime.xml',
+    install_dir: join_paths(get_option('datadir'), 'mime/packages')
+  )
+endif
diff --git a/data/pkgconfig/Makefile.am b/data/pkgconfig/Makefile.am
deleted file mode 100644
index 7ee0ac95..00000000
--- a/data/pkgconfig/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-pkgcfgdir = $(pkgconfigdir)
-pkgcfg_DATA = hexchat-plugin.pc
-
-EXTRA_DIST = hexchat-plugin.pc.in
diff --git a/data/pkgconfig/meson.build b/data/pkgconfig/meson.build
new file mode 100644
index 00000000..3bacf301
--- /dev/null
+++ b/data/pkgconfig/meson.build
@@ -0,0 +1,14 @@
+pkg_conf = configuration_data()
+prefix = get_option('prefix')
+pkg_conf.set('prefix', prefix)
+pkg_conf.set('VERSION', meson.project_version())
+pkg_conf.set('hexchatlibdir', join_paths(prefix, plugindir))
+pkg_conf.set('includedir', join_paths(prefix, get_option('includedir')))
+
+configure_file(
+  input: 'hexchat-plugin.pc.in',
+  output: 'hexchat-plugin.pc',
+  configuration: pkg_conf,
+  install: true,
+  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
+)