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:
1746618e081d
depends: Update libmultiprocess library before converting to subtree8eccd5322da1
scripted-diff: s/WITH_MULTIPROCESS/ENABLE_IPC/ in cmake8b68709ce378
cmake: Support building with libmultiprocess subtree5c2c09cdfa61
cmake: Fix ctest mptest "Unable to find executable" errors6b350f593fef
cmake: Fix warnings from boost headers45bb7fed27d6
cmake: Fix clang-tidy "no input files" errors96d3b2a0bb0c
cmake: Fix fuzzer "multiple definition of `main'" errors20a804942afd
doc: Update documentation to explain libmultiprocess subtreed8cbd577d061
lint: Add exclusions for libmultiprocess subtree15a06000b086
depends, moveonly: split up int_get_build_id functionca1c8ef7d833
depends: Switch libmultiprocess packages to use local git subtreeb2108240dec5
depends: 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.