96 lines
2.1 KiB
ReStructuredText
96 lines
2.1 KiB
ReStructuredText
.. _install:
|
|
|
|
.. toctree
|
|
:maxdepth: 2
|
|
|
|
Install
|
|
=======
|
|
|
|
``xo-tokenizer`` uses supporting library ``xo-tokenizer`` and cmake macros ``xo-cmake``.
|
|
These are on github:
|
|
|
|
- `xo-tokenizer source`_ (Schematika tokenizer)
|
|
- `xo-indentlog source`_ (structured logging)
|
|
- `xo-cmake source`_ (shared cmake macros)
|
|
|
|
.. _xo-tokenizer source: https://github.com/rconybea/xo-tokenizer
|
|
.. _xo-indentlog source: https://github.com/rconybea/xo-indentlog
|
|
.. _xo-cmake source: https://github.com/rconybea/xo-cmake
|
|
|
|
Installing from source
|
|
----------------------
|
|
|
|
Install scripts for `xo-tokenizer` and `xo-indentlog` depend on helper scripts installed from `xo-cmake`.
|
|
|
|
Preamble:
|
|
|
|
.. code-block:: bash
|
|
|
|
mkdir -p ~/proj/xo
|
|
cd ~/proj/xo
|
|
|
|
git clone https://github.com/rconybea/xo-cmake
|
|
|
|
PREFIX=/usr/local # ..or desired installation prefix
|
|
|
|
# want PREFIX/bin in PATH to use xo-cmake helpers
|
|
PATH=$PREFIX/bin:$PATH
|
|
|
|
Install `xo-cmake`:
|
|
|
|
.. code-block:: bash
|
|
|
|
cmake -B xo-cmake/.build -S xo-cmake
|
|
cmake --build xo-cmake/.build -j # placeholder, can omit for now
|
|
cmake --install xo-cmake/.build
|
|
|
|
Install `xo-indentlog`:
|
|
|
|
.. code-block:: bash
|
|
|
|
xo-build --clone --configure --build --install indentlog
|
|
|
|
Install `xo-tokenizer`:
|
|
|
|
.. code-block:: bash
|
|
|
|
xo-build --clone --configure --build --install xo-tokenizer
|
|
|
|
Directories under ``PREFIX`` will then contain:
|
|
|
|
.. code-block::
|
|
|
|
PREFIX
|
|
+- bin
|
|
| +- xo-build
|
|
| +- xo-cmake-config
|
|
| \- xo-cmake-lcov-harness
|
|
+- include
|
|
| \- xo
|
|
| +- indentlog/
|
|
| \- tokenizer/
|
|
+- lib
|
|
| \- cmake
|
|
| +- indentlog/
|
|
| \- xo_tokenizer/
|
|
+- share
|
|
\- cmake
|
|
\- xo_macros
|
|
+- Doxyfile.in
|
|
+- gen-ccov.in
|
|
\- xo-bootstrap-macros.cmake
|
|
|
|
Use CMake Support
|
|
-----------------
|
|
|
|
To use built-in cmake suport, when using ``xo-tokenizer`` from another project:
|
|
|
|
Make sure ``PREFIX/lib/cmake`` is searched by cmake (if necessary, include it in ``CMAKE_PREFIX_PATH``)
|
|
|
|
Add to ``CMakeLists.txt``:
|
|
|
|
.. code-block:: cmake
|
|
|
|
FindPackage(xo_tokenizer CONFIG REQUIRED)
|
|
|
|
target_link_libraries(mytarget INTERFACE xo_tokenizer)
|