summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-06 10:24:16 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-06 14:10:08 +0200
commite9312e279dd296708a52c5cf7ae02305c03f4209 (patch)
tree4abee4089d1436f90ef56ec981a8faeb2b7a3cb3
parentcontent: Improve CContent.doxyfy() (diff)
downloadrtems-central-e9312e279dd296708a52c5cf7ae02305c03f4209.tar.bz2
applconfig: Improve interface mappings
-rw-r--r--rtemsspec/applconfig.py29
-rw-r--r--rtemsspec/tests/spec-applconfig/a.yml4
-rw-r--r--rtemsspec/tests/spec-applconfig/define.yml14
-rw-r--r--rtemsspec/tests/spec-applconfig/unspec-define.yml8
-rw-r--r--rtemsspec/tests/spec/interface-more.yml12
-rw-r--r--rtemsspec/tests/test_applconfig.py12
6 files changed, 71 insertions, 8 deletions
diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py
index bd08c8c7..fc6f48bd 100644
--- a/rtemsspec/applconfig.py
+++ b/rtemsspec/applconfig.py
@@ -350,12 +350,16 @@ def _get_value_sphinx_reference(ctx: ItemGetValueContext) -> Any:
return _SPHINX_DOC_REFS[ctx.key]
+def _get_value_sphinx_define(ctx: ItemGetValueContext) -> Any:
+ return f":c:macro:`{ctx.value[ctx.key]}`"
+
+
def _get_value_sphinx_function(ctx: ItemGetValueContext) -> Any:
- return f"``{ctx.value[ctx.key]}()``"
+ return f":c:func:`{ctx.value[ctx.key]}`"
-def _get_value_sphinx_code(ctx: ItemGetValueContext) -> Any:
- return f"``{ctx.value[ctx.key]}``"
+def _get_value_sphinx_type(ctx: ItemGetValueContext) -> Any:
+ return f":c:type:`{ctx.value[ctx.key]}`"
def _add_sphinx_get_values(mapper: ItemMapper) -> None:
@@ -365,12 +369,19 @@ def _add_sphinx_get_values(mapper: ItemMapper) -> None:
mapper.add_get_value(doc_ref, _get_value_none)
mapper.add_get_value(f"{doc_ref}/{key}",
_get_value_sphinx_reference)
+ mapper.add_get_value("interface/define:/name", _get_value_sphinx_define)
mapper.add_get_value("interface/function:/name",
_get_value_sphinx_function)
mapper.add_get_value("interface/macro:/name", _get_value_sphinx_function)
- mapper.add_get_value("interface/struct:/name", _get_value_sphinx_code)
- mapper.add_get_value("interface/typedef:/name", _get_value_sphinx_code)
- mapper.add_get_value("interface/union:/name", _get_value_sphinx_code)
+ mapper.add_get_value("interface/struct:/name", _get_value_sphinx_type)
+ mapper.add_get_value("interface/typedef:/name", _get_value_sphinx_type)
+ mapper.add_get_value("interface/union:/name", _get_value_sphinx_type)
+ mapper.add_get_value("interface/unspecified-define:/name",
+ _get_value_sphinx_define)
+ mapper.add_get_value("interface/unspecified-function:/name",
+ _get_value_sphinx_function)
+ mapper.add_get_value("interface/unspecified-type:/name",
+ _get_value_sphinx_type)
def _c_user_ref(ref: str, name: str) -> str:
@@ -446,12 +457,18 @@ def _add_doxygen_get_values(mapper: ItemMapper) -> None:
_get_value_doxygen_reference)
name = f"interface/appl-config-option/{opt}:/name"
mapper.add_get_value(name, get_value_hash)
+ mapper.add_get_value("interface/define:/name", get_value_hash)
mapper.add_get_value("interface/function:/name",
get_value_doxygen_function)
mapper.add_get_value("interface/macro:/name", get_value_doxygen_function)
mapper.add_get_value("interface/struct:/name", get_value_double_colon)
mapper.add_get_value("interface/typedef:/name", get_value_double_colon)
mapper.add_get_value("interface/union:/name", get_value_double_colon)
+ mapper.add_get_value("interface/unspecified-define:/name", get_value_hash)
+ mapper.add_get_value("interface/unspecified-function:/name",
+ get_value_doxygen_function)
+ mapper.add_get_value("interface/unspecified-type:/name",
+ get_value_double_colon)
def generate(config: dict, item_cache: ItemCache) -> None:
diff --git a/rtemsspec/tests/spec-applconfig/a.yml b/rtemsspec/tests/spec-applconfig/a.yml
index bde070c0..514f0ce7 100644
--- a/rtemsspec/tests/spec-applconfig/a.yml
+++ b/rtemsspec/tests/spec-applconfig/a.yml
@@ -16,6 +16,10 @@ notes: |
* ${func:/name}
* ${td:/name}
+
+ * ${define:/name}
+
+ * ${unspec-define:/name}
appl-config-option-type: feature
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
diff --git a/rtemsspec/tests/spec-applconfig/define.yml b/rtemsspec/tests/spec-applconfig/define.yml
new file mode 100644
index 00000000..567de323
--- /dev/null
+++ b/rtemsspec/tests/spec-applconfig/define.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+brief: null
+definition:
+ default: ''
+ variants: []
+description: null
+name: DEFINE
+notes: null
+interface-type: define
+links: []
+type: interface
diff --git a/rtemsspec/tests/spec-applconfig/unspec-define.yml b/rtemsspec/tests/spec-applconfig/unspec-define.yml
new file mode 100644
index 00000000..e5831da4
--- /dev/null
+++ b/rtemsspec/tests/spec-applconfig/unspec-define.yml
@@ -0,0 +1,8 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+interface-type: unspecified-define
+links: []
+name: UNSPEC_DEFINE
+type: interface
diff --git a/rtemsspec/tests/spec/interface-more.yml b/rtemsspec/tests/spec/interface-more.yml
index deaf1e60..237232bf 100644
--- a/rtemsspec/tests/spec/interface-more.yml
+++ b/rtemsspec/tests/spec/interface-more.yml
@@ -67,6 +67,18 @@ links:
uid: interface
- role: spec-refinement
spec-key: interface-type
+ spec-value: unspecified-define
+ uid: interface
+- role: spec-refinement
+ spec-key: interface-type
+ spec-value: unspecified-function
+ uid: interface
+- role: spec-refinement
+ spec-key: interface-type
+ spec-value: unspecified-type
+ uid: interface
+- role: spec-refinement
+ spec-key: interface-type
spec-value: variable
uid: interface
spec-description: null
diff --git a/rtemsspec/tests/test_applconfig.py b/rtemsspec/tests/test_applconfig.py
index e98db813..59854761 100644
--- a/rtemsspec/tests/test_applconfig.py
+++ b/rtemsspec/tests/test_applconfig.py
@@ -82,9 +82,13 @@ NOTES:
* :ref:`Terminate`
- * ``func()``
+ * :c:func:`func`
- * ``td``
+ * :c:type:`td`
+
+ * :c:macro:`DEFINE`
+
+ * :c:macro:`UNSPEC_DEFINE`
.. index:: b
@@ -424,6 +428,10 @@ NOTES:
* * func()
*
* * ::td
+ *
+ * * #DEFINE
+ *
+ * * #UNSPEC_DEFINE
* @endparblock
*/
#define a