# 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