Skip to content

Commit b57ddbe

Browse files
anarazelCommitfest Bot
authored andcommitted
meson: Add generated header stamps
Otherwise build commands become too long and this has visible effect on creation time of meson build files. Author: Andres Freund <andres@anarazel.de> Author: Nazir Bilal Yavuz <byavuz81@gmail.com> Discussion: https://postgr.es/m/206b001d-1884-4081-bd02-bed5c92f02ba%40eisentraut.org
1 parent 72e6c08 commit b57ddbe

File tree

4 files changed

+29
-9
lines changed

4 files changed

+29
-9
lines changed

meson.build

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3136,6 +3136,8 @@ gen_export_kwargs = {
31363136
'install': false,
31373137
}
31383138

3139+
# command to create stamp files on all OSs
3140+
stamp_cmd = [python, '-c', 'import sys; open(sys.argv[1], "w")', '@OUTPUT0@']
31393141

31403142

31413143
###
@@ -3253,14 +3255,14 @@ subdir('src/port')
32533255
frontend_common_code = declare_dependency(
32543256
compile_args: ['-DFRONTEND'],
32553257
include_directories: [postgres_inc],
3256-
sources: generated_headers,
3258+
sources: generated_headers_stamp,
32573259
dependencies: [os_deps, zlib, zstd, lz4],
32583260
)
32593261

32603262
backend_common_code = declare_dependency(
32613263
compile_args: ['-DBUILDING_DLL'],
32623264
include_directories: [postgres_inc],
3263-
sources: generated_headers,
3265+
sources: generated_headers_stamp,
32643266
dependencies: [os_deps, zlib, zstd],
32653267
)
32663268

@@ -3275,15 +3277,15 @@ shlib_code = declare_dependency(
32753277
frontend_stlib_code = declare_dependency(
32763278
include_directories: [postgres_inc],
32773279
link_with: [common_static, pgport_static],
3278-
sources: generated_headers,
3280+
sources: generated_headers_stamp,
32793281
dependencies: [os_deps, libintl],
32803282
)
32813283

32823284
# all shared libraries not part of the backend should depend on this
32833285
frontend_shlib_code = declare_dependency(
32843286
include_directories: [postgres_inc],
32853287
link_with: [common_shlib, pgport_shlib],
3286-
sources: generated_headers,
3288+
sources: generated_headers_stamp,
32873289
dependencies: [shlib_code, os_deps, libintl],
32883290
)
32893291

@@ -3293,7 +3295,7 @@ frontend_shlib_code = declare_dependency(
32933295
frontend_no_fe_utils_code = declare_dependency(
32943296
include_directories: [postgres_inc],
32953297
link_with: [common_static, pgport_static],
3296-
sources: generated_headers,
3298+
sources: generated_headers_stamp,
32973299
dependencies: [os_deps, libintl],
32983300
)
32993301

@@ -3320,7 +3322,7 @@ subdir('src/interfaces/libpq-oauth')
33203322
frontend_code = declare_dependency(
33213323
include_directories: [postgres_inc],
33223324
link_with: [fe_utils, common_static, pgport_static],
3323-
sources: generated_headers,
3325+
sources: generated_headers_stamp,
33243326
dependencies: [os_deps, libintl],
33253327
)
33263328

@@ -3350,7 +3352,7 @@ backend_code = declare_dependency(
33503352
include_directories: [postgres_inc],
33513353
link_args: ldflags_be,
33523354
link_with: [],
3353-
sources: generated_headers + generated_backend_headers,
3355+
sources: [generated_backend_headers_stamp],
33543356
dependencies: os_deps + backend_both_deps + backend_deps,
33553357
)
33563358

src/backend/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ backend_mod_code = declare_dependency(
169169
compile_args: pg_mod_c_args,
170170
include_directories: postgres_inc,
171171
link_args: pg_mod_link_args,
172-
sources: generated_headers + generated_backend_headers,
172+
sources: [generated_backend_headers_stamp],
173173
dependencies: backend_mod_deps,
174174
)
175175

src/fe_utils/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ generated_sources += psqlscan
2929
fe_utils_sources += psqlscan
3030

3131
fe_utils = static_library('libpgfeutils',
32-
fe_utils_sources + generated_headers,
32+
fe_utils_sources,
3333
c_pch: pch_postgres_fe_h,
3434
include_directories: [postgres_inc, libpq_inc],
3535
c_args: host_system == 'windows' ? ['-DFD_SETSIZE=1024'] : [],

src/include/meson.build

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,3 +177,21 @@ install_subdir('catalog',
177177

178178
# autoconf generates the file there, ensure we get a conflict
179179
generated_sources_ac += {'src/include': ['stamp-h']}
180+
181+
# Instead of having targets depending directly on the generated headers, have
182+
# them depend on a stamp files for all of them. Dependencies on headers are
183+
# implemented as order-only dependencies in meson (later using compiler
184+
# generated dependencies). The benefit of using a stamp file is that it makes
185+
# ninja.build smaller and meson setup faster.
186+
generated_headers_stamp = custom_target('generated-headers-stamp.h',
187+
output: 'generated-headers-stamp.h',
188+
input: generated_headers,
189+
command: stamp_cmd,
190+
)
191+
192+
generated_backend_headers_stamp = custom_target('generated-backend-headers-stamp.h',
193+
output: 'generated-backend-headers-stamp.h',
194+
input: generated_backend_headers,
195+
depends: generated_headers_stamp,
196+
command: stamp_cmd,
197+
)

0 commit comments

Comments
 (0)