diff options
author | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2021-05-05 12:01:11 +0200 |
---|---|---|
committer | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2021-05-05 12:01:11 +0200 |
commit | 8960f32b5ca7a805980de8154e9884caf4d1f767 (patch) | |
tree | fc3bb27413cdd4307ad583c9f2035e7f58d337aa | |
parent | de48a71cbb59d3ca85a41277f496cd907df79db2 (diff) | |
download | sigc++-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.build | 7 | ||||
-rw-r--r-- | docs/docs/manual/meson.build | 5 | ||||
-rw-r--r-- | docs/docs/reference/meson.build | 6 | ||||
-rw-r--r-- | meson.build | 13 | ||||
-rw-r--r-- | tools/handle-built-files.py | 7 | ||||
-rwxr-xr-x | tools/tutorial-custom-cmd.py | 7 |
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] |