Skip to content

Commit 9e8a77a

Browse files
committed
Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0
* meson.build: * MSVC_NMake/meson.build: * docs/manual/meson.build: * docs/reference/meson.build: * sigc++/meson.build: Call add_dist_script() in a subproject, if meson.version() >= 0.58.0. * tools/handle-built-files.py: * tools/tutorial-custom-cmd.py: Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT. It exists if meson.version() >= 0.58.0.
1 parent ff534ac commit 9e8a77a

File tree

7 files changed

+27
-22
lines changed

7 files changed

+27
-22
lines changed

MSVC_NMake/meson.build

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# MSVC_NMake
22

3-
# Input: pkg_conf_data, sigcxxconfig_h, project_build_root, python3
3+
# Input: pkg_conf_data, sigcxxconfig_h, project_build_root, python3,
4+
# can_add_dist_script
45
# Output: sigc_rc
56

67
sigc_rc = configure_file(
@@ -19,10 +20,8 @@ configure_file(
1920
untracked_msvc_nmake = 'untracked' / 'MSVC_NMake'
2021
handle_built_files = project_source_root / 'tools' / 'handle-built-files.py'
2122

22-
if not meson.is_subproject()
23+
if can_add_dist_script
2324
# Distribute built files.
24-
# (add_dist_script() is not allowed in a subproject)
25-
2625
meson.add_dist_script(
2726
python3.path(), handle_built_files, 'dist_gen_msvc_files',
2827
meson.current_build_dir(),

docs/manual/meson.build

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# docs/manual
22

33
# input: install_datadir, sigcxx_pcname, tutorial_custom_cmd, python3,
4-
# build_documentation, install_docdir
4+
# build_documentation, install_docdir, can_add_dist_script
55
# output: can_parse_and_validate, build_pdf_by_default, can_build_pdf,
66
# install_tutorialdir
77

@@ -82,9 +82,8 @@ if can_build_pdf
8282
)
8383
endif
8484

85-
if not meson.is_subproject()
85+
if can_add_dist_script
8686
# Distribute built files.
87-
# (add_dist_script() is not allowed in a subproject)
8887
meson.add_dist_script(
8988
python3.path(), tutorial_custom_cmd, 'dist_doc',
9089
doc_dist_dir,

docs/reference/meson.build

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Input: built_files_root, project_source_root, sigcxx_pcname,
44
# sigcxx_api_version, build_documentation, source_h_files,
55
# built_h_files, install_datadir, python3, doc_reference,
6-
# built_h_file_targets
6+
# built_h_file_targets, can_add_dist_script
77
# Output: install_docdir, install_devhelpdir, tag_file
88

99
tag_file_modules = [
@@ -139,9 +139,8 @@ meson.add_install_script(
139139
docinstall_flags
140140
)
141141

142-
if not meson.is_subproject()
142+
if can_add_dist_script
143143
# Distribute built files and files copied by mm-common-get.
144-
# (add_dist_script() is not allowed in a subproject)
145144
meson.add_dist_script(
146145
python3.path(), doc_reference, 'dist_doc',
147146
doctool_dir,

meson.build

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,29 +220,32 @@ sigcxxconfig_h = configure_file(
220220
install_dir: install_includeconfigdir,
221221
)
222222

223+
# add_dist_script() is not allowed in a subproject if meson.version() < 0.58.0.
224+
can_add_dist_script = not meson.is_subproject() or meson.version().version_compare('>= 0.58.0')
225+
223226
subdir('MSVC_NMake')
224227
subdir('sigc++')
225228
subdir('examples')
226229
subdir('tests')
227230
subdir('docs/reference')
228231
subdir('docs/manual')
229232

230-
if not meson.is_subproject()
233+
if can_add_dist_script
231234
# Add a ChangeLog file to the distribution directory.
232-
# (add_dist_script() is not allowed in a subproject)
233235
meson.add_dist_script(
234236
python3.path(), dist_changelog,
235237
project_source_root,
236238
)
237239
# Add build scripts to the distribution directory, and delete .gitignore
238-
# files and an empty $MESON_DIST_ROOT/build/ directory.
240+
# files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory.
239241
meson.add_dist_script(
240242
python3.path(), dist_build_scripts,
241243
project_source_root,
242244
'untracked' / 'build_scripts',
243245
)
244-
else
245-
# This is a subproject.
246+
endif
247+
248+
if meson.is_subproject()
246249
sigcxx_dep = declare_dependency(
247250
dependencies: sigcxx_own_dep,
248251
variables: {

sigc++/meson.build

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Input: sigcxx_build_dep, sigcxx_pcname, sigcxx_libversion, sigcxx_api_version,
44
# install_includedir, project_source_root, sigc_res, python3,
5-
# handle_built_files, maintainer_mode
5+
# handle_built_files, maintainer_mode, can_add_dist_script
66
# Output: source_h_files, built_h_files, sigcxx_own_dep, built_files_root,
77
# built_h_file_targets
88

@@ -173,9 +173,8 @@ meson.add_install_script(
173173
built_h_files,
174174
)
175175

176-
if not meson.is_subproject()
176+
if can_add_dist_script
177177
# Distribute built files.
178-
# (add_dist_script() is not allowed in a subproject)
179178
meson.add_dist_script(
180179
python3.path(), handle_built_files, 'dist_built_files',
181180
built_h_cc_dir,

tools/handle-built-files.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ def dist_built_files(is_msvc_files=False):
6969
# <built_h_cc_dir> <dist_dir> <built_files>...
7070

7171
# <built_h_cc_dir> is an absolute path in the build directory or source directory.
72-
# <dist_dir> is a distribution directory, relative to MESON_DIST_ROOT.
72+
# <dist_dir> is a distribution directory, relative to MESON_PROJECT_DIST_ROOT.
73+
74+
# MESON_PROJECT_DIST_ROOT is set only if meson.version() >= 0.58.0.
75+
project_dist_root = os.getenv('MESON_PROJECT_DIST_ROOT', os.getenv('MESON_DIST_ROOT'))
7376
built_h_cc_dir = sys.argv[2]
74-
dist_dir_root = os.path.join(os.getenv('MESON_DIST_ROOT'), sys.argv[3])
77+
dist_dir_root = os.path.join(project_dist_root, sys.argv[3])
7578
dist_dir = dist_dir_root
7679

7780
# Distribute .h and .cc files built from .m4 files, or generated MSVC files.

tools/tutorial-custom-cmd.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,14 @@ def dist_doc():
132132
# argv[2] argv[3] argv[4] argv[5]
133133
# <doc_dist_dir> <doc_build_dir> <xml_file> <pdf_file>
134134

135-
# <doc_dist_dir> is a distribution directory, relative to MESON_DIST_ROOT.
135+
# <doc_dist_dir> is a distribution directory, relative to MESON_PROJECT_DIST_ROOT.
136136
# <doc_build_dir> is a relative or absolute path in the build directory.
137137
# <xml_file> is a relative or absolute path in the source directory.
138138
# <pdf_file> is a relative or absolute path in the build directory.
139-
doc_dist_dir = os.path.join(os.getenv('MESON_DIST_ROOT'), sys.argv[2])
139+
140+
# MESON_PROJECT_DIST_ROOT is set only if meson.version() >= 0.58.0.
141+
project_dist_root = os.getenv('MESON_PROJECT_DIST_ROOT', os.getenv('MESON_DIST_ROOT'))
142+
doc_dist_dir = os.path.join(project_dist_root, sys.argv[2])
140143
doc_build_dir = sys.argv[3]
141144
xml_file = sys.argv[4]
142145
pdf_file = sys.argv[5]

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy