summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2021-05-05 12:01:11 +0200
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2021-05-05 12:01:11 +0200
commit8960f32b5ca7a805980de8154e9884caf4d1f767 (patch)
treefc3bb27413cdd4307ad583c9f2035e7f58d337aa
parentde48a71cbb59d3ca85a41277f496cd907df79db2 (diff)
downloadsigc++-8960f32b5ca7a805980de8154e9884caf4d1f767.tar.gz
Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0
* meson.build: * MSVC_NMake/meson.build: * docs/docs/manual/meson.build: * docs/docs/reference/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/docs/manual/meson.build5
-rw-r--r--docs/docs/reference/meson.build6
-rw-r--r--meson.build13
-rw-r--r--tools/handle-built-files.py7
-rwxr-xr-xtools/tutorial-custom-cmd.py7
6 files changed, 26 insertions, 19 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/docs/manual/meson.build b/docs/docs/manual/meson.build
index a90bb09..59e67e4 100644
--- a/docs/docs/manual/meson.build
+++ b/docs/docs/manual/meson.build
@@ -1,7 +1,7 @@
# docs/docs/manual
# input: install_datadir, sigcxx_pcname, tutorial_custom_cmd, python3,
-# build_documentation, book_name
+# build_documentation, book_name, can_add_dist_script
# output: can_parse_and_validate, build_pdf_by_default, can_build_pdf,
# install_tutorialdir
@@ -77,9 +77,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/docs/reference/meson.build b/docs/docs/reference/meson.build
index 8bc659b..bdf944d 100644
--- a/docs/docs/reference/meson.build
+++ b/docs/docs/reference/meson.build
@@ -2,7 +2,8 @@
# Input: project_build_root, project_source_root, sigcxx_pcname,
# sigcxx_api_version, build_documentation, source_h_files,
-# hg_ccg_basenames, install_datadir, python3, doc_reference
+# hg_ccg_basenames, install_datadir, python3, doc_reference,
+# can_add_dist_script
# Output: install_docdir, install_devhelpdir, book_name, tag_file
# There are no built source files in libsigc++-3.0.
@@ -121,9 +122,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 5f636ff..ab1aee0 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('cmake')
subdir('MSVC_NMake')
subdir('sigc++')
@@ -228,22 +231,22 @@ subdir('tests')
subdir('docs/docs/reference')
subdir('docs/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/tools/handle-built-files.py b/tools/handle-built-files.py
index d6957ef..fc1f9b6 100644
--- a/tools/handle-built-files.py
+++ b/tools/handle-built-files.py
@@ -20,9 +20,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]