Commit a849b33d authored by Bilal Elmoussaoui's avatar Bilal Elmoussaoui

build: Drop the custom cargo.py script

parent 9f8d12ff
#!/usr/bin/env python3
from os import environ, path
from subprocess import run
from argparse import ArgumentParser
from shutil import copy
parser = ArgumentParser()
parser.add_argument("build_root")
parser.add_argument("source_root")
parser.add_argument("output")
parser.add_argument("profile")
parser.add_argument("project_name")
parser.add_argument("features")
args = parser.parse_args()
environ["CARGO_TARGET_DIR"] = path.join(args.build_root, "target")
environ["CARGO_HOME"] = path.join(args.build_root, "cargo-home")
cargo_toml_path = path.join(args.source_root, "Cargo.toml")
if args.profile == "Devel":
print("DEBUG MODE")
run(
[
"cargo",
"build",
"--manifest-path",
cargo_toml_path,
"--features",
args.features,
],
check=True,
)
build_dir = path.join(environ["CARGO_TARGET_DIR"], "debug", args.project_name)
copy(build_dir, args.output)
else:
print("RELEASE MODE")
run(
[
"cargo",
"build",
"--manifest-path",
cargo_toml_path,
"--release",
"--features",
args.features,
],
check=True,
)
build_dir = path.join(environ["CARGO_TARGET_DIR"], "release", args.project_name)
copy(build_dir, args.output)
...@@ -18,8 +18,7 @@ dependency('libadwaita-1', version: '>= 1') ...@@ -18,8 +18,7 @@ dependency('libadwaita-1', version: '>= 1')
glib_compile_resources = find_program('glib-compile-resources', required: true) glib_compile_resources = find_program('glib-compile-resources', required: true)
desktop_file_validate = find_program('desktop-file-validate', required: false) desktop_file_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: false) appstream_util = find_program('appstream-util', required: false)
cargo = find_program('cargo', required: false) cargo = find_program('cargo')
cargo_script = find_program('build-aux/cargo.py')
version = meson.project_version() version = meson.project_version()
......
...@@ -18,40 +18,37 @@ run_command( ...@@ -18,40 +18,37 @@ run_command(
check: true check: true
) )
sources = files(
'widgets/pages/image.rs',
'widgets/pages/mod.rs',
'widgets/pages/welcome.rs',
'widgets/mod.rs',
'widgets/paginator.rs',
'widgets/window.rs',
'application.rs',
'config.rs',
'main.rs',
'utils.rs',
)
features = '' cargo_options = [ '--manifest-path', meson.project_source_root() / 'Cargo.toml' ]
if get_option('video_path') != '' cargo_options += [ '--target-dir', meson.project_build_root() / 'src' ]
features = '--features video'
if get_option('profile') == 'default'
cargo_options += [ '--release' ]
rust_target = 'release'
message('Building in release mode')
else
rust_target = 'debug'
message('Building in debug mode')
endif endif
custom_target( cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ]
cargo_build = custom_target(
'cargo-build', 'cargo-build',
build_by_default: true, build_by_default: true,
input: sources, build_always_stale: true,
output: meson.project_name(), output: meson.project_name(),
console: true, console: true,
install: true, install: true,
install_dir: bindir, install_dir: bindir,
depends: resources, depends: resources,
command: [ command: [
cargo_script, 'env',
meson.project_build_root(), cargo_env,
meson.project_source_root(), cargo, 'build',
'@OUTPUT@', cargo_options,
profile, '&&',
meson.project_name(), 'cp', 'src' / rust_target / meson.project_name(), '@OUTPUT@',
features,
] ]
) )
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment