git-subtree-dir: xo-cmake git-subtree-mainline:c88807597egit-subtree-split:f510700b99
120 lines
2.9 KiB
Text
120 lines
2.9 KiB
Text
# Unit test build can't find library:
|
|
|
|
Missing dependency at link time
|
|
|
|
```
|
|
set(SELF_EXE mumble)
|
|
set(SELF_SRCS mumble.cpp)
|
|
|
|
xo_add_executable(${SELF_EXE} ${SELF_SRCS})
|
|
xo_self_dependency(${SELF_EXE} xo_foo)
|
|
```
|
|
|
|
and build fails with `cannot find -lxo_bar`.
|
|
|
|
Possible causes:
|
|
|
|
1. missing cmake export for a dependency of `xo_foo`.
|
|
Check `xo_foo/cmake/xo_fooConfig.cmake.in`:
|
|
|
|
If `xo_foo` depends on `xo_bar`, then cmake export
|
|
needs to have `find_dependency(xo_bar)`
|
|
|
|
```
|
|
@PACKAGE_INIT@
|
|
|
|
include(CMakeFindDependencyMacro)
|
|
find_dependency(xo_bar)
|
|
find_dependency(xo_maybemoar)
|
|
|
|
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
|
check_required_components("@PROJECT_NAME@")
|
|
```
|
|
|
|
# Howto introduce sphinx documentation to an XO project
|
|
|
|
REMINDER: must re-run `cmake` after introducing skeleton, since build copies files from docs/ to .build directory
|
|
|
|
Minimal skeleton for docs/ directory:
|
|
|
|
```
|
|
xo-foo
|
|
+- docs
|
|
+- CMakeLists.txt
|
|
+- conf.py
|
|
+- _static
|
|
+- index.rst
|
|
```
|
|
|
|
CMakeLists.txt:
|
|
```
|
|
# xo-foo/docs/CMakeLists.txt
|
|
|
|
xo_doxygen_collect_deps()
|
|
xo_docdir_doxygen_config()
|
|
xo_docdir_sphinx_config(
|
|
index.rst
|
|
)
|
|
```
|
|
|
|
conf.py:
|
|
```
|
|
# Configuration file for the Sphinx documentation builder.
|
|
#
|
|
# For the full list of built-in configuration values, see the documentation:
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
|
|
# -- Project information -----------------------------------------------------
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
|
|
project = 'xo jit documentation'
|
|
copyright = '2024, Roland Conybeare'
|
|
author = 'Roland Conybeare'
|
|
|
|
# -- General configuration ---------------------------------------------------
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
|
|
#extensions = []
|
|
extensions = [ "breathe",
|
|
"sphinx.ext.mathjax", # inline math
|
|
"sphinx.ext.autodoc", # generate info from docstrings
|
|
"sphinxcontrib.ditaa", # diagrams-through-ascii-art
|
|
"sphinxcontrib.plantuml" # text -> uml diagrams
|
|
]
|
|
|
|
# note: breathe requires doxygen xml output -> must have GENERATE_XML = YES in Doxyfile.in
|
|
# match project name in Doxyfile.in
|
|
breathe_default_project = "xodoxxml"
|
|
|
|
templates_path = ['_templates']
|
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
|
|
pygments_style = 'sphinx'
|
|
|
|
# -- Options for HTML output -------------------------------------------------
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
|
|
#html_theme = 'alabaster'
|
|
html_theme = 'sphinx_rtd_theme'
|
|
html_static_path = ['_static']
|
|
html_favicon = '_static/img/favicon.ico'
|
|
```
|
|
|
|
index.rst:
|
|
```
|
|
xo-foo documentation
|
|
====================
|
|
|
|
text here
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: xo-foo contents
|
|
|
|
genindex
|
|
search
|
|
```
|
|
|
|
_static:
|
|
|
|
copy from xo-unit/docs/_static. Just need .ico
|