Repair memory leaks in plpython.
[pgsql.git] / src / include / meson.build
blob2e4b7aa529e265e4b66338df618e758e5cd2a00a
1 # Copyright (c) 2022-2025, PostgreSQL Global Development Group
3 pg_config_os = configure_file(
4   output: 'pg_config_os.h',
5   input: files('port/@0@.h'.format(portname)),
6   install: true,
7   install_dir: dir_include,
8   copy: true,
10 configure_files += pg_config_os
12 pg_config = configure_file(
13   output: 'pg_config.h',
14   install: true,
15   install_dir: dir_include,
16   configuration: cdata,
18 configure_files += pg_config
21 config_paths_data = configuration_data()
22 config_paths_data.set_quoted('PGBINDIR', dir_prefix / dir_bin)
23 config_paths_data.set_quoted('PGSHAREDIR', dir_prefix / dir_data)
24 config_paths_data.set_quoted('SYSCONFDIR', dir_prefix / dir_sysconf)
25 config_paths_data.set_quoted('INCLUDEDIR', dir_prefix / dir_include)
26 config_paths_data.set_quoted('PKGINCLUDEDIR', dir_prefix / dir_include_pkg)
27 config_paths_data.set_quoted('INCLUDEDIRSERVER', dir_prefix / dir_include_server)
28 config_paths_data.set_quoted('LIBDIR', dir_prefix / dir_lib)
29 config_paths_data.set_quoted('PKGLIBDIR', dir_prefix / dir_lib_pkg)
30 config_paths_data.set_quoted('LOCALEDIR', dir_prefix / dir_locale)
31 config_paths_data.set_quoted('DOCDIR', dir_prefix / dir_doc)
32 config_paths_data.set_quoted('HTMLDIR', dir_prefix / dir_doc_html)
33 config_paths_data.set_quoted('MANDIR', dir_prefix / dir_man)
36 var_cc = ' '.join(cc.cmd_array())
37 var_cpp = ' '.join(cc.cmd_array() + ['-E'])
38 var_cflags = ' '.join(cflags + cflags_builtin + cflags_warn + get_option('c_args'))
39 if llvm.found()
40   var_cxxflags = ' '.join(cxxflags + cxxflags_builtin + cxxflags_warn + get_option('cpp_args'))
41 else
42   var_cxxflags = ''
43 endif
44 var_cppflags = ' '.join(cppflags)
45 var_cflags_sl = ' '.join(cc.get_supported_arguments('-fPIC'))
46 # explicitly add -Wl,--as-needed, normally added by meson, but we want it for
47 # PGXS compatibility
48 var_ldflags = ' '.join(
49   ldflags
50   + cc.get_supported_link_arguments('-Wl,--as-needed')
51   + get_option('c_link_args')
53 var_ldflags_sl = ''.join(ldflags_sl)
54 var_ldflags_ex = '' # FIXME
55 # FIXME - some extensions might directly use symbols from one of libs. If
56 # that symbol isn't used by postgres, and statically linked, it'll cause an
57 # undefined symbol at runtime. And obviously it'll cause problems for
58 # executables, although those are probably less common.
59 var_libs = ''
62 pg_config_paths = configure_file(
63   output: 'pg_config_paths.h',
64   configuration: config_paths_data,
65   install: false,
67 configure_files += pg_config_paths
69 install_headers(
70   'pg_config_manual.h',
71   'postgres_ext.h',
74 install_headers(
75   'libpq/libpq-fs.h',
76   install_dir: dir_include / 'libpq',
79 install_headers(
80   'c.h',
81   'port.h',
82   'postgres_fe.h',
83   install_dir: dir_include_internal,
86 install_headers(
87   'libpq/pqcomm.h',
88   'libpq/protocol.h',
89   install_dir: dir_include_internal / 'libpq',
92 install_headers(
93   'c.h',
94   'fmgr.h',
95   'funcapi.h',
96   'getopt_long.h',
97   'miscadmin.h',
98   'pg_config_manual.h',
99   'pg_getopt.h',
100   'pg_trace.h',
101   'pgstat.h',
102   'pgtar.h',
103   'pgtime.h',
104   'port.h',
105   'postgres.h',
106   'postgres_ext.h',
107   'postgres_fe.h',
108   'varatt.h',
109   'windowapi.h',
110   pg_config_os,
111   pg_config,
112   install_dir: dir_include_server,
115 subdir('catalog')
116 subdir('nodes')
117 subdir('pch')
118 subdir('storage')
119 subdir('utils')
121 header_subdirs = [
122   'access',
123   'archive',
124   'catalog',
125   'bootstrap',
126   'commands',
127   'common',
128   'datatype',
129   'executor',
130   'fe_utils',
131   'foreign',
132   'jit',
133   'lib',
134   'libpq',
135   'mb',
136   'nodes',
137   'optimizer',
138   'parser',
139   'partitioning',
140   'postmaster',
141   'regex',
142   'replication',
143   'rewrite',
144   'statistics',
145   'storage',
146   'tcop',
147   'snowball',
148   'tsearch',
149   'utils',
150   'port',
151   'portability',
154 # XXX: installing headers this way has the danger of installing editor files
155 # etc, unfortunately install_subdir() doesn't allow including / excluding by
156 # pattern currently.
157 foreach d : header_subdirs
158   if d == 'catalog'
159     continue
160   endif
161   install_subdir(d, install_dir: dir_include_server,
162                  exclude_files: ['.gitignore', 'meson.build'])
163 endforeach
165 install_subdir('catalog',
166   install_dir: dir_include_server,
167   exclude_files: [
168     '.gitignore',
169     'Makefile',
170     'duplicate_oids',
171     'meson.build',
172     'reformat_dat_file.pl',
173     'renumber_oids.pl',
174     'unused_oids',
175   ] + bki_data,
178 # autoconf generates the file there, ensure we get a conflict
179 generated_sources_ac += {'src/include': ['stamp-h']}