👷 use compressed gresource instead
This commit is contained in:
parent
6226aa4879
commit
af13cf75ad
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/cachyos/hello">
|
||||||
|
<file compressed="true" preprocess="xml-stripblanks">ui/cachyos-hello.glade</file>
|
||||||
|
<file compressed="true">ui/style.css</file>
|
||||||
|
</gresource>
|
||||||
|
</gresources>
|
|
@ -39,6 +39,15 @@ iconsdir = datadir / 'icons'
|
||||||
podir = meson.project_source_root() / 'po'
|
podir = meson.project_source_root() / 'po'
|
||||||
gettext_package = meson.project_name()
|
gettext_package = meson.project_name()
|
||||||
|
|
||||||
|
resources = gnome.compile_resources(
|
||||||
|
'cachyos-welcome',
|
||||||
|
'cachyos-welcome.gresource.xml',
|
||||||
|
gresource_bundle: true,
|
||||||
|
source_dir: meson.current_build_dir(),
|
||||||
|
install: true,
|
||||||
|
install_dir: pkgdatadir,
|
||||||
|
)
|
||||||
|
|
||||||
if get_option('profile') == 'development'
|
if get_option('profile') == 'development'
|
||||||
profile = 'Devel'
|
profile = 'Devel'
|
||||||
vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip()
|
vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip()
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
mkdir -p "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
mkdir -p "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
||||||
cp -r "${MESON_SOURCE_ROOT}/src/scripts" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
cp -r "${MESON_SOURCE_ROOT}/src/scripts" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
||||||
cp -r "${MESON_SOURCE_ROOT}/data" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
cp -r "${MESON_SOURCE_ROOT}/data" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
||||||
cp -r "${MESON_SOURCE_ROOT}/ui" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
|
|
||||||
|
|
||||||
cd "${MESON_SOURCE_ROOT}/po"
|
cd "${MESON_SOURCE_ROOT}/po"
|
||||||
for lang in $(ls *.po); do
|
for lang in $(ls *.po); do
|
||||||
|
|
|
@ -3,4 +3,5 @@ pub const GETTEXT_PACKAGE: &str = @GETTEXT_PACKAGE@;
|
||||||
pub const LOCALEDIR: &str = @LOCALEDIR@;
|
pub const LOCALEDIR: &str = @LOCALEDIR@;
|
||||||
pub const PKGDATADIR: &str = @PKGDATADIR@;
|
pub const PKGDATADIR: &str = @PKGDATADIR@;
|
||||||
pub const PROFILE: &str = @PROFILE@;
|
pub const PROFILE: &str = @PROFILE@;
|
||||||
|
pub const RESOURCES_FILE: &str = concat!(@PKGDATADIR@, "/cachyos-welcome.gresource");
|
||||||
pub const VERSION: &str = @VERSION@;
|
pub const VERSION: &str = @VERSION@;
|
||||||
|
|
11
src/main.rs
11
src/main.rs
|
@ -9,7 +9,7 @@ mod data_types;
|
||||||
mod pages;
|
mod pages;
|
||||||
mod utils;
|
mod utils;
|
||||||
|
|
||||||
use config::{APP_ID, GETTEXT_PACKAGE, LOCALEDIR, PKGDATADIR, PROFILE, VERSION};
|
use config::{APP_ID, GETTEXT_PACKAGE, LOCALEDIR, PKGDATADIR, PROFILE, RESOURCES_FILE, VERSION};
|
||||||
use data_types::*;
|
use data_types::*;
|
||||||
use gettextrs::LocaleCategory;
|
use gettextrs::LocaleCategory;
|
||||||
use gtk::{gio, glib, Builder, HeaderBar, Window};
|
use gtk::{gio, glib, Builder, HeaderBar, Window};
|
||||||
|
@ -124,6 +124,9 @@ fn main() {
|
||||||
|
|
||||||
gtk::init().expect("Unable to start GTK3.");
|
gtk::init().expect("Unable to start GTK3.");
|
||||||
|
|
||||||
|
let res = gio::Resource::load(RESOURCES_FILE).expect("Could not load gresource file.");
|
||||||
|
gio::resources_register(&res);
|
||||||
|
|
||||||
let application = gtk::Application::new(
|
let application = gtk::Application::new(
|
||||||
Some(APP_ID), // Application id
|
Some(APP_ID), // Application id
|
||||||
Default::default(), // Using default flags
|
Default::default(), // Using default flags
|
||||||
|
@ -155,9 +158,7 @@ fn build_ui(application: >k::Application) {
|
||||||
|
|
||||||
// Import Css
|
// Import Css
|
||||||
let provider = gtk::CssProvider::new();
|
let provider = gtk::CssProvider::new();
|
||||||
provider
|
provider.load_from_resource("/org/cachyos/hello/ui/style.css");
|
||||||
.load_from_path(preferences["style_path"].as_str().unwrap())
|
|
||||||
.expect("Failed to load CSS");
|
|
||||||
gtk::StyleContext::add_provider_for_screen(
|
gtk::StyleContext::add_provider_for_screen(
|
||||||
&gdk::Screen::default().expect("Error initializing gtk css provider."),
|
&gdk::Screen::default().expect("Error initializing gtk css provider."),
|
||||||
&provider,
|
&provider,
|
||||||
|
@ -165,7 +166,7 @@ fn build_ui(application: >k::Application) {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Init window
|
// Init window
|
||||||
let builder: Builder = Builder::from_file(preferences["ui_path"].as_str().unwrap());
|
let builder: Builder = Builder::from_resource("/org/cachyos/hello/ui/cachyos-hello.glade");
|
||||||
builder.connect_signals(|_builder, handler_name| {
|
builder.connect_signals(|_builder, handler_name| {
|
||||||
match handler_name {
|
match handler_name {
|
||||||
// handler_name as defined in the glade file => handler function as defined above
|
// handler_name as defined in the glade file => handler function as defined above
|
||||||
|
|
|
@ -18,8 +18,12 @@ run_command(
|
||||||
check: true
|
check: true
|
||||||
)
|
)
|
||||||
|
|
||||||
cargo_options = [ '--manifest-path', meson.project_source_root() / 'Cargo.toml' ]
|
manifest_path = meson.project_source_root() / 'Cargo.toml'
|
||||||
cargo_options += [ '--target-dir', meson.project_build_root() / 'src' ]
|
cargo_home = meson.project_build_root() / 'cargo-home'
|
||||||
|
cargo_target_dir = meson.project_build_root() / 'src'
|
||||||
|
|
||||||
|
cargo_options = [ '--manifest-path', manifest_path ]
|
||||||
|
cargo_options += [ '--target-dir', cargo_target_dir ]
|
||||||
|
|
||||||
if get_option('profile') == 'default'
|
if get_option('profile') == 'default'
|
||||||
cargo_options += [ '--release' ]
|
cargo_options += [ '--release' ]
|
||||||
|
@ -30,13 +34,14 @@ else
|
||||||
message('Building in debug mode')
|
message('Building in debug mode')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ]
|
cargo_env = [ 'CARGO_HOME=' + cargo_home ]
|
||||||
|
|
||||||
cargo_build = custom_target(
|
cargo_build = custom_target(
|
||||||
'cargo-build',
|
'cargo-build',
|
||||||
build_by_default: true,
|
build_by_default: true,
|
||||||
build_always_stale: true,
|
build_always_stale: true,
|
||||||
output: meson.project_name(),
|
output: meson.project_name(),
|
||||||
|
depends: resources,
|
||||||
console: true,
|
console: true,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: bindir,
|
install_dir: bindir,
|
||||||
|
@ -50,11 +55,7 @@ cargo_build = custom_target(
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
cargo_target_dir = meson.project_build_root() / 'target'
|
test(
|
||||||
cargo_home = meson.project_build_root() / 'cargo-home'
|
|
||||||
manifest_path = meson.project_source_root() / 'Cargo.toml'
|
|
||||||
|
|
||||||
test (
|
|
||||||
'cargo-test',
|
'cargo-test',
|
||||||
cargo,
|
cargo,
|
||||||
args: [
|
args: [
|
||||||
|
@ -65,13 +66,14 @@ test (
|
||||||
'--nocapture',
|
'--nocapture',
|
||||||
],
|
],
|
||||||
env: [
|
env: [
|
||||||
|
'RUST_BACKTRACE=1',
|
||||||
'CARGO_HOME=@0@'.format(cargo_home),
|
'CARGO_HOME=@0@'.format(cargo_home),
|
||||||
'PATH=/app/bin:/usr/bin:/usr/lib/sdk/rust-stable/bin',
|
'PATH=/app/bin:/usr/bin:/usr/lib/sdk/rust-stable/bin',
|
||||||
],
|
],
|
||||||
timeout: 300, # give cargo more time
|
timeout: 300, # give cargo more time
|
||||||
)
|
)
|
||||||
|
|
||||||
test (
|
test(
|
||||||
'cargo-clippy',
|
'cargo-clippy',
|
||||||
cargo,
|
cargo,
|
||||||
args: [
|
args: [
|
||||||
|
|
Loading…
Reference in New Issue