aboutsummaryrefslogtreecommitdiff
path: root/test cases/common/141 custom target multiple outputs/meson.build
blob: 30305056b19bff1728d8d4f0c1c36466ff9f57c6 (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
project('multiple outputs install', 'c')

gen = find_program('generator.py')

custom_target('different-install-dirs',
  output : ['diff.h', 'diff.sh'],
  command : [gen, 'diff', '@OUTDIR@'],
  install : true,
  install_dir : [join_paths(get_option('prefix'), get_option('includedir')),
                 join_paths(get_option('prefix'), get_option('bindir'))])

custom_target('same-install-dir',
  output : ['same.h', 'same.sh'],
  command : [gen, 'same', '@OUTDIR@'],
  install : true,
  install_dir : '/opt')

custom_target('only-install-first',
  output : ['first.h', 'first.sh'],
  command : [gen, 'first', '@OUTDIR@'],
  install : true,
  install_dir : [join_paths(get_option('prefix'), get_option('includedir')), false])

targets = custom_target('only-install-second',
  output : ['second.h', 'second.sh'],
  command : [gen, 'second', '@OUTDIR@'],
  install : true,
  install_dir : [false, join_paths(get_option('prefix'), get_option('bindir'))])

paths = []
foreach i : targets.to_list()
  paths += i.full_path()
endforeach

# The Xcode backend has a different output naming scheme.
if meson.backend() == 'xcode'
  assert(paths == [meson.project_build_root() / get_option('buildtype') / 'second.h',
                   meson.project_build_root() / get_option('buildtype') / 'second.sh'])

# Skip on Windows because paths are not identical, '/' VS '\'.
elif host_machine.system() != 'windows'
  assert(paths == [meson.current_build_dir() / 'second.h',
                   meson.current_build_dir() / 'second.sh'])
endif