Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to meson build system #338

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ requires:
- make
- mate-common
- mate-panel
- meson
- python
- upower
- which
Expand Down Expand Up @@ -47,6 +48,7 @@ requires:
- libxrandr-dev
- make
- mate-common
- meson
- pkg-config
- xmlto
- yelp-tools
Expand All @@ -71,6 +73,7 @@ requires:
- mate-common
- mate-panel-devel
- mesa-libGL-devel
- meson
- pangox-compat-devel
- polkit-devel
- popt-devel
Expand Down Expand Up @@ -99,6 +102,7 @@ requires:
- libxrandr-dev
- make
- mate-common
- meson
- pkg-config
- xmlto
- yelp-tools
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ install:

script:
- ./docker-build --name ${DISTRO} --verbose --config .build.yml --build scripts
- ./docker-build --name ${DISTRO} --verbose --config .build.yml --build scripts --build meson

notifications:
irc:
Expand Down
32 changes: 32 additions & 0 deletions applets/brightness/config.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2020 Victor A. Santos <[email protected]>
*
* Licensed under the GNU General Public License Version 2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

/* Project */
#define VERSION "@version@"

/* Directories */
#define SYSCONFDIR "@sysconfdir@"
#define DATADIR "@datadir@"
#define BINDIR "@bindir@"
#define SBINDIR "@sbindir@"
#define MATELOCALEDIR "@localedir@"
#define GPM_ICONS_DATA "@iconsdir@"
#define BRIGHTNESS_MENU_UI_DIR "@uidir@"
59 changes: 59 additions & 0 deletions applets/brightness/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
conf_data = configuration_data()
conf_data.set('version', meson.project_version())
conf_data.set('sysconfdir', sysconfdir_path)
conf_data.set('datadir', datadir_path)
conf_data.set('bindir', bindir_path)
conf_data.set('sbindir', sbindir_path)
conf_data.set('localedir', localedir_path)
conf_data.set('iconsdir', iconsdir_path)
conf_data.set('uidir', uidir_path)
conf_data.set('gettext_package', meson.project_name())

configure_file(input: 'config.h.in', output: 'config.h', configuration: conf_data)

executable(
'mate-brightness-applet',
[
'brightness-applet.c',
'gpm-common.c',
],
dependencies: dependencies,
install: true,
install_dir: libexecdir_path
)

desktop_data = configuration_data()
desktop_data.set('LIBEXECDIR', libexecdir_path)
desktop_data.set('VERSION', meson.project_version())

desktop_in = configure_file(
input: 'org.mate.BrightnessApplet.mate-panel-applet.desktop.in.in',
output: 'org.mate.BrightnessApplet.mate-panel-applet.desktop.in',
configuration: desktop_data
)

i18n.merge_file(
input: desktop_in,
output: 'org.mate.BrightnessApplet.mate-panel-applet.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: appletdir_path,
)

service_data = configuration_data()
service_data.set('LIBEXECDIR', libexecdir_path)

service_file = configure_file(
input: 'org.mate.panel.applet.BrightnessAppletFactory.service.in',
output: 'org.mate.panel.applet.BrightnessAppletFactory.service',
configuration: service_data,
install: true,
install_dir: servicedir_path
)

install_data(
['brightness-applet-menu.xml'],
install_dir: uidir_path
)

32 changes: 32 additions & 0 deletions applets/inhibit/config.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2020 Victor A. Santos <[email protected]>
*
* Licensed under the GNU General Public License Version 2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

/* Project */
#define VERSION "@version@"

/* Directories */
#define SYSCONFDIR "@sysconfdir@"
#define DATADIR "@datadir@"
#define BINDIR "@bindir@"
#define SBINDIR "@sbindir@"
#define MATELOCALEDIR "@localedir@"
#define GPM_ICONS_DATA "@iconsdir@"
#define INHIBIT_MENU_UI_DIR "@uidir@"
58 changes: 58 additions & 0 deletions applets/inhibit/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
conf_data = configuration_data()
conf_data.set('version', meson.project_version())
conf_data.set('sysconfdir', sysconfdir_path)
conf_data.set('datadir', datadir_path)
conf_data.set('bindir', bindir_path)
conf_data.set('sbindir', sbindir_path)
conf_data.set('localedir', localedir_path)
conf_data.set('iconsdir', iconsdir_path)
conf_data.set('uidir', uidir_path)
conf_data.set('gettext_package', meson.project_name())

