Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 58c908c

Browse files
anarazelCommitfest Bot
authored and
Commitfest Bot
committed
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 03c53a7 commit 58c908c

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
@@ -3124,6 +3124,8 @@ gen_export_kwargs = {
31243124
'install': false,
31253125
}
31263126

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

31283130

31293131
###
@@ -3241,14 +3243,14 @@ subdir('src/port')
32413243
frontend_common_code = declare_dependency(
32423244
compile_args: ['-DFRONTEND'],
32433245
include_directories: [postgres_inc],
3244-
sources: generated_headers,
3246+
sources: generated_headers_stamp,
32453247
dependencies: [os_deps, zlib, zstd, lz4],
32463248
)
32473249

32483250
backend_common_code = declare_dependency(
32493251
compile_args: ['-DBUILDING_DLL'],
32503252
include_directories: [postgres_inc],
3251-
sources: generated_headers,
3253+
sources: generated_headers_stamp,
32523254
dependencies: [os_deps, zlib, zstd],
32533255
)
32543256

@@ -3263,15 +3265,15 @@ shlib_code = declare_dependency(
32633265
frontend_stlib_code = declare_dependency(
32643266
include_directories: [postgres_inc],
32653267
link_with: [common_static, pgport_static],
3266-
sources: generated_headers,
3268+
sources: generated_headers_stamp,
32673269
dependencies: [os_deps, libintl],
32683270
)
32693271

32703272
# all shared libraries not part of the backend should depend on this
32713273
frontend_shlib_code = declare_dependency(
32723274
include_directories: [postgres_inc],
32733275
link_with: [common_shlib, pgport_shlib],
3274-
sources: generated_headers,
3276+
sources: generated_headers_stamp,
32753277
dependencies: [shlib_code, os_deps, libintl],
32763278
)
32773279

@@ -3281,7 +3283,7 @@ frontend_shlib_code = declare_dependency(
32813283
frontend_no_fe_utils_code = declare_dependency(
32823284
include_directories: [postgres_inc],
32833285
link_with: [common_static, pgport_static],
3284-
sources: generated_headers,
3286+
sources: generated_headers_stamp,
32853287
dependencies: [os_deps, libintl],
32863288
)
32873289

@@ -3308,7 +3310,7 @@ subdir('src/interfaces/libpq-oauth')
33083310
frontend_code = declare_dependency(
33093311
include_directories: [postgres_inc],
33103312
link_with: [fe_utils, common_static, pgport_static],
3311-
sources: generated_headers,
3313+
sources: generated_headers_stamp,
33123314
dependencies: [os_deps, libintl],
33133315
)
33143316

@@ -3338,7 +3340,7 @@ backend_code = declare_dependency(
33383340
include_directories: [postgres_inc],
33393341
link_args: ldflags_be,
33403342
link_with: [],
3341-
sources: generated_headers + generated_backend_headers,
3343+
sources: [generated_backend_headers_stamp],
33423344
dependencies: os_deps + backend_both_deps + backend_deps,
33433345
)
33443346

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)