diff options
Diffstat (limited to 'doc/manual')
-rw-r--r-- | doc/manual/rl-next/rename-lixexpr.md | 31 | ||||
-rw-r--r-- | doc/manual/src/contributing/hacking.md | 4 |
2 files changed, 33 insertions, 2 deletions
diff --git a/doc/manual/rl-next/rename-lixexpr.md b/doc/manual/rl-next/rename-lixexpr.md new file mode 100644 index 000000000..698553c7f --- /dev/null +++ b/doc/manual/rl-next/rename-lixexpr.md @@ -0,0 +1,31 @@ +--- +synopsis: Rename all the libraries nixexpr, nixstore, etc to lixexpr, lixstore, etc +credits: jade +category: Breaking Changes +--- + +The Lix C++ API libraries have had the following changes: +- Includes moved from `include/nix/` to `include/lix/` +- `pkg-config` files renamed from `nix-expr` to `lix-expr` and so on. +- Libraries renamed from `libnixexpr.so` to `liblixexpr.so` and so on. + +There are other changes between Nix 2.18 and Lix, since these APIs are not +stable. However, this change in particular is a deliberate compatibility break +to force downstreams linking to Lix to specifically handle Lix and avoid Lix +accidentally getting ensnared in compatibility code for newer CppNix. + +Migration path: + +- expr.hh -> lix/libexpr/expr.hh +- nix/config.h -> lix/config.h + +To apply this migration automatically, remove all `<nix/>` from includes, so `#include <nix/expr.hh>` -> `#include <expr.hh>`. +Then, the correct paths will be resolved from the tangled mess, and the clang-tidy automated fix will work. + +Then run the following for out of tree projects: + +```console +lix_root=$HOME/lix +(cd $lix_root/clang-tidy && nix develop -c 'meson setup build && ninja -C build') +run-clang-tidy -checks='-*,lix-fixincludes' -load=$lix_root/clang-tidy/build/liblix-clang-tidy.so -p build/ -fix src +``` diff --git a/doc/manual/src/contributing/hacking.md b/doc/manual/src/contributing/hacking.md index a8591e7ca..a73d672d4 100644 --- a/doc/manual/src/contributing/hacking.md +++ b/doc/manual/src/contributing/hacking.md @@ -102,14 +102,14 @@ $ meson compile -C build nixexpr All targets may be addressed as their output, relative to the build directory, e.g.: ```bash -$ meson compile -C build src/libexpr/libnixexpr.so +$ meson compile -C build src/libexpr/liblixexpr.so ``` But Meson does not consider intermediate files like object files targets. To build a specific object file, use Ninja directly and specify the output file relative to the build directory: ```bash -$ ninja -C build src/libexpr/libnixexpr.so.p/nixexpr.cc.o +$ ninja -C build src/libexpr/liblixexpr.so.p/nixexpr.cc.o ``` To inspect the canonical source of truth on what the state of the buildsystem configuration is, use: |