configure_file(input: 'config.h.in', output: 'config.h', configuration: conf_data)

executable(
'mate-inhibit-applet',
[
'inhibit-applet.c',
'gpm-common.c',
],
dependencies: dependencies,
install: true,
install_dir: libexecdir_path
)

desktop_data = configuration_data()
desktop_data.set('LIBEXECDIR', libexecdir_path)
desktop_data.set('VERSION', meson.project_version())

desktop_in = configure_file(
input: 'org.mate.InhibitApplet.mate-panel-applet.desktop.in.in',
output: 'org.mate.InhibitApplet.mate-panel-applet.desktop.in',
configuration: desktop_data
)

i18n.merge_file(
input: desktop_in,
output: 'org.mate.InhibitApplet.mate-panel-applet.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: appletdir_path,
)

service_data = configuration_data()
service_data.set('LIBEXECDIR', libexecdir_path)

service_file = configure_file(
input: 'org.mate.panel.applet.InhibitAppletFactory.service.in',
output: 'org.mate.panel.applet.InhibitAppletFactory.service',
configuration: service_data,
install: true,
install_dir: servicedir_path
)

install_data(
['inhibit-applet-menu.xml'],
install_dir: uidir_path
)
2 changes: 2 additions & 0 deletions applets/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
subdir('brightness')
subdir('inhibit')
4 changes: 2 additions & 2 deletions data/icons/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
actioniconsdir = $(pkgdatadir)/icons/hicolor
actioniconsdir = $(datadir)/icons/hicolor
appiconsdir = $(datadir)/icons/hicolor
statusiconsdir = $(pkgdatadir)/icons/hicolor
statusiconsdir = $(datadir)/icons/hicolor

sizes = 16x16 22x22 24x24 32x32 48x48 64x64 96x96 128x128 256x256

Expand Down
59 changes: 59 additions & 0 deletions data/icons/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
actioniconsdir_path = join_paths(datadir_path, 'icons', 'hicolor')
appiconsdir_path = join_paths(datadir_path, 'icons', 'hicolor')
statusiconsdir_path = join_paths(datadir_path, 'icons', 'hicolor')

action_images = [
'gpm-hibernate.png',
'gpm-suspend.png'
]

app_images = [
'mate-brightness-applet.png',
'mate-inhibit-applet.png',
'mate-power-manager.png',
'mate-power-statistics.png'
]

status_images = [
'gpm-ac-adapter.png', 'gpm-keyboard-080.png', 'gpm-battery-000-charging.png',
'gpm-keyboard-100.png', 'gpm-battery-000.png', 'gpm-mouse-000.png',
'gpm-battery-020-charging.png', 'gpm-mouse-020.png', 'gpm-battery-020.png',
'gpm-mouse-040.png', 'gpm-battery-040-charging.png', 'gpm-mouse-060.png',
'gpm-battery-040.png', 'gpm-mouse-080.png', 'gpm-battery-060-charging.png',
'gpm-mouse-100.png', 'gpm-battery-060.png', 'gpm-phone-000.png',
'gpm-battery-080-charging.png', 'gpm-phone-020.png', 'gpm-battery-080.png',
'gpm-phone-040.png', 'gpm-battery-100-charging.png', 'gpm-phone-060.png',
'gpm-battery-100.png', 'gpm-phone-080.png', 'gpm-battery-charged.png',
'gpm-phone-100.png', 'gpm-battery-empty.png', 'gpm-ups-000-charging.png',
'gpm-battery-missing.png', 'gpm-ups-000.png', 'gpm-brightness-kbd-disabled.png',
'gpm-ups-020-charging.png','gpm-brightness-kbd-invalid.png', 'gpm-ups-020.png',
'gpm-brightness-kbd.png', 'gpm-ups-040-charging.png', 'gpm-brightness-lcd-disabled.png',
'gpm-ups-040.png', 'gpm-brightness-lcd-invalid.png', 'gpm-ups-060-charging.png',
'gpm-brightness-lcd.png', 'gpm-ups-060.png', 'gpm-inhibit-invalid.png', 'gpm-ups-080-charging.png',
'gpm-inhibit.png', 'gpm-ups-080.png', 'gpm-keyboard-000.png', 'gpm-ups-100-charging.png',
'gpm-keyboard-020.png', 'gpm-ups-100.png', 'gpm-keyboard-040.png', 'gpm-ups-missing.png',
'gpm-keyboard-060.png'
]

