aboutsummaryrefslogtreecommitdiff
path: root/src/meson.build
blob: 6ce0ee93fce3e37f3d2c8b4319b99aa1f2ad8a8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
source_configuration = configuration_data()
source_configuration.set_quoted('APP_ID', application_id)
source_configuration.set_quoted('GETTEXT_DOMAIN', gettext_domain)
configure_file(
  input: 'info.rs.in',
  output: '@BASENAME@',
  configuration: source_configuration
)

run_command(
  'cp',
  meson.project_build_root() / 'src' / 'info.rs',
  meson.project_source_root() / 'src' / 'info.rs',
  check: true,
)

cargo_options = ['--manifest-path', meson.project_source_root() / 'Cargo.toml']
cargo_options += ['--target-dir', meson.project_build_root() / 'src']
cargo_env = ['CARGO_HOME=' + meson.project_build_root() / 'cargo-home']

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

custom_target(
  'cargo-build',
  build_by_default: true,
  build_always_stale: true,
  output: meson.project_name(),
  console: true,
  install: true,
  install_dir: bindir,
  command: [
    'env',
    cargo_env,
    cargo,
    'build',
    cargo_options,
    '&&',
    'cp',
    'src' / rust_target / meson.project_name(),
    '@OUTPUT@',
  ],
)