[glibmm/glibmm-2-66] Fix build as subproject without building documentation
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/glibmm-2-66] Fix build as subproject without building documentation
- Date: Sat, 15 May 2021 09:01:53 +0000 (UTC)
commit 6bbd4f953c4e193de36632ea317ac85b61318c89
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date: Sat May 15 10:51:03 2021 +0200
Fix build as subproject without building documentation
* meson.build: If mm-common-get is not found in maintainer-mode
with 'required: false', try with 'required: true'.
Don't try to use tag_file, if documentation is not built.
* docs/reference/meson.build: Don't use variables from modules
that don't define doxytagfile. These are subprojects that don't build
their documentation.
docs/reference/meson.build | 34 ++++++++++++++++++----------------
meson.build | 34 +++++++++++++++++++---------------
2 files changed, 37 insertions(+), 31 deletions(-)
---
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index 1f59bf1d..2eb5c84f 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -5,7 +5,7 @@
# glibmm_extra_h_files, giomm_extra_h_files, glibmm_built_h_file_targets,
# giomm_built_h_file_targets, glibmm_h_m4_files, install_datadir,
# python3, doc_reference_py, can_add_dist_script
-# Output: install_docdir, install_devhelpdir, tag_file
+# Output: install_docdir, install_devhelpdir, if build_documentation: tag_file
tag_file_modules = [
'mm-common-libstdc++',
@@ -16,21 +16,23 @@ docinstall_flags = []
foreach module : tag_file_modules
depmod = dependency(module, required: false)
if depmod.found()
- doxytagfile = depmod.get_variable(pkgconfig: 'doxytagfile', internal: 'doxytagfile')
- htmlrefpub = depmod.get_variable(pkgconfig: 'htmlrefpub', internal: 'htmlrefpub', default_value: '')
- htmlrefdir = depmod.get_variable(pkgconfig: 'htmlrefdir', internal: 'htmlrefdir', default_value: '')
- if htmlrefpub == ''
- htmlrefpub = htmlrefdir
- elif htmlrefdir == ''
- htmlrefdir = htmlrefpub
- endif
- doxygen_tagfiles += ' "' + doxytagfile + '=' + htmlrefpub + '"'
-
- # Doxygen <= 1.8.15
- docinstall_flags += ['-l', doxytagfile.split('/')[-1] + '@' + htmlrefdir]
- if htmlrefpub != htmlrefdir
- # Doxygen >= 1.8.16
- docinstall_flags += ['-l', 's@' + htmlrefpub + '@' + htmlrefdir]
+ doxytagfile = depmod.get_variable(pkgconfig: 'doxytagfile', internal: 'doxytagfile', default_value: '')
+ if doxytagfile != ''
+ htmlrefpub = depmod.get_variable(pkgconfig: 'htmlrefpub', internal: 'htmlrefpub', default_value: '')
+ htmlrefdir = depmod.get_variable(pkgconfig: 'htmlrefdir', internal: 'htmlrefdir', default_value: '')
+ if htmlrefpub == ''
+ htmlrefpub = htmlrefdir
+ elif htmlrefdir == ''
+ htmlrefdir = htmlrefpub
+ endif
+ doxygen_tagfiles += ' "' + doxytagfile + '=' + htmlrefpub + '"'
+
+ # Doxygen <= 1.8.15
+ docinstall_flags += ['-l', doxytagfile.split('/')[-1] + '@' + htmlrefdir]
+ if htmlrefpub != htmlrefdir
+ # Doxygen >= 1.8.16
+ docinstall_flags += ['-l', 's@' + htmlrefpub + '@' + htmlrefdir]
+ endif
endif
endif
endforeach
diff --git a/meson.build b/meson.build
index a29b8e3f..7849ce77 100644
--- a/meson.build
+++ b/meson.build
@@ -133,7 +133,11 @@ giomm_requires = ' '.join(giomm_requires)
# reference documentation shall be built.
mm_common_get = find_program('mm-common-get', required: false)
if maintainer_mode and not mm_common_get.found()
- error('mm-common-get not found. mm-common >= 1.0.0 is required.')
+ message('Maintainer mode requires the \'mm-common-get\' command. If it is not found,\n' +
+ 'install the \'mm-common\' package, version 1.0.0 or higher.')
+ # If meson --wrap-mode != forcefallback, Meson falls back to the mm-common
+ # subproject only if mm-common-get is required.
+ mm_common_get = find_program('mm-common-get', required: true)
endif
m4 = find_program('m4', required: maintainer_mode) # Used by gmmproc
perl = find_program('perl', required: maintainer_mode or build_documentation)
@@ -300,22 +304,22 @@ if meson.is_subproject()
pm_basefiles,
)
- glibmm_dep = declare_dependency(
- dependencies: glibmm_own_dep,
- variables: {
- 'gmmprocdir': gmmproc_subproj_dir,
- 'doxytagfile': tag_file.full_path(),
- 'htmlrefdir': install_prefix / install_docdir / 'reference' / 'html',
- 'htmlrefpub': 'http://library.gnome.org/devel/' + pkg_conf_data.get_unquoted('PACKAGE_TARNAME') +
'/unstable/'
- }
- )
+ pkgconfig_vars = {
+ 'htmlrefdir': install_prefix / install_docdir / 'reference' / 'html',
+ 'htmlrefpub': 'http://library.gnome.org/devel/' + pkg_conf_data.get_unquoted('PACKAGE_TARNAME') +
'/unstable/'
+ }
+ if build_documentation
+ pkgconfig_vars += {'doxytagfile': tag_file.full_path()}
+ endif
giomm_dep = declare_dependency(
dependencies: giomm_own_dep,
- variables: {
- 'doxytagfile': tag_file.full_path(),
- 'htmlrefdir': install_prefix / install_docdir / 'reference' / 'html',
- 'htmlrefpub': 'http://library.gnome.org/devel/' + pkg_conf_data.get_unquoted('PACKAGE_TARNAME') +
'/unstable/'
- }
+ variables: pkgconfig_vars,
+ )
+
+ pkgconfig_vars += {'gmmprocdir': gmmproc_subproj_dir}
+ glibmm_dep = declare_dependency(
+ dependencies: glibmm_own_dep,
+ variables: pkgconfig_vars,
)
# A main project that looks for glibmm_pcname.pc and giomm_pcname.pc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]