forked from lix-project/lix
Merge "internal-api-docs: allow Doxygen to build regardless of workdir" into main
This commit is contained in:
commit
1bfc37fea5
|
@ -33,32 +33,7 @@ GENERATE_LATEX = NO
|
||||||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||||
# Note: If this tag is empty the current directory is searched.
|
# Note: If this tag is empty the current directory is searched.
|
||||||
|
|
||||||
# FIXME Make this list more maintainable somehow. We could maybe generate this
|
INPUT = @INPUT_PATHS@
|
||||||
# in the Makefile, but we would need to change how `.in` files are preprocessed
|
|
||||||
# so they can expand variables despite configure variables.
|
|
||||||
|
|
||||||
INPUT = \
|
|
||||||
src/libcmd \
|
|
||||||
src/libexpr \
|
|
||||||
src/libexpr/flake \
|
|
||||||
tests/unit/libexpr \
|
|
||||||
tests/unit/libexpr/value \
|
|
||||||
tests/unit/libexpr/test \
|
|
||||||
tests/unit/libexpr/test/value \
|
|
||||||
src/libexpr/value \
|
|
||||||
src/libfetchers \
|
|
||||||
src/libmain \
|
|
||||||
src/libstore \
|
|
||||||
src/libstore/build \
|
|
||||||
src/libstore/builtins \
|
|
||||||
tests/unit/libstore \
|
|
||||||
tests/unit/libstore/test \
|
|
||||||
src/libutil \
|
|
||||||
tests/unit/libutil \
|
|
||||||
tests/unit/libutil/test \
|
|
||||||
src/nix \
|
|
||||||
src/nix-env \
|
|
||||||
src/nix-store
|
|
||||||
|
|
||||||
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
|
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
|
||||||
# in the source code. If set to NO, only conditional compilation will be
|
# in the source code. If set to NO, only conditional compilation will be
|
||||||
|
@ -97,3 +72,15 @@ EXPAND_AS_DEFINED = \
|
||||||
DECLARE_WORKER_SERIALISER \
|
DECLARE_WORKER_SERIALISER \
|
||||||
DECLARE_SERVE_SERIALISER \
|
DECLARE_SERVE_SERIALISER \
|
||||||
LENGTH_PREFIXED_PROTO_HELPER
|
LENGTH_PREFIXED_PROTO_HELPER
|
||||||
|
|
||||||
|
# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
|
||||||
|
# Stripping is only done if one of the specified strings matches the left-hand
|
||||||
|
# part of the path. The tag can be used to show relative paths in the file list.
|
||||||
|
# If left blank the directory from which doxygen is run is used as the path to
|
||||||
|
# strip.
|
||||||
|
#
|
||||||
|
# Note that you can specify absolute paths here, but also relative paths, which
|
||||||
|
# will be relative from the directory where doxygen is started.
|
||||||
|
# This tag requires that the tag FULL_PATH_NAMES is set to YES.
|
||||||
|
|
||||||
|
STRIP_FROM_PATH = "@PROJECT_SOURCE_ROOT@"
|
||||||
|
|
|
@ -1,3 +1,35 @@
|
||||||
|
internal_api_sources = [
|
||||||
|
'src/libcmd',
|
||||||
|
'src/libexpr',
|
||||||
|
'src/libexpr/flake',
|
||||||
|
'tests/unit/libexpr',
|
||||||
|
'tests/unit/libexpr/value',
|
||||||
|
'tests/unit/libexpr/test',
|
||||||
|
'tests/unit/libexpr/test/value',
|
||||||
|
'src/libexpr/value',
|
||||||
|
'src/libfetchers',
|
||||||
|
'src/libmain',
|
||||||
|
'src/libstore',
|
||||||
|
'src/libstore/build',
|
||||||
|
'src/libstore/builtins',
|
||||||
|
'tests/unit/libstore',
|
||||||
|
'tests/unit/libstore/test',
|
||||||
|
'src/libutil',
|
||||||
|
'tests/unit/libutil',
|
||||||
|
'tests/unit/libutil/test',
|
||||||
|
'src/nix',
|
||||||
|
'src/nix-env',
|
||||||
|
'src/nix-store',
|
||||||
|
]
|
||||||
|
|
||||||
|
# We feed Doxygen absolute paths so it can be invoked from any working directory.
|
||||||
|
internal_api_sources_absolute = []
|
||||||
|
foreach src : internal_api_sources
|
||||||
|
internal_api_sources_absolute += '"' + (meson.project_source_root() / src) + '"'
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
internal_api_sources_oneline = ' \\\n '.join(internal_api_sources_absolute)
|
||||||
|
|
||||||
doxygen_cfg = configure_file(
|
doxygen_cfg = configure_file(
|
||||||
input : 'doxygen.cfg.in',
|
input : 'doxygen.cfg.in',
|
||||||
output : 'doxygen.cfg',
|
output : 'doxygen.cfg',
|
||||||
|
@ -5,22 +37,16 @@ doxygen_cfg = configure_file(
|
||||||
'PACKAGE_VERSION': meson.project_version(),
|
'PACKAGE_VERSION': meson.project_version(),
|
||||||
'RAPIDCHECK_HEADERS': rapidcheck_meson.get_variable('includedir'),
|
'RAPIDCHECK_HEADERS': rapidcheck_meson.get_variable('includedir'),
|
||||||
'docdir' : meson.current_build_dir(),
|
'docdir' : meson.current_build_dir(),
|
||||||
|
'INPUT_PATHS' : internal_api_sources_oneline,
|
||||||
|
'PROJECT_SOURCE_ROOT' : meson.project_source_root(),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
internal_api_docs = custom_target(
|
internal_api_docs = custom_target(
|
||||||
'internal-api-docs',
|
'internal-api-docs',
|
||||||
command : [
|
command : [
|
||||||
bash,
|
|
||||||
# Meson can you please just give us a `workdir` argument to custom targets...
|
|
||||||
'-c',
|
|
||||||
# We have to prefix the doxygen_cfg path with the project build root
|
|
||||||
# because of the cd in front.
|
|
||||||
'cd @0@ && @1@ @2@/@INPUT0@'.format(
|
|
||||||
meson.project_source_root(),
|
|
||||||
doxygen.full_path(),
|
doxygen.full_path(),
|
||||||
meson.project_build_root(),
|
'@INPUT0@',
|
||||||
),
|
|
||||||
],
|
],
|
||||||
input : [
|
input : [
|
||||||
doxygen_cfg,
|
doxygen_cfg,
|
||||||
|
|
Loading…
Reference in a new issue