roster/src/meson.build
Pavel Baksy b19af25569 Initial commit: Roster HTTP client for GNOME
Roster is a modern HTTP client application for GNOME, similar to Postman,
built with GTK 4 and libadwaita.

Features:
- Send HTTP requests (GET, POST, PUT, DELETE)
- Configure custom headers with add/remove functionality
- Request body editor for POST/PUT/DELETE requests
- View response headers and bodies in separate tabs
- Track request history with JSON persistence
- Load previous requests from history with confirmation dialog
- Beautiful GNOME-native UI with libadwaita components
- HTTPie backend for reliable HTTP communication

Technical implementation:
- Python 3 with GTK 4 and libadwaita 1
- Meson build system with Flatpak support
- Custom widgets (HeaderRow, HistoryItem) with GObject signals
- Background threading for non-blocking HTTP requests
- AdwTabView for modern tabbed interface
- History persistence to ~/.config/roster/history.json
- Comprehensive error handling and user feedback
2025-12-18 11:05:33 +01:00

48 lines
1.1 KiB
Meson

pkgdatadir = get_option('prefix') / get_option('datadir') / meson.project_name()
moduledir = pkgdatadir / 'roster'
gnome = import('gnome')
gnome.compile_resources('roster',
'roster.gresource.xml',
gresource_bundle: true,
install: true,
install_dir: pkgdatadir,
)
python = import('python')
conf = configuration_data()
conf.set('PYTHON', python.find_installation('python3').full_path())
conf.set('VERSION', meson.project_version())
conf.set('localedir', get_option('prefix') / get_option('localedir'))
conf.set('pkgdatadir', pkgdatadir)
configure_file(
input: 'roster.in',
output: 'roster',
configuration: conf,
install: true,
install_dir: get_option('bindir'),
install_mode: 'rwxr-xr-x'
)
roster_sources = [
'__init__.py',
'main.py',
'window.py',
'models.py',
'http_client.py',
'history_manager.py',
]
install_data(roster_sources, install_dir: moduledir)
# Install widgets submodule
widgets_sources = [
'widgets/__init__.py',
'widgets/header_row.py',
'widgets/history_item.py',
]
install_data(widgets_sources, install_dir: moduledir / 'widgets')