Skip to content

Commit dc608ea

Browse files
committed
enhancing and cleaning meson.build
1 parent e3e4e17 commit dc608ea

File tree

2 files changed

+50
-21
lines changed

2 files changed

+50
-21
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,8 @@ or compile by self:
971971
1. `meson setup build`
972972
2. `cd build`
973973
3. `ninja`
974-
4. `sudo ninja install`
974+
4. `ninja install`
975+
5. optionaly `ninja bindist`
975976

976977
## Checked on
977978

meson.build

Lines changed: 48 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
project('plpgsql_check', ['c'], version: '2.7')
1+
project('plpgsql_check', ['c'], version: '2.7.13')
22

33
pg_config = find_program('pg_config')
44

@@ -11,7 +11,6 @@ libdir = run_command(pg_config, '--libdir', check: true).stdout().strip()
1111

1212
versionstring = run_command(pg_config, '--version', check: true).stdout().strip()
1313
pg_version = versionstring.split(' ')[1]
14-
plpgsql_check_version = meson.project_version()
1514

1615
if pg_version.endswith('devel')
1716
pg_version_arr = [pg_version.split('devel')[0], '0']
@@ -27,7 +26,12 @@ pg_version_major = pg_version_arr[0].to_int()
2726
pg_version_minor = pg_version_arr[1].to_int()
2827
pg_version_num = (pg_version_major * 10000) + pg_version_minor
2928

30-
plpgsql_check_sources = files(
29+
module_version_minor = meson.project_version()
30+
module_version_arr = module_version_minor.split('.')
31+
module_version = module_version_arr[0] + '.' + module_version_arr[1]
32+
module_name = meson.project_name()
33+
34+
sources = files(
3135
'src/assign.c',
3236
'src/cursors_leaks.c',
3337
'src/format.c',
@@ -47,6 +51,14 @@ plpgsql_check_sources = files(
4751
'src/tracer.c',
4852
)
4953

54+
data = [ module_name + '.control',
55+
module_name + '--' + module_version + '.sql' ]
56+
57+
tests = [ 'plpgsql_check_active',
58+
'plpgsql_check_passive',
59+
'plpgsql_check_active-' + pg_version_major.to_string(),
60+
'plpgsql_check_passive-' + pg_version_major.to_string() ]
61+
5062
compilerName = meson.get_compiler('c').get_id()
5163

5264
if meson.get_compiler('c').get_id() == 'msvc'
@@ -61,39 +73,55 @@ if meson.get_compiler('c').get_id() == 'msvc'
6173
required: true
6274
)
6375
else
64-
incdir = [includedir_server]
76+
incdir = [ includedir_server ]
6577
postgres_lib = ''
6678
endif
6779

68-
plpgsql_check_lib = shared_module(
69-
'plpgsql_check',
70-
plpgsql_check_sources,
80+
module_lib = shared_module(
81+
module_name,
82+
sources,
7183
include_directories: incdir,
7284
install: true,
7385
install_dir: pkglibdir,
7486
name_prefix: '',
7587
dependencies: postgres_lib,
7688
)
7789

78-
install_data(
79-
'plpgsql_check.control',
80-
'plpgsql_check--' + plpgsql_check_version + '.sql',
81-
install_dir: sharedir / 'extension',
82-
)
90+
install_data(data, install_dir: sharedir / 'extension')
91+
92+
fs = import('fs')
93+
bindistdir = fs.expanduser('~' / module_name / module_name + '-' +
94+
'-'.join( [ module_version_minor,
95+
target_machine.cpu(),
96+
target_machine.system() ] ))
97+
98+
lib_name = fs.name(module_lib.full_path())
99+
lib_suffix = lib_name.split('.')[1]
100+
101+
python_exe = find_program('python3', 'python')
102+
103+
custom_target('bindist',
104+
depends: module_lib,
105+
input: module_lib,
106+
output: 'bindist',
107+
command: [ python_exe,
108+
meson.current_source_dir() / 'install_bindist.py',
109+
meson.current_source_dir(),
110+
bindistdir,
111+
module_lib.full_path(),
112+
fs.stem(lib_name) + '_' + pg_version_major.to_string() + '.' + lib_suffix,
113+
data ],
114+
install: false,
115+
build_by_default: false)
83116

84117
pg_regress = find_program(
85118
'pg_regress',
86119
dirs: [pkglibdir / 'pgxs/src/test/regress']
87120
)
88121

89-
regress_tests = ['plpgsql_check_active',
90-
'plpgsql_check_passive',
91-
'plpgsql_check_active-' + pg_version_major.to_string(),
92-
'plpgsql_check_passive-' + pg_version_major.to_string()]
93-
94122
test('regress',
95123
pg_regress,
96-
args: ['--bindir', bindir,
97-
'--inputdir', meson.current_source_dir(),
98-
] + regress_tests,
124+
args: [ '--bindir', bindir,
125+
'--inputdir', meson.current_source_dir(),
126+
] + tests,
99127
)

0 commit comments

Comments
 (0)