Skip to content

build: cmake installs empty manpages for non-configured targets #31762

@stickies-v

Description

@stickies-v

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

When configuring cmake with a subset of targets (e.g. kernel-only), a blanket cmake --install will still install the placeholder manpages files for all other targets.

For example:

cmake -B build -DBUILD_KERNEL_LIB=ON -DBUILD_BENCH=OFF -DBUILD_DAEMON=OFF -DBUILD_CLI=OFF -DBUILD_GUI=OFF -DBUILD_FUZZ_BINARY=OFF -DBUILD_TESTS=OFF -DBUILD_TX=OFF -DBUILD_UTIL=OFF -DBUILD_UTIL_CHAINSTATE=OFF -DBUILD_WALLET_TOOL=OFF -DENABLE_WALLET=OFF
cmake --build build -j
cmake --install build

yields:

% cmake --install build
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/local/lib/pkgconfig/libbitcoinkernel.pc
-- Installing: /usr/local/lib/libbitcoinkernel.dylib
-- Up-to-date: /usr/local/share/man/man1
-- Installing: /usr/local/share/man/man1/bitcoin-util.1
-- Installing: /usr/local/share/man/man1/bitcoin-tx.1
-- Installing: /usr/local/share/man/man1/bitcoin-wallet.1
-- Installing: /usr/local/share/man/man1/bitcoin-qt.1
-- Installing: /usr/local/share/man/man1/bitcoin-cli.1
-- Installing: /usr/local/share/man/man1/bitcoind.1

The manpages are just placeholders:

% cat /usr/local/share/man/man1/bitcoin-util.1
.TH BITCOIN-UTIL "1"
.SH NAME
bitcoin-util \- manual page for bitcoin-util

This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.

This can be avoided by specifying the component, e.g. cmake --install build --component Kernel, but that shouldn't be necessary.

Expected behaviour

The manpages of non-configured targets should not be installed.

Steps to reproduce

Described under "current behaviour".

Relevant log output

No response

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

809d7e7

Operating system and version

macOS 14.3

Machine specifications

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions