spl-core 8.1.2__tar.gz → 9.0.0rc1.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/PKG-INFO +7 -5
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/pyproject.toml +6 -6
- spl_core-9.0.0rc1.dev1/src/spl_core/__init__.py +1 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/common.cmake +57 -59
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kconfig/kconfig.py +272 -271
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/create.py +5 -6
- spl_core-9.0.0rc1.dev1/src/spl_core/kickstart/templates/application/src/greeter/src/greeter.h +15 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/bootstrap.json +1 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/build.ps1 +1 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/conf.py +4 -0
- spl_core-9.0.0rc1.dev1/src/spl_core/kickstart/templates/project/doc/_static/force-light-mermaid.js +2 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/components/index.md +0 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/index.md +0 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/pypeline.yaml +1 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/pyproject.toml +1 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/report_generation/spl_sphinx.py +1 -1
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/spl.cmake +3 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/steps/collect_pr_changes.py +5 -6
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/test_utils/archive_artifacts_collection.py +4 -5
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/test_utils/artifacts_archiver.py +19 -19
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/test_utils/base_variant_test_runner.py +9 -11
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/test_utils/junit_merger.py +1 -2
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/test_utils/spl_build.py +8 -8
- spl_core-8.1.2/src/spl_core/__init__.py +0 -1
- spl_core-8.1.2/src/spl_core/kickstart/templates/application/src/greeter/src/greeter.h +0 -6
- spl_core-8.1.2/src/spl_core/kickstart/templates/project/doc/Doxyfile.in +0 -2774
- spl_core-8.1.2/src/spl_core/kickstart/templates/project/doc/doxygen-awesome/LICENSE +0 -21
- spl_core-8.1.2/src/spl_core/kickstart/templates/project/doc/doxygen-awesome/doxygen-awesome.css +0 -2530
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/LICENSE +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/README.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/__run.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/common/__init__.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/common/path.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/conan.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/config/KConfig +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/gcov_maid/__init__.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/gcov_maid/gcov_maid.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kconfig/__init__.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kconfig.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/__init__.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/.vscode/cmake-variants.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/KConfig +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/greeter/CMakeLists.txt +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/greeter/doc/_images/screenshot.png +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/greeter/doc/index.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/greeter/src/greeter.c +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/greeter/test/test_greeter.cc +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/main/CMakeLists.txt +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/main/doc/index.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/src/main/src/main.c +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/test/EnglishVariant/test__EnglishVariant.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/test/German/test__GermanVariant.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/variants/EnglishVariant/config.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/variants/EnglishVariant/parts.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/variants/GermanVariant/config.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/variants/GermanVariant/config.txt +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/application/variants/GermanVariant/parts.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.gitignore +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.vscode/cmake-kits.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.vscode/extensions.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.vscode/launch.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.vscode/settings.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/.vscode/tasks.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/CMakeLists.txt +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/README.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/build.bat +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/common/index.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/common/sphinx_configuration.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/software_architecture/index.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/software_requirements/index.md +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/doc/test_report_template.txt +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/pytest.ini +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/scoopfile.json +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/tools/toolchains/clang/toolchain.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/kickstart/templates/project/tools/toolchains/gcc/toolchain.cmake +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/main.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/report_generation/__init__.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/report_generation/spl_html_settings.py +0 -0
- {spl_core-8.1.2 → spl_core-9.0.0rc1.dev1}/src/spl_core/report_generation/ubproject.toml +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spl-core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 9.0.0rc1.dev1
|
|
4
4
|
Summary: Software Product Line Support for CMake
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
Author: Avengineers
|
|
8
8
|
Author-email: karsten.guenther@kamg.de
|
|
9
|
-
Requires-Python: >=3.10,<3.
|
|
9
|
+
Requires-Python: >=3.10,<3.14
|
|
10
10
|
Classifier: Development Status :: 2 - Pre-Alpha
|
|
11
11
|
Classifier: Intended Audience :: Developers
|
|
12
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -15,17 +15,19 @@ Classifier: Operating System :: OS Independent
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
20
|
Classifier: Topic :: Software Development :: Libraries
|
|
21
|
+
Requires-Dist: clanguru (>=0,<1)
|
|
19
22
|
Requires-Dist: cookiecutter (==2.7.1)
|
|
20
|
-
Requires-Dist: doxysphinx (>=3.3,<4.0)
|
|
21
23
|
Requires-Dist: gcovr (>=8.6,<9.0)
|
|
22
24
|
Requires-Dist: hammocking (>=1.0,<2.0)
|
|
23
|
-
Requires-Dist: junitparser
|
|
25
|
+
Requires-Dist: junitparser
|
|
24
26
|
Requires-Dist: kconfiglib (>=14.1,<15.0)
|
|
25
27
|
Requires-Dist: mlx-traceability (>=10,<12)
|
|
26
28
|
Requires-Dist: myst-parser (>=0.16)
|
|
27
29
|
Requires-Dist: py-app-dev (>=2.1,<3.0)
|
|
28
|
-
Requires-Dist: py7zr (>=1.0,<2.0)
|
|
30
|
+
Requires-Dist: py7zr (>=1.1.0,<2.0.0)
|
|
29
31
|
Requires-Dist: pypeline-runner (>=1,<=2)
|
|
30
32
|
Requires-Dist: pypeline-semantic-release (>=0.5,<1.0)
|
|
31
33
|
Requires-Dist: sphinx (>=7.3,<9.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "spl-core"
|
|
3
|
-
version = "
|
|
3
|
+
version = "9.0.0-rc1.dev.1"
|
|
4
4
|
description = "Software Product Line Support for CMake"
|
|
5
5
|
authors = ["Avengineers <karsten.guenther@kamg.de>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -25,14 +25,14 @@ junit_merger = "spl_core.test_utils.junit_merger:main"
|
|
|
25
25
|
"Changelog" = "https://github.com/avengineers/spl-core/blob/develop/CHANGELOG.md"
|
|
26
26
|
|
|
27
27
|
[tool.poetry.dependencies]
|
|
28
|
-
python = ">=3.10,<3.
|
|
28
|
+
python = ">=3.10,<3.14"
|
|
29
29
|
py-app-dev = "^2.1"
|
|
30
30
|
cookiecutter = "==2.7.1"
|
|
31
31
|
gcovr = "^8.6"
|
|
32
32
|
hammocking = "^1.0"
|
|
33
|
+
clanguru = ">=0,<1"
|
|
33
34
|
kconfiglib = "^14.1"
|
|
34
35
|
typer = ">=0,<1"
|
|
35
|
-
doxysphinx = "^3.3"
|
|
36
36
|
sphinx = ">=7.3,<9.0"
|
|
37
37
|
sphinx-rtd-theme = ">=2,<4"
|
|
38
38
|
sphinxcontrib-mermaid = ">=0.9,<2.1"
|
|
@@ -49,8 +49,8 @@ sphinx-book-theme = "^1.1"
|
|
|
49
49
|
sphinx-design = ">=0.5,<0.7"
|
|
50
50
|
pypeline-semantic-release = ">=0.5,<1.0"
|
|
51
51
|
pypeline-runner = ">=1,<=2"
|
|
52
|
-
py7zr = "^1.0"
|
|
53
|
-
junitparser = "
|
|
52
|
+
py7zr = "^1.1.0"
|
|
53
|
+
junitparser = "*"
|
|
54
54
|
|
|
55
55
|
[tool.poetry.group.dev.dependencies]
|
|
56
56
|
pytest = ">=7,<10"
|
|
@@ -106,7 +106,7 @@ exclude_lines = [
|
|
|
106
106
|
]
|
|
107
107
|
|
|
108
108
|
[tool.ruff]
|
|
109
|
-
target-version = "
|
|
109
|
+
target-version = "py313"
|
|
110
110
|
line-length = 220
|
|
111
111
|
lint.ignore = [
|
|
112
112
|
"D203", # 1 blank line required before class docstring
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "9.0.0-rc1.dev.1"
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
# Option to run doxysphinx in sequential mode (avoids crashes on some systems).
|
|
2
|
-
# Can be set via:
|
|
3
|
-
# 1. CMake option: -DSPL_DOXYSPHINX_SEQUENTIAL=ON
|
|
4
|
-
# 2. Environment variable: SPL_DOXYSPHINX_SEQUENTIAL=ON (no project file changes needed)
|
|
5
|
-
# The environment variable takes precedence if set.
|
|
6
|
-
if(DEFINED ENV{SPL_DOXYSPHINX_SEQUENTIAL})
|
|
7
|
-
set(SPL_DOXYSPHINX_SEQUENTIAL "$ENV{SPL_DOXYSPHINX_SEQUENTIAL}" CACHE BOOL "Run doxysphinx build with --sequential option" FORCE)
|
|
8
|
-
endif()
|
|
9
|
-
|
|
10
|
-
option(SPL_DOXYSPHINX_SEQUENTIAL "Run doxysphinx build with --sequential option" OFF)
|
|
11
|
-
|
|
12
|
-
if(SPL_DOXYSPHINX_SEQUENTIAL)
|
|
13
|
-
set(SPL_DOXYSPHINX_EXTRA_ARGS "--sequential")
|
|
14
|
-
else()
|
|
15
|
-
set(SPL_DOXYSPHINX_EXTRA_ARGS "")
|
|
16
|
-
endif()
|
|
17
|
-
|
|
18
1
|
macro(_spl_slash_to_underscore out in)
|
|
19
2
|
string(REGEX REPLACE "/" "_" ${out} ${in})
|
|
20
3
|
endmacro()
|
|
@@ -319,6 +302,13 @@ macro(spl_create_component)
|
|
|
319
302
|
_spl_add_test_suite(${component_name} "${SOURCES}" "${TEST_SOURCES}")
|
|
320
303
|
endif()
|
|
321
304
|
|
|
305
|
+
# Generate source documentation using clanguru
|
|
306
|
+
set(_COMPONENT_SOURCE_DOCS_INCLUDE_PATTERN "")
|
|
307
|
+
set(_clanguru_all_sources ${SOURCES} ${TEST_SOURCES})
|
|
308
|
+
if(_clanguru_all_sources)
|
|
309
|
+
_spl_generate_clanguru_source_docs(${component_name} "${_clanguru_all_sources}")
|
|
310
|
+
endif()
|
|
311
|
+
|
|
322
312
|
set(_component_dir ${CMAKE_CURRENT_LIST_DIR})
|
|
323
313
|
set(_component_doc_dir ${_component_dir}/doc)
|
|
324
314
|
set(_component_test_junit_xml ${CMAKE_CURRENT_BINARY_DIR}/junit.xml)
|
|
@@ -401,27 +391,13 @@ Code Coverage
|
|
|
401
391
|
|
|
402
392
|
")
|
|
403
393
|
|
|
404
|
-
# generate Doxyfile from template
|
|
405
|
-
set(_component_doxyfile ${_component_reports_out_dir}/Doxyfile)
|
|
406
|
-
set(DOXYGEN_PROJECT_NAME "${CREATE_COMPONENT_LONG_NAME} Documentation")
|
|
407
|
-
set(DOXYGEN_OUTPUT_DIRECTORY ${_component_reports_out_dir}/doxygen)
|
|
408
|
-
set(DOXYGEN_INPUT "${_component_dir}/src ${_component_dir}/test ${KCONFIG_OUT_DIR}")
|
|
409
|
-
|
|
410
|
-
# We need to add the googletest include directory to the doxygen include path
|
|
411
|
-
# to be able to resolve the TEST() macros in the test files.
|
|
412
|
-
set(DOXYGEN_INCLUDE_PATH "${_sphinx_source_dir}/build/modules/googletest-src/googletest/include ${KCONFIG_OUT_DIR}")
|
|
413
|
-
set(DOXYGEN_AWESOME_PATH "${_sphinx_source_dir}/doc/doxygen-awesome")
|
|
414
|
-
configure_file(${_sphinx_source_dir}/doc/Doxyfile.in ${_component_doxyfile} @ONLY)
|
|
415
|
-
file(RELATIVE_PATH _rel_component_doxyfile ${CMAKE_CURRENT_BINARY_DIR} ${_component_doxyfile})
|
|
416
|
-
file(RELATIVE_PATH _rel_component_doxysphinx_index_rst ${_sphinx_source_dir} ${DOXYGEN_OUTPUT_DIRECTORY}/html/index)
|
|
417
|
-
|
|
418
394
|
file(WRITE ${_reports_config_json} "{
|
|
419
395
|
\"component_info\": ${_component_info},
|
|
420
396
|
\"include_patterns\": [\"${_rel_component_doc_dir}/**\",\"${_rel_component_reports_out_dir}/**\"]
|
|
421
397
|
}")
|
|
422
398
|
|
|
423
399
|
# add the generated files as dependency to cmake configure step
|
|
424
|
-
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${_reports_config_json} ${_unit_test_spec_rst} ${_unit_test_results_rst}
|
|
400
|
+
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${_reports_config_json} ${_unit_test_spec_rst} ${_unit_test_results_rst})
|
|
425
401
|
|
|
426
402
|
set(_cov_out_html reports/html/${_rel_component_reports_out_dir}/coverage/index.html)
|
|
427
403
|
file(RELATIVE_PATH _cov_out_json ${CMAKE_CURRENT_BINARY_DIR} ${_component_coverage_json})
|
|
@@ -435,32 +411,22 @@ Code Coverage
|
|
|
435
411
|
COMMENT "Generating component coverage html report ${_cov_out_html} ..."
|
|
436
412
|
)
|
|
437
413
|
|
|
438
|
-
# We need to have a separate component doxygen generation target because it is required
|
|
439
|
-
# by both the component and variant reports.
|
|
440
|
-
add_custom_target(
|
|
441
|
-
|
|
442
|
-
# No OUTPUT is defined to force execution of this target every time
|
|
443
|
-
${component_name}_doxygen
|
|
444
|
-
COMMAND ${CMAKE_COMMAND} -E make_directory ${_component_reports_out_dir}
|
|
445
|
-
COMMAND ${CMAKE_COMMAND} -E remove_directory ${DOXYGEN_OUTPUT_DIRECTORY}
|
|
446
|
-
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOXYGEN_OUTPUT_DIRECTORY}
|
|
447
|
-
COMMAND doxygen ${_rel_component_doxyfile}
|
|
448
|
-
)
|
|
449
|
-
|
|
450
414
|
# No OUTPUT is defined to force execution of this target every time
|
|
451
415
|
# TODO: list of dependencies is not complete
|
|
452
416
|
add_custom_target(
|
|
453
417
|
${component_name}_report
|
|
454
418
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${_component_reports_out_dir}
|
|
455
|
-
COMMAND doxysphinx build ${_sphinx_source_dir} ${_component_reports_html_out_dir} ${_rel_component_doxyfile} ${SPL_DOXYSPHINX_EXTRA_ARGS}
|
|
456
419
|
COMMAND ${CMAKE_COMMAND} -E env SPHINX_BUILD_CONFIGURATION_FILE=${_reports_config_json} AUTOCONF_JSON_FILE=${AUTOCONF_JSON} VARIANT=${VARIANT} -- sphinx-build -E -b html ${_sphinx_source_dir} ${_component_reports_html_out_dir}
|
|
457
420
|
BYPRODUCTS ${_component_reports_html_out_dir}/index.html
|
|
458
|
-
DEPENDS ${TEST_OUT_JUNIT} ${
|
|
421
|
+
DEPENDS ${TEST_OUT_JUNIT} ${_cov_out_html}
|
|
459
422
|
)
|
|
460
423
|
endif(TEST_SOURCES)
|
|
461
424
|
|
|
462
425
|
# Collect all component sphinx include pattern to be used in the variant targets (docs, reports)
|
|
463
426
|
list(APPEND COMPONENTS_SPHINX_INCLUDE_PATTERNS "${_rel_component_doc_dir}/**" "${_rel_component_docs_out_dir}/**" "${_rel_component_reports_out_dir}/**")
|
|
427
|
+
if(_COMPONENT_SOURCE_DOCS_INCLUDE_PATTERN)
|
|
428
|
+
list(APPEND COMPONENTS_SPHINX_INCLUDE_PATTERNS "${_COMPONENT_SOURCE_DOCS_INCLUDE_PATTERN}")
|
|
429
|
+
endif()
|
|
464
430
|
set(COMPONENTS_SPHINX_INCLUDE_PATTERNS ${COMPONENTS_SPHINX_INCLUDE_PATTERNS} PARENT_SCOPE)
|
|
465
431
|
endif(EXISTS ${_component_doc_dir}/index.rst OR EXISTS ${_component_doc_dir}/index.md)
|
|
466
432
|
endif(BUILD_KIT STREQUAL prod)
|
|
@@ -562,10 +528,8 @@ Code Coverage
|
|
|
562
528
|
|
|
563
529
|
")
|
|
564
530
|
|
|
565
|
-
# For every component we need to create specific coverage
|
|
531
|
+
# For every component we need to create specific coverage targets to make sure
|
|
566
532
|
# the output files are generated in the overall variant sphinx output directory.
|
|
567
|
-
# This will avoid the need to copy all the component coverage and doxygen files from the component
|
|
568
|
-
# directories to the variant directory.
|
|
569
533
|
foreach(component_info ${COMPONENTS_INFO})
|
|
570
534
|
string(JSON component_name GET ${component_info} name)
|
|
571
535
|
string(JSON component_path GET ${component_info} path)
|
|
@@ -583,15 +547,6 @@ Code Coverage
|
|
|
583
547
|
)
|
|
584
548
|
list(APPEND _components_coverage_html ${_cov_out_html})
|
|
585
549
|
|
|
586
|
-
set(_rel_component_doxyfile ${component_path}/reports/Doxyfile)
|
|
587
|
-
add_custom_target(
|
|
588
|
-
${component_name}_doxysphinx
|
|
589
|
-
COMMAND ${CMAKE_COMMAND} -E make_directory ${_variant_component_reports_out_dir}
|
|
590
|
-
COMMAND doxysphinx build ${PROJECT_SOURCE_DIR} ${_reports_html_output_dir} ${_rel_component_doxyfile} ${SPL_DOXYSPHINX_EXTRA_ARGS}
|
|
591
|
-
DEPENDS ${component_name}_doxygen
|
|
592
|
-
COMMENT "Generating variant component doxysphinx report ${component_name}_doxysphinx ..."
|
|
593
|
-
)
|
|
594
|
-
list(APPEND _components_variant_doxysphinx_targets ${component_name}_doxysphinx)
|
|
595
550
|
endif()
|
|
596
551
|
endforeach()
|
|
597
552
|
|
|
@@ -623,7 +578,7 @@ Code Coverage
|
|
|
623
578
|
# We need to call sphinx-build with -E to make sure all files are regenerated.
|
|
624
579
|
COMMAND ${CMAKE_COMMAND} -E env SPHINX_BUILD_CONFIGURATION_FILE=${_reports_config_json} AUTOCONF_JSON_FILE=${AUTOCONF_JSON} VARIANT=${VARIANT} -- sphinx-build -E -b html ${PROJECT_SOURCE_DIR} ${_reports_html_output_dir}
|
|
625
580
|
BYPRODUCTS ${_reports_html_output_dir}/index.html
|
|
626
|
-
DEPENDS ${JUNIT_OUT_VARIANT_XML} ${COV_OUT_VARIANT_JSON} _components_variant_coverage_html_target
|
|
581
|
+
DEPENDS ${JUNIT_OUT_VARIANT_XML} ${COV_OUT_VARIANT_JSON} _components_variant_coverage_html_target source_docs
|
|
627
582
|
)
|
|
628
583
|
endmacro()
|
|
629
584
|
|
|
@@ -835,6 +790,49 @@ macro(_spl_add_test_suite COMPONENT_NAME PROD_SRC TEST_SOURCES)
|
|
|
835
790
|
)
|
|
836
791
|
endmacro(_spl_add_test_suite)
|
|
837
792
|
|
|
793
|
+
macro(_spl_generate_clanguru_source_docs COMPONENT_NAME SRC_FILES)
|
|
794
|
+
if(NOT CLANGURU_EXECUTABLE)
|
|
795
|
+
find_program(CLANGURU_EXECUTABLE clanguru)
|
|
796
|
+
endif()
|
|
797
|
+
if(NOT CLANGURU_EXECUTABLE)
|
|
798
|
+
message(WARNING "clanguru not found, skipping source documentation generation")
|
|
799
|
+
return()
|
|
800
|
+
endif()
|
|
801
|
+
|
|
802
|
+
set(_clanguru_docs_out_dir ${CMAKE_CURRENT_BINARY_DIR}/source_docs)
|
|
803
|
+
set(_clanguru_doc_outputs "")
|
|
804
|
+
foreach(_src_file ${SRC_FILES})
|
|
805
|
+
get_filename_component(_src_name ${_src_file} NAME)
|
|
806
|
+
set(_doc_output ${_clanguru_docs_out_dir}/${_src_name}.rst)
|
|
807
|
+
add_custom_command(
|
|
808
|
+
OUTPUT ${_doc_output}
|
|
809
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory ${_clanguru_docs_out_dir}
|
|
810
|
+
COMMAND ${CLANGURU_EXECUTABLE} docs
|
|
811
|
+
--source-file ${_src_file}
|
|
812
|
+
--output-file ${_doc_output}
|
|
813
|
+
--compilation-database ${CLANGURU_COMPILE_COMMANDS}
|
|
814
|
+
--format rst
|
|
815
|
+
# Strip @rst/@endrst markers from generated RST so Sphinx can process directives directly
|
|
816
|
+
COMMAND python -c "import pathlib,re$<SEMICOLON> p=pathlib.Path(r'${_doc_output}')$<SEMICOLON> p.write_text(re.sub(r'(?m)^\\s*@(?:end)?rst\\s*$$','',p.read_text(encoding='utf-8')),encoding='utf-8')"
|
|
817
|
+
DEPENDS ${_src_file}
|
|
818
|
+
COMMENT "Generating RST docs for ${_src_name} (${COMPONENT_NAME})"
|
|
819
|
+
)
|
|
820
|
+
list(APPEND _clanguru_doc_outputs ${_doc_output})
|
|
821
|
+
endforeach()
|
|
822
|
+
|
|
823
|
+
if(_clanguru_doc_outputs)
|
|
824
|
+
add_custom_target(
|
|
825
|
+
${COMPONENT_NAME}_source_docs
|
|
826
|
+
DEPENDS ${_clanguru_doc_outputs}
|
|
827
|
+
)
|
|
828
|
+
add_dependencies(source_docs ${COMPONENT_NAME}_source_docs)
|
|
829
|
+
|
|
830
|
+
# Expose source_docs directory for Sphinx include patterns
|
|
831
|
+
file(RELATIVE_PATH _rel_clanguru_docs_out_dir ${PROJECT_SOURCE_DIR} ${_clanguru_docs_out_dir})
|
|
832
|
+
set(_COMPONENT_SOURCE_DOCS_INCLUDE_PATTERN "${_rel_clanguru_docs_out_dir}/**")
|
|
833
|
+
endif()
|
|
834
|
+
endmacro(_spl_generate_clanguru_source_docs)
|
|
835
|
+
|
|
838
836
|
macro(spl_add_conan_requires requirement)
|
|
839
837
|
list(APPEND CONAN__REQUIRES ${requirement})
|
|
840
838
|
endmacro(spl_add_conan_requires)
|