summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2021-05-05 11:58:56 +0200
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2021-05-05 11:58:56 +0200
commit9e8a77a05e9de41abd227325727be8366a0af1cc (patch)
tree91fb5a036eda13a40b425b67a9e2278edcf914e7
parentff534ac90334051d2400f0fa0e126bfe8a4bb075 (diff)
downloadsigc++-9e8a77a05e9de41abd227325727be8366a0af1cc.tar.gz
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.
-rw-r--r--MSVC_NMake/meson.build7
-rw-r--r--docs/manual/meson.build5
-rw-r--r--docs/reference/meson.build5
-rw-r--r--meson.build13
-rw-r--r--sigc++/meson.build5
-rwxr-xr-xtools/handle-built-files.py7
-rwxr-xr-xtools/tutorial-custom-cmd.py7
7 files changed, 27 insertions, 22 deletions
diff --git a/MSVC_NMake/meson.build b/MSVC_NMake/meson.build
index da56141..f9ddc35 100644
--- a/MSVC_NMake/meson.build
+++ b/MSVC_NMake/meson.build
@@ -1,6 +1,7 @@
# MSVC_NMake
-# Input: pkg_conf_data, sigcxxconfig_h, project_build_root, python3
+# Input: pkg_conf_data, sigcxxconfig_h, project_build_root, python3,
+# can_add_dist_script
# Output: sigc_rc
sigc_rc = configure_file(
@@ -19,10 +20,8 @@ configure_file(
untracked_msvc_nmake = 'untracked' / 'MSVC_NMake'
handle_built_files = project_source_root / 'tools' / 'handle-built-files.py'
-if not meson.is_subproject()
+if can_add_dist_script
# Distribute built files.
- # (add_dist_script() is not allowed in a subproject)
-
meson.add_dist_script(
python3.path(), handle_built_files, 'dist_gen_msvc_files',
meson.current_build_dir(),
diff --git a/docs/manual/meson.build b/docs/manual/meson.build
index 5b64636..63ac751 100644
--- a/docs/manual/meson.build
+++ b/docs/manual/meson.build
@@ -1,7 +1,7 @@
# docs/manual
# input: install_datadir, sigcxx_pcname, tutorial_custom_cmd, python3,
-# build_documentation, install_docdir
+# build_documentation, install_docdir, can_add_dist_script
# output: can_parse_and_validate, build_pdf_by_default, can_build_pdf,
# install_tutorialdir
@@ -82,9 +82,8 @@ if can_build_pdf
)
endif
-if not meson.is_subproject()
+if can_add_dist_script
# Distribute built files.
- # (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), tutorial_custom_cmd, 'dist_doc',
doc_dist_dir,
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index c968bfe..669da3e 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -3,7 +3,7 @@
# Input: built_files_root, project_source_root, sigcxx_pcname,
# sigcxx_api_version, build_documentation, source_h_files,
# built_h_files, install_datadir, python3, doc_reference,
-# built_h_file_targets
+# built_h_file_targets, can_add_dist_script
# Output: install_docdir, install_devhelpdir, tag_file
tag_file_modules = [
@@ -139,9 +139,8 @@ meson.add_install_script(
docinstall_flags
)
-if not meson.is_subproject()
+if can_add_dist_script
# Distribute built files and files copied by mm-common-get.
- # (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), doc_reference, 'dist_doc',
doctool_dir,
diff --git a/meson.build b/meson.build
index 7eb97aa..66c4c07 100644
--- a/meson.build
+++ b/meson.build
@@ -220,6 +220,9 @@ sigcxxconfig_h = configure_file(
install_dir: install_includeconfigdir,
)
+# add_dist_script() is not allowed in a subproject if meson.version() < 0.58.0.
+can_add_dist_script = not meson.is_subproject() or meson.version().version_compare('>= 0.58.0')
+
subdir('MSVC_NMake')
subdir('sigc++')
subdir('examples')
@@ -227,22 +230,22 @@ subdir('tests')
subdir('docs/reference')
subdir('docs/manual')
-if not meson.is_subproject()
+if can_add_dist_script
# Add a ChangeLog file to the distribution directory.
- # (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), dist_changelog,
project_source_root,
)
# Add build scripts to the distribution directory, and delete .gitignore
- # files and an empty $MESON_DIST_ROOT/build/ directory.
+ # files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory.
meson.add_dist_script(
python3.path(), dist_build_scripts,
project_source_root,
'untracked' / 'build_scripts',
)
-else
- # This is a subproject.
+endif
+
+if meson.is_subproject()
sigcxx_dep = declare_dependency(
dependencies: sigcxx_own_dep,
variables: {
diff --git a/sigc++/meson.build b/sigc++/meson.build
index 7fd8293..37ec079 100644
--- a/sigc++/meson.build
+++ b/sigc++/meson.build
@@ -2,7 +2,7 @@
# Input: sigcxx_build_dep, sigcxx_pcname, sigcxx_libversion, sigcxx_api_version,
# install_includedir, project_source_root, sigc_res, python3,
-# handle_built_files, maintainer_mode
+# handle_built_files, maintainer_mode, can_add_dist_script
# Output: source_h_files, built_h_files, sigcxx_own_dep, built_files_root,
# built_h_file_targets
@@ -173,9 +173,8 @@ meson.add_install_script(
built_h_files,
)
-if not meson.is_subproject()
+if can_add_dist_script
# Distribute built files.
- # (add_dist_script() is not allowed in a subproject)
meson.add_dist_script(
python3.path(), handle_built_files, 'dist_built_files',
built_h_cc_dir,
diff --git a/tools/handle-built-files.py b/tools/handle-built-files.py
index 0bd66cd..eab3a46 100755
--- a/tools/handle-built-files.py
+++ b/tools/handle-built-files.py
@@ -69,9 +69,12 @@ def dist_built_files(is_msvc_files=False):
# <built_h_cc_dir> <dist_dir> <built_files>...
# <built_h_cc_dir> is an absolute path in the build directory or source directory.
- # <dist_dir> is a distribution directory, relative to MESON_DIST_ROOT.
+ # <dist_dir> is a distribution directory, relative to MESON_PROJECT_DIST_ROOT.
+
+ # MESON_PROJECT_DIST_ROOT is set only if meson.version() >= 0.58.0.
+ project_dist_root = os.getenv('MESON_PROJECT_DIST_ROOT', os.getenv('MESON_DIST_ROOT'))
built_h_cc_dir = sys.argv[2]
- dist_dir_root = os.path.join(os.getenv('MESON_DIST_ROOT'), sys.argv[3])
+ dist_dir_root = os.path.join(project_dist_root, sys.argv[3])
dist_dir = dist_dir_root
# Distribute .h and .cc files built from .m4 files, or generated MSVC files.
diff --git a/tools/tutorial-custom-cmd.py b/tools/tutorial-custom-cmd.py
index 85b22e7..a99521a 100755
--- a/tools/tutorial-custom-cmd.py
+++ b/tools/tutorial-custom-cmd.py
@@ -132,11 +132,14 @@ def dist_doc():
# argv[2] argv[3] argv[4] argv[5]
# <doc_dist_dir> <doc_build_dir> <xml_file> <pdf_file>
- # <doc_dist_dir> is a distribution directory, relative to MESON_DIST_ROOT.
+ # <doc_dist_dir> is a distribution directory, relative to MESON_PROJECT_DIST_ROOT.
# <doc_build_dir> is a relative or absolute path in the build directory.
# <xml_file> is a relative or absolute path in the source directory.
# <pdf_file> is a relative or absolute path in the build directory.
- doc_dist_dir = os.path.join(os.getenv('MESON_DIST_ROOT'), sys.argv[2])
+
+ # MESON_PROJECT_DIST_ROOT is set only if meson.version() >= 0.58.0.
+ project_dist_root = os.getenv('MESON_PROJECT_DIST_ROOT', os.getenv('MESON_DIST_ROOT'))
+ doc_dist_dir = os.path.join(project_dist_root, sys.argv[2])
doc_build_dir = sys.argv[3]
xml_file = sys.argv[4]
pdf_file = sys.argv[5]