Skip to content

build: Introduce internal kernel library

This PR introduces a new libbitcoin_kernel internal library. It completes the internal library design as laid out in doc/design/libraries.md. Since the util library contains a bunch of modules that are not required by the kernel library, a new kernel_util library is introduced as well that only consists of the modules required by the kernel library. The external libbitcoinkernel library now re-uses the compiled objects from the internal libraries.

There is a trade-off to this. Since we don't manually export symbols from the kernel library yet, this would make the library unusable if REDUCE_EXPORTS=ON. For now, this patch here prohibits compiling the kernel library if REDUCDE_EXPORTS=ON. This should be acceptable, since this option is usually used in the context of releases, and we probably won't be releasing the kernel library until a header with explicitly exported symbols for external use is defined. However, it does lock us into using the same compiler flags for both the internal and external libraries.

Merge request reports

Loading