[fractal/fractal-next] meson: Drop build shell script
- From: Julian Sparber <jsparber src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/fractal-next] meson: Drop build shell script
- Date: Wed, 19 Jan 2022 17:13:23 +0000 (UTC)
commit c6e25f4fbf5de5dee685b1308e16c50c5e06bca2
Author: Julian Sparber <julian sparber net>
Date: Wed Jan 19 16:05:07 2022 +0100
meson: Drop build shell script
This drops the script we used to build fractal. And uses know only
meson. This also drops the need for specifying sources since cargo does
that for us.
This also bumps the meson version.
This also drops the build option `skip-cargo-build`.
Most of the changes are comming from https://gitlab.gnome.org/World/pika-backup
build-aux/cargo.sh | 21 --------
meson.build | 9 ++--
meson_options.txt | 4 --
src/meson.build | 137 ++++++++++-------------------------------------------
4 files changed, 28 insertions(+), 143 deletions(-)
---
diff --git a/meson.build b/meson.build
index 4506067e..851b600c 100644
--- a/meson.build
+++ b/meson.build
@@ -2,7 +2,7 @@ project('fractal',
'rust',
version: '0.0.1',
license: 'MIT',
- meson_version: '>= 0.53')
+ meson_version: '>= 0.57')
i18n = import('i18n')
gnome = import('gnome')
@@ -32,7 +32,6 @@ glib_compile_schemas = find_program('glib-compile-schemas', required: true)
desktop_file_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: false)
cargo = find_program('cargo', required: true)
-cargo_script = find_program('build-aux/cargo.sh')
version = meson.project_version()
version_array = version.split('.')
@@ -47,7 +46,7 @@ localedir = prefix / get_option('localedir')
datadir = prefix / get_option('datadir')
pkgdatadir = datadir / meson.project_name()
iconsdir = datadir / 'icons'
-podir = meson.source_root() / 'po'
+podir = meson.project_source_root() / 'po'
gettext_package = meson.project_name()
if get_option('profile') == 'development'
@@ -67,8 +66,8 @@ endif
meson.add_dist_script(
'build-aux/dist-vendor.sh',
- meson.build_root() / 'meson-dist' / meson.project_name() + '-' + version,
- meson.source_root()
+ meson.project_build_root() / 'meson-dist' / meson.project_name() + '-' + version,
+ meson.project_source_root()
)
if get_option('profile') == 'development'
diff --git a/meson_options.txt b/meson_options.txt
index ea7fd89a..35af6dbc 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -8,7 +8,3 @@ option(
value: 'default',
description: 'The build profile for Fractal. One of "default" or "development".'
)
-option(
- 'skip-cargo-build', type: 'boolean', value: false,
- description: 'Skip building "cargo-build" target.'
-)
diff --git a/src/meson.build b/src/meson.build
index 72ba437d..d99036d6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -13,129 +13,40 @@ config = configure_file(
# Copy the config.rs output to the source directory.
run_command(
'cp',
- meson.build_root() / 'src' / 'config.rs',
- meson.source_root() / 'src' / 'config.rs',
+ meson.project_build_root() / 'src' / 'config.rs',
+ meson.project_source_root() / 'src' / 'config.rs',
check: true
)
-sources = files(
- 'application.rs',
- 'contrib/qr_code.rs',
- 'contrib/qr_code_scanner/camera_paintable.rs',
- 'contrib/qr_code_scanner/mod.rs',
- 'contrib/qr_code_scanner/screenshot.rs',
- 'contrib/qr_code_scanner/qr_code_detector.rs',
- 'components/avatar.rs',
- 'components/auth_dialog.rs',
- 'components/badge.rs',
- 'components/context_menu_bin.rs',
- 'components/custom_entry.rs',
- 'components/label_with_widgets.rs',
- 'components/mod.rs',
- 'components/pill.rs',
- 'components/room_title.rs',
- 'components/in_app_notification.rs',
- 'components/spinner_button.rs',
- 'components/loading_listbox_row.rs',
- 'components/video_player.rs',
- 'config.rs',
- 'error.rs',
- 'main.rs',
- 'window.rs',
- 'login.rs',
- 'secret.rs',
- 'user_facing_error.rs',
- 'utils.rs',
- 'session/avatar.rs',
- 'session/event_source_dialog.rs',
- 'session/account_settings/devices_page/device.rs',
- 'session/account_settings/devices_page/device_row.rs',
- 'session/account_settings/devices_page/device_list.rs',
- 'session/account_settings/devices_page/mod.rs',
- 'session/account_settings/mod.rs',
- 'session/user.rs',
- 'session/mod.rs',
- 'session/content/explore/mod.rs',
- 'session/content/explore/public_room.rs',
- 'session/content/explore/public_room_list.rs',
- 'session/content/explore/public_room_row.rs',
- 'session/content/invite.rs',
- 'session/content/markdown_popover.rs',
- 'session/content/room_history/divider_row.rs',
- 'session/content/room_history/item_row.rs',
- 'session/content/room_history/message_row/file.rs',
- 'session/content/room_history/message_row/media.rs',
- 'session/content/room_history/message_row/mod.rs',
- 'session/content/room_history/message_row/text.rs',
- 'session/content/room_history/mod.rs',
- 'session/content/room_history/state_row/creation.rs',
- 'session/content/room_history/state_row/mod.rs',
- 'session/content/room_history/state_row/tombstone.rs',
- 'session/content/room_history/verification_info_bar.rs',
- 'session/content/mod.rs',
- 'session/content/room_details/invite_subpage/invitee.rs',
- 'session/content/room_details/invite_subpage/mod.rs',
- 'session/content/room_details/invite_subpage/invitee_list.rs',
- 'session/content/room_details/invite_subpage/invitee_row.rs',
- 'session/content/room_details/member_page/mod.rs',
- 'session/content/room_details/member_page/member_row.rs',
- 'session/content/room_details/member_page/member_menu.rs',
- 'session/content/room_details/mod.rs',
- 'session/content/verification/emoji.rs',
- 'session/content/verification/mod.rs',
- 'session/content/verification/identity_verification_widget.rs',
- 'session/content/verification/session_verification.rs',
- 'session/media_viewer.rs',
- 'session/room/event.rs',
- 'session/room/event_actions.rs',
- 'session/room/highlight_flags.rs',
- 'session/room/item.rs',
- 'session/room/member.rs',
- 'session/room/member_list.rs',
- 'session/room/member_role.rs',
- 'session/room/mod.rs',
- 'session/room/power_levels.rs',
- 'session/room/room_type.rs',
- 'session/room_list.rs',
- 'session/room/timeline.rs',
- 'session/room_creation/mod.rs',
- 'session/sidebar/item_list.rs',
- 'session/sidebar/category.rs',
- 'session/sidebar/category_row.rs',
- 'session/sidebar/mod.rs',
- 'session/sidebar/row.rs',
- 'session/sidebar/room_row.rs',
- 'session/sidebar/entry.rs',
- 'session/sidebar/entry_row.rs',
- 'session/sidebar/entry_type.rs',
- 'session/sidebar/verification_row.rs',
- 'session/sidebar/selection.rs',
- 'session/sidebar/account_switcher/add_account.rs',
- 'session/sidebar/account_switcher/avatar_with_selection.rs',
- 'session/sidebar/account_switcher/item.rs',
- 'session/sidebar/account_switcher/mod.rs',
- 'session/sidebar/account_switcher/user_entry.rs',
- 'session/sidebar/category_type.rs',
- 'session/verification/mod.rs',
- 'session/verification/identity_verification.rs',
- 'session/verification/verification_list.rs',
-)
+cargo_options = [ '--manifest-path', meson.project_source_root() / 'Cargo.toml' ]
+cargo_options += [ '--target-dir', meson.project_build_root() / 'src' ]
+
+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
+
+cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ]
-custom_target(
+cargo_build = custom_target(
'cargo-build',
- build_by_default: not get_option('skip-cargo-build'),
- input: sources,
+ build_by_default: true,
+ build_always_stale: true,
output: meson.project_name(),
console: true,
install: true,
install_dir: bindir,
depends: resources,
command: [
- cargo_script,
- meson.build_root(),
- meson.source_root(),
- '@OUTPUT@',
- profile,
- meson.project_name(),
+ 'env',
+ cargo_env,
+ cargo, 'build',
+ cargo_options,
+ '&&',
+ 'cp', 'src' / rust_target / meson.project_name(), '@OUTPUT@',
]
)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]