-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathmeson.build
More file actions
125 lines (109 loc) · 3.44 KB
/
Copy pathmeson.build
File metadata and controls
125 lines (109 loc) · 3.44 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
project('pg_ivm',
['c'],
version: '1.15'
)
pg_config = find_program('pg_config')
bindir = run_command(pg_config, '--bindir', check: true).stdout().strip()
includedir_server = run_command(pg_config, '--includedir-server', check: true).stdout().strip()
includedir = run_command(pg_config, '--includedir', check: true).stdout().strip()
pkglibdir = run_command(pg_config, '--pkglibdir', check: true).stdout().strip()
sharedir = run_command(pg_config, '--sharedir', check: true).stdout().strip()
libdir = run_command(pg_config, '--libdir', check: true).stdout().strip()
version = run_command(pg_config, '--version', check: true).stdout().strip()
pg_version = version.split(' ')[1]
if pg_version.endswith('devel')
pgver = pg_version.split('devel')[0].to_int()
elif pg_version.contains('beta')
pgver = pg_version.split('beta')[0].to_int()
elif pg_version.contains('rc')
pgver = pg_version.split('rc')[0].to_int()
else
pgver = pg_version.split('.')[0].to_int()
endif
module_name = meson.project_name()
# ruleutils.c includes ruleutils_13.c or ruleutils_14.c based on PostgreSQL version
# Note: We don't need to explicitly add these files since they're included by ruleutils.c
pg_ivm_sources = files(
'createas.c',
'matview.c',
'pg_ivm.c',
'ruleutils.c',
'subselect.c',
)
if meson.get_compiler('c').get_id() == 'msvc'
incdir = [includedir_server / 'port/win32_msvc',
includedir_server / 'port/win32',
includedir_server,
includedir]
postgres_lib = meson.get_compiler('c').find_library(
'postgres',
dirs: libdir,
static: true,
required: true
)
else
incdir = [ includedir_server ]
postgres_lib = []
endif
shared_module(module_name,
pg_ivm_sources,
include_directories: incdir,
install: true,
install_dir: pkglibdir,
name_prefix: '',
dependencies: postgres_lib,
)
install_data(
'pg_ivm--1.0.sql',
'pg_ivm--1.0--1.1.sql',
'pg_ivm--1.1--1.2.sql',
'pg_ivm--1.2--1.3.sql',
'pg_ivm--1.3--1.4.sql',
'pg_ivm--1.4--1.5.sql',
'pg_ivm--1.5--1.6.sql',
'pg_ivm--1.6--1.7.sql',
'pg_ivm--1.7--1.8.sql',
'pg_ivm--1.8--1.9.sql',
'pg_ivm--1.9--1.10.sql',
'pg_ivm--1.10.sql',
'pg_ivm--1.10--1.11.sql',
'pg_ivm--1.11--1.12.sql',
'pg_ivm--1.12--1.13.sql',
'pg_ivm--1.13--1.14.sql',
'pg_ivm--1.14--1.15.sql',
'pg_ivm.control',
install_dir: sharedir / 'extension',
)
pg_regress = find_program('pg_regress',
dirs: [pkglibdir / 'pgxs/src/test/regress']
)
regress_tests = ['pg_ivm', 'create_immv', 'refresh_immv', 'outer_join']
if pgver >= 19
regress_tests += ['graph_table']
endif
test('regress',
pg_regress,
args: ['--bindir', bindir,
'--inputdir', meson.current_source_dir(),
] + regress_tests,
)
pg_isolation_regress = find_program('pg_isolation_regress',
dirs: [pkglibdir / 'pgxs/src/test/isolation']
)
isolation_tests = [
'create_insert', 'refresh_insert', 'insert_insert',
'create_insert2', 'refresh_insert2', 'insert_insert2',
'create_insert3', 'refresh_insert3', 'insert_insert3'
]
isolation_opts = [
'--load-extension','pg_ivm',
]
if pgver >= 14
test('isolation',
pg_isolation_regress,
args: ['--bindir', bindir,
'--inputdir', meson.current_source_dir(),
'--outputdir', 'output_iso',
] + isolation_opts + isolation_tests,
)
endif