From 9644d6b966f6640823cd34f28bf9ca7385ecaedb Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Tue, 10 Oct 2023 12:44:14 -0400 Subject: [PATCH] + README.md --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..fcfa8e8a --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# callback-set with reentrant invocation + +Reentrant: +1. A callback can modify parent callback-set (for example to remove itself), + even while being invoked. +2. Any such re-entrant operations are deferred until callback invocation completes. + +# build + install +``` +$ cd xo-callback +$ mkdir build +$ cd build +$ INSTALL_PREFIX=/usr/local # or wherever you prefer, e.g. ~/local +$ cmake \ + -DCMAKE_MODULE_PATH=${INSTALL_PREFIX}/share/cmake \ + -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \ + -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} .. +$ make +$ make install +``` +(also see .github/workflows/main.yml) + +# build for unit test coverage +``` +$ cd xo-callback +$ mkdir build-ccov +$ cd build-ccov +$ cmake \ + -DCMAKE_MODULE_PATH=${INSTALL_PREFIX}/share/cmake \ + -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} \ + -DCODE_COVERAGE=ON \ + -DCMAKE_BUILD_TYPE=Debug .. +``` + +# LSP (language server) support + +LSP looks for compile commands in the root of the source tree; +cmake creates them in the root of its build directory. +``` +$ cd xo-callback +$ ln -s build/compile_commands.json +```