10000 meson: add generated header stamps · nbyavuz/postgres@61dddce · GitHub
[go: up one dir, main page]

Skip to content

Commit 61dddce

Browse files
committed
meson: add generated header stamps
1 parent 70ea4de commit 61dddce

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

meson.build

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2700,6 +2700,8 @@ gen_export_kwargs = {
27002700
'install': false,
27012701
}
27022702

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

27042706

27052707
###
@@ -2817,14 +2819,14 @@ subdir('src/port')
28172819
frontend_common_code = declare_dependency(
28182820
compile_args: ['-DFRONTEND'],
28192821
include_directories: [postgres_inc],
2820-
sources: generated_headers,
2822+
sources: generated_headers_stamp,
28212823
dependencies: [os_deps, zlib, zstd],
28222824
)
28232825

28242826
backend_common_code = declare_dependency(
28252827
compile_args: ['-DBUILDING_DLL'],
28262828
include_directories: [postgres_inc],
2827-
sources: generated_headers,
2829+
sources: generated_headers_stamp,
28282830
dependencies: [os_deps, zlib, zstd],
28292831
)
28302832

@@ -2839,15 +2841,15 @@ shlib_code = declare_dependency(
28392841
frontend_stlib_code = declare_dependency(
28402842
include_directories: [postgres_inc],
28412843
link_with: [common_static, pgport_static],
2842-
sources: generated_headers,
2844+
sources: generated_headers_stamp,
28432845
dependencies: [os_deps, libintl],
28442846
)
28452847

28462848
# all shared libraries not part of the backend should depend on this
28472849
frontend_shlib_code = declare_dependency(
28482850
include_directories: [postgres_inc],
28492851
link_with: [common_shlib, pgport_shlib],
2850-
sources: generated_headers,
2852+
sources: generated_headers_stamp,
28512853
dependencies: [shlib_code, os_deps, libintl],
28522854
)
28532855

@@ -2869,7 +2871,7 @@ subdir('src/fe_utils')
28692871
frontend_code = declare_dependency(
28702872
include_directories: [postgres_inc],
28712873
link_with: [fe_utils, common_static, pgport_static],
2872-
sources: generated_headers,
2874+
sources: generated_headers_stamp,
28732875
dependencies: [os_deps, libintl],
28742876
)
28752877

@@ -2897,7 +2899,7 @@ backend_code = declare_dependency(
28972899
include_directories: [postgres_inc],
28982900
link_args: ldflags_be,
28992901
link_with: [],
2900-
sources: generated_headers + generated_backend_headers,
2902+
sources: [generated_backend_headers_stamp],
29012903
dependencies: os_deps + backend_both_deps + backend_deps,
29022904
)
29032905

src/backend/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ backend_mod_code = declare_dependency(
184184
compile_args: pg_mod_c_args,
185185
include_directories: postgres_inc,
186186
link_args: pg_mod_link_args,
187-
sources: 10000 generated_headers + generated_backend_headers,
187+
sources: [generated_backend_headers_stamp],
188188
dependencies: backend_mod_deps,
189189
)
190190

src/fe_utils/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ generated_sources += psqlscan
2424
fe_utils_sources += psqlscan
2525

2626
fe_utils = static_library('libpgfeutils',
27-
fe_utils_sources + generated_headers,
27+
fe_utils_sources,
2828
c_pch: pch_postgres_fe_h,
2929
include_directories: [postgres_inc, libpq_inc],
3030
c_args: host_system == 'windows' ? ['-DFD_SETSIZE=1024'] : [],

src/include/meson.build

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,3 +187,22 @@ install_subdir('catalog',
187187

188188
# autoconf generates the file there, ensure we get a conflict
189189
generated_sources_ac += {'src/include': ['stamp-h', 'stamp-ext-h']}
190+
191+
192+
# Instead of having targets depending directly on the generated headers, have
193+
# them depend on a stamp files for all of them. Dependencies on headers are
194+
# implemented as order-only dependencies in meson (later using compiler
195+
# generated dependencies). The benefit of using a stamp file is that it makes
196+
# ninja.build smaller and meson setup faster.
197+
generated_headers_stamp = custom_target('generated-headers-stamp.h',
198+
output: 'generated-headers-stamp.h',
199+
input: generated_headers,
200+
command: stamp_cmd,
201+
)
202+
203+
generated_backend_headers_stamp = custom_target('generated-backend-headers-stamp.h',
204+
output: 'generated-backend-headers-stamp.h',
205+
input: generated_backend_headers,
206+
depends: generated_headers_stamp,
207+
command: stamp_cmd,
208+
)

0 commit comments

Comments
 (0)
0