multiprocess: Add libmultiprocess git subtree
This adds the libmultiprocess library and code generator as a subtree in src/ipc/libmultiprocess and allows it to be built with the cmake -DENABLE_IPC option, which is disabled by default.
This PR does not entirely remove the depends system libmultiprocess package because the package is useful when cross compiling. (A cross-compiling cmake build cannot easily build and run a native code generation tool.) However, it does update the depends package to build from the new git subtree, instead of being downloaded separately from github, so the same sources are used to build both the runtime library and the code generator.
This PR includes the following manual changes (not created automatically with git subtree add) which just update the build system and documentation:
1746618e081ddepends: Update libmultiprocess library before converting to subtree8eccd5322da1scripted-diff: s/WITH_MULTIPROCESS/ENABLE_IPC/ in cmake8b68709ce378cmake: Support building with libmultiprocess subtree5c2c09cdfa61cmake: Fix ctest mptest "Unable to find executable" errors6b350f593fefcmake: Fix warnings from boost headers45bb7fed27d6cmake: Fix clang-tidy "no input files" errors96d3b2a0bb0ccmake: Fix fuzzer "multiple definition of `main'" errors20a804942afddoc: Update documentation to explain libmultiprocess subtreed8cbd577d061lint: Add exclusions for libmultiprocess subtree15a06000b086depends, moveonly: split up int_get_build_id functionca1c8ef7d833depends: Switch libmultiprocess packages to use local git subtreeb2108240dec5depends: remove non-native libmultiprocess build
Previous minisketch subtree PR #23114 may be useful for comparison
Instructions for subtree verification can be found:
- https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#subtrees
- https://github.com/bitcoin/bitcoin/tree/master/test/lint#git-subtree-checksh
TL&DR:
git remote add --fetch libmultiprocess https://github.com/chaincodelabs/libmultiprocess.git
test/lint/git-subtree-check.sh -r src/ipc/libmultiprocess
This PR is part of the process separation project.