foreach s: ['16x16', '22x22', '24x24', '32x32', '48x48', '64x64', '96x96', '128x128', '256x256']
foreach image: action_images
install_data(
join_paths(s, 'actions', image),
install_dir: join_paths(actioniconsdir_path, s, 'actions')
)
endforeach

foreach image: app_images
install_data(
join_paths(s, 'apps', image),
install_dir: join_paths(appiconsdir_path, s, 'apps')
)
endforeach

foreach image: status_images
install_data(
join_paths(s, 'status', image),
install_dir: join_paths(statusiconsdir_path, s, 'status')
)
endforeach
endforeach
86 changes: 86 additions & 0 deletions data/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
common_desktop_data = configuration_data()
common_desktop_data.set('VERSION', meson.project_version())

preferences_desktop = configure_file(
input: 'mate-power-preferences.desktop.in.in',
output: 'mate-power-preferences.desktop.in',
configuration: common_desktop_data
)

statistics_desktop = configure_file(
input: 'mate-power-statistics.desktop.in.in',
output: 'mate-power-statistics.desktop.in',
configuration: common_desktop_data
)

mpm_autostart = configure_file(
input: 'mate-power-manager.desktop.in.in',
output: 'mate-power-manager.desktop.in',
configuration: common_desktop_data
)

mpm_service_data = configuration_data()
mpm_service_data.set('servicedir', servicedir_path)

mpm_service = configure_file(
input: 'org.mate.PowerManager.service.in',
output: 'org.mate.PowerManager.service',
configuration: mpm_service_data,
install: true,
install_dir: servicedir_path
)

mpm_gsettings_schema_data = configuration_data()
mpm_gsettings_schema_data.set('GETTEXT_PACKAGE', meson.project_name())

mpm_gsettings_schema = configure_file(
input: 'org.mate.power-manager.gschema.xml.in',
output: 'org.mate.power-manager.gschema.xml',
configuration: mpm_gsettings_schema_data,
install: true,
install_dir: join_paths(datadir_path, 'glib-2.0', 'schemas')
)
meson.add_install_script('meson_post_install.py')

i18n.merge_file(
input: preferences_desktop,
output: 'mate-power-preferences.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: desktopdir_path
)

i18n.merge_file(
input: statistics_desktop,
output: 'mate-power-statistics.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: desktopdir_path
)

i18n.merge_file(
input: mpm_autostart,
output: 'mate-power-manager.desktop',
type: 'desktop',
po_dir: podir,
install: true,
install_dir: join_paths(sysconfdir_path, 'xdg', 'autostart')
)

install_man(
[
'mate-power-manager.1',
'mate-power-backlight-helper.1',
'mate-power-statistics.1',
'mate-power-preferences.1'
]
)

install_data(
['acme.ui'],
install_dir: pkgdatadir_path
)

subdir('icons')
10 changes: 10 additions & 0 deletions data/meson_post_install.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env python3

import os
import subprocess

schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')

if not os.environ.get('DESTDIR'):
print('Compiling gsettings schemas...')
subprocess.call(['glib-compile-schemas', schemadir])
Loading