Skip to content

Commit

Permalink
build: Replace Autotools with Meson
Browse files Browse the repository at this point in the history
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 hexchat#2013
Closes hexchat#1937
Closes hexchat#1803
  • Loading branch information
TingPing committed Jun 14, 2017
1 parent 2edf50d commit 628100c
Show file tree
Hide file tree
Showing 71 changed files with 979 additions and 2,097 deletions.
5 changes: 5 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ end_of_line = lf
indent_style = space
indent_size = 4
end_of_line = lf

[{meson.build,meson_options.txt}]
indent_size = 2
indent_style = space
insert_final_newline = true
65 changes: 2 additions & 63 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,68 +1,8 @@
# git ignore file
# Unix generated files
.deps/
.libs/
.dirstamp
Makefile
Makefile.in
aclocal.m4
autom4te.cache/
/build-aux/
confdefs.h
conftest
conftest.c
conftest.err
config.*
config-win32.h
configure
configure.tmp
/build
doxygen*.tmp
html/
libtool
m4/
plugins/perl/irc.pm.h
plugins/perl/xchat.pm.h
plugins/perl/hexchat.pm.h
po/Makefile.in.in
po/POTFILES
po/remove-potcdate.sed
po/stamp-*
osx/Info.plist
data/man/hexchat.1
data/pkgconfig/hexchat-plugin.pc
data/misc/hexchat.appdata.xml
data/misc/hexchat.desktop
data/misc/hexchat.desktop.in
data/misc/htm.desktop
src/common/dbus/example
src/common/dbus/org.hexchat.service.service
src/common/dbus/remote-object-glue.h
src/common/make-te
src/common/marshal.*
src/common/textenums.h
src/common/textevents.h
src/fe-gtk/hexchat
src/fe-gtk/hexchat.rc
src/fe-gtk/resources.c
src/fe-gtk/resources.h
src/fe-text/hexchat-text
src/htm/Main.resources
src/htm/thememan.exe
src/htm/thememan.exe.config
src/htm/thememan.exe.mdb
src/htm/thememan
stamp-h1
*.a
*.o
*.la
*.lo
*.gmo
*.mo
*.po~
*.pot
*.patch
tags
src/**/*.plist
# Win32 generated files
plugins/wmpa/wmpa_h.h
plugins/wmpa/wmpa_i.c
Expand All @@ -79,10 +19,9 @@ resource.h
*.suo
*.user
*.exe
#OSX
# OSX
osx/HexChat.app
osx/.HexChat.app
po/.intltool-merge-cache
*.zip
*.dmg
*.VC.db
Expand Down
38 changes: 11 additions & 27 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,20 @@
sudo: required
dist: trusty
language: c
cache: apt
compiler: clang
services: docker
before_install:
- docker pull ubuntu:16.04
- docker run --privileged --cidfile=/tmp/cid ubuntu:16.04 /bin/sh -c 'apt-get update && apt-get install -y meson/xenial-backports libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk2.0-dev libluajit-5.1-dev libnotify-dev libpci-dev libperl-dev libproxy-dev libssl-dev python3-dev mono-devel desktop-file-utils'
- docker commit `cat /tmp/cid` hexchat/ubuntu-ci
- rm -f /tmp/cid
install:
- docker run -d --privileged --cidfile=/tmp/cid --volume=${PWD}:/opt/hexchat hexchat/ubuntu-ci /bin/systemd --system
script:
- ./autogen.sh --enable-textfe --with-theme-manager --enable-static-analysis
- make V=1 -j$(nproc)
- docker exec `cat /tmp/cid` /bin/sh -c 'meson /opt/hexchat /opt/hexchat-build -Dwith-text=true -Dwith-theme-manager=true && ninja -C /opt/hexchat-build install'
after_script:
- docker kill `cat /tmp/cid`
notifications:
irc:
channels: "chat.freenode.net#hexchat-devel"
template: "Build %{build_url} (%{commit} in %{branch}) by %{author}: %{message}"
on_success: change
matrix:
fast_finish: true
addons:
apt:
packages:
- automake
- autoconf-archive
- imagemagick
- intltool
- libcanberra-dev
- libdbus-glib-1-dev
- libglib2.0-dev
- libgtk2.0-dev
- libluajit-5.1-dev
- libnotify-dev
- libpci-dev
- libperl-dev
- libproxy-dev
- libssl-dev
- libtool
- monodevelop
- mono-devel
- python-dev
7 changes: 0 additions & 7 deletions Makefile.am

This file was deleted.

32 changes: 0 additions & 32 deletions autogen.sh

This file was deleted.

Loading

0 comments on commit 628100c

Please sign in to comment.