diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/meson.build | 2 | ||||
-rw-r--r-- | src/fe_utils/meson.build | 2 | ||||
-rw-r--r-- | src/include/meson.build | 21 |
3 files changed, 23 insertions, 2 deletions
diff --git a/src/backend/meson.build b/src/backend/meson.build index 2b0db214804..b831a541652 100644 --- a/src/backend/meson.build +++ b/src/backend/meson.build @@ -169,7 +169,7 @@ backend_mod_code = declare_dependency( compile_args: pg_mod_c_args, include_directories: postgres_inc, link_args: pg_mod_link_args, - sources: generated_headers + generated_backend_headers, + sources: generated_backend_headers_stamp, dependencies: backend_mod_deps, ) diff --git a/src/fe_utils/meson.build b/src/fe_utils/meson.build index a18cbc939e4..5a9ddb73463 100644 --- a/src/fe_utils/meson.build +++ b/src/fe_utils/meson.build @@ -29,7 +29,7 @@ generated_sources += psqlscan fe_utils_sources += psqlscan fe_utils = static_library('libpgfeutils', - fe_utils_sources + generated_headers, + fe_utils_sources, c_pch: pch_postgres_fe_h, include_directories: [postgres_inc, libpq_inc], c_args: host_system == 'windows' ? ['-DFD_SETSIZE=1024'] : [], diff --git a/src/include/meson.build b/src/include/meson.build index 2e4b7aa529e..7cb3075da2a 100644 --- a/src/include/meson.build +++ b/src/include/meson.build @@ -177,3 +177,24 @@ install_subdir('catalog', # autoconf generates the file there, ensure we get a conflict generated_sources_ac += {'src/include': ['stamp-h']} + + +# Instead of having targets depending directly on a list of all generated +# headers, have them depend on a stamp files for all of them. Dependencies on +# headers are implemented as order-only dependencies in meson (and then using +# compiler generated dependencies during incremental rebuilds ). The benefit +# of using a stamp file is that it makes ninja.build considerably smaller and +# meson setup faster, as otherwise the list of headers is repeated for every C +# file, bloating build.ninja by ~2x. +generated_headers_stamp = custom_target('generated-headers-stamp.h', + output: 'generated-headers-stamp.h', + input: generated_headers, + command: stamp_cmd, +) + +generated_backend_headers_stamp = custom_target('generated-backend-headers-stamp.h', + output: 'generated-backend-headers-stamp.h', + input: generated_backend_headers, + depends: generated_headers_stamp, + command: stamp_cmd, +) |