Skip to content

Commit

Permalink
Install python sources using meson build (mamolinux#56)
Browse files Browse the repository at this point in the history
- Setup meson to install python sources
  during python and meson builds
- Install executable binary using meson
  and avoid using python builds for now
- Remove unnecessary python packaging files
  • Loading branch information
hsbasu authored Oct 18, 2024
1 parent cf04356 commit fafe87b
Show file tree
Hide file tree
Showing 11 changed files with 87 additions and 106 deletions.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
include debian/changelog
global-exclude *.py[cod]
graft data*
graft po*
include src/battery-monitor.in
graft src/BatteryMonitor/icons*
graft src/BatteryMonitor/ui*
9 changes: 3 additions & 6 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,14 @@ project('battery-monitor',
]
)


application_id = meson.project_name()
i18n = import('i18n')
gnome = import('gnome')
pymod = import('python')
python = pymod.find_installation('python3')
gettext_package = meson.project_name()

# dependency('gobject')
# dependency('bs4')
# dependency('configobj')

prefix = get_option('prefix')
bindir = get_option('bindir')
datadir = get_option('datadir')

subdir('data')
Expand Down
7 changes: 5 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,14 @@ Homepage = "https://hsbasu.github.io/battery-monitor"
Repository = "https://www.github.com/mamolinux/battery-monitor.git"
Issues = "https://www.github.com/mamolinux/battery-monitor/issues"

[project.scripts]
battery-monitor = "BatteryMonitor.main:start_BM"
# [project.scripts]
# battery-monitor = "BatteryMonitor.main:start_BM"

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
"*" = ["*VERSION", "*.ui"]

# [tool.meson-python.args]
# setup = ['--default-library=static']
51 changes: 0 additions & 51 deletions setup.cfg

This file was deleted.

44 changes: 0 additions & 44 deletions setup.py

This file was deleted.

1 change: 1 addition & 0 deletions src/BatteryMonitor/VERSION.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@version@
43 changes: 43 additions & 0 deletions src/BatteryMonitor/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
python_sources = [
'about_window.py',
'bm_daemon.py',
'BMonitor.py',
'cmd_lines.py',
'config.py',
'ErrorLib.py',
'gui.py',
'indicator.py',
'__init__.py',
'main.py',
'Notification.py',
]

version_file = configure_file(
input: 'VERSION.in',
output: 'VERSION',
configuration: {
'version': meson.project_version(),
}
)

python.install_sources(
python_sources, version_file,
subdir: 'BatteryMonitor',
preserve_path: true,
)

# Install assets like ui and icons
icons = files('icons/charging.png', 'icons/critical-battery.png', 'icons/discharging.png', 'icons/full-charge.png', 'icons/icon.png', 'icons/low-battery.png', 'icons/not-charging.png')

install_data(
icons,
install_dir: join_paths(pysrcinstalldir, 'BatteryMonitor', 'icons')
)


ui = files('ui/battery-monitor.ui', 'ui/logger.ui', 'ui/shortcuts.ui',)

install_data(
ui,
install_dir: join_paths(pysrcinstalldir, 'BatteryMonitor', 'ui')
)
11 changes: 11 additions & 0 deletions src/battery-monitor.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!@PYTHON@
# -*- coding: utf-8 -*-
import re
import sys

sys.path.insert(1, '@pkgdatadir@')

from BatteryMonitor.main import start_BM
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(start_BM())
17 changes: 17 additions & 0 deletions src/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
pysrcinstalldir = python.get_install_dir() # python.get_path('platlib')
message(f'Python dir: @pysrcinstalldir@')

conf = configuration_data()
conf.set('PYTHON', python.full_path())
conf.set('pkgdatadir', pysrcinstalldir)

configure_file(
input: 'battery-monitor.in',
output: 'battery-monitor',
configuration: conf,
install: true,
install_dir: bindir,
install_mode: 'rwxr-xr-x'
)

subdir('BatteryMonitor')
6 changes: 5 additions & 1 deletion test/test
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
#!/bin/bash
pip3 install .
rm -rf builddir
meson setup -Dprefix=$HOME/.local builddir
meson compile -C builddir --verbose
meson install -C builddir
battery-monitor -V
ninja uninstall -C builddir
2 changes: 0 additions & 2 deletions update-pot

This file was deleted.

0 comments on commit fafe87b

Please sign in to comment.