Skip to content

Instantly share code, notes, and snippets.

@hebasto
Last active July 24, 2024 10:39
Show Gist options
  • Save hebasto/2ef97d3a726bfce08ded9df07f7dab5e to your computer and use it in GitHub Desktop.
Save hebasto/2ef97d3a726bfce08ded9df07f7dab5e to your computer and use it in GitHub Desktop.
Bitcoin Core Autotools vs CMake Feature Parity Table

Autotools vs CMake Feature Parity Table

Autotool-based build system (AT) features being listed according to the ./configure --help output.

AT feature CM feature Default Value
--prefix -DCMAKE_INSTALL_PREFIX *
--enable-shared -DBUILD_SHARED_LIBS=ON *
--enable-static -DBUILD_SHARED_LIBS=OFF * or skip it < default >
--disable-wallet -DENABLE_WALLET ON
--enable-usdt -DWITH_USDT OFF
--disable-tests -DBUILD_TESTS ON
--disable-gui-tests -DBUILD_GUI_TESTS BUILD_GUI & BUILD_TESTS
--disable-bench -DBUILD_BENCH OFF
--enable-extended-functional-tests -DEXTENDED_FUNCTIONAL_TESTS=ON ** OFF
--enable-fuzz -DBUILD_FOR_FUZZING OFF
--enable-fuzz-binary -DBUILD_FUZZ_BINARY OFF
--disable-hardening -DENABLE_HARDENING ON
--enable-reduce-exports -DREDUCE_EXPORTS OFF
--disable-ccache -DWITH_CCACHE
--enable-suppress-external-warnings See #223
--enable-lcov -DCMAKE_BUILD_TYPE=Coverage
--disable-zmq -DWITH_ZMQ OFF
--enable-multiprocess -DWITH_MULTIPROCESS OFF
--disable-man -DINSTALL_MAN ON
--enable-debug -DCMAKE_BUILD_TYPE=Debug RelWithDebInfo
--enable-werror -DWERROR OFF
--enable-external-signer -DENABLE_EXTERNAL_SIGNER ON
--enable-util-cli -DBUILD_CLI ON
--enable-util-tx -DBUILD_TX
--enable-util-wallet -DBUILD_WALLET_TOOL
--enable-util-util -DBUILD_UTIL
--enable-experimental-util-chainstate -DBUILD_UTIL_CHAINSTATE OFF
--with-sqlite -DWITH_SQLITE ENABLE_WALLET
--without-bdb -DWITH_BDB OFF
--with-miniupnpc -DWITH_MINIUPNPC OFF
--with-natpmp -DWITH_NATPMP OFF
--with-qrencode -DWITH_QRENCODE BUILD_GUI
--with-libmultiprocess -DLibmultiprocess_DIR * < empty >
--with-mpgen -DLibmultiprocessGen_DIR * < empty >
--with-sanitizers -DSANITIZERS < empty >
--with-utils individual options
--with-experimental-kernel-lib -DBUILD_KERNEL_LIB BUILD_UTIL_CHAINSTATE
--with-daemon -DBUILD_DAEMON ON
--with-gui -DBUILD_GUI OFF
--with-qtdbus -DWITH_DBUS BUILD_GUI
--with-incompatible-bdb -DWARN_INCOMPATIBLE_BDB ON
--with-boost -DBoost_INCLUDE_DIR * < empty >

* - CMake cache variables.

** - Options for the build/Coverage.cmake script.

@hebasto
Copy link
Author

hebasto commented May 8, 2024

@theuni

FWIW I think REDUCE_EXPORTS can just go away. CMake has its own visibility options.

That's the current implementation:

if(REDUCE_EXPORTS)
  set(CMAKE_CXX_VISIBILITY_PRESET hidden)
  set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
  try_append_linker_flag("-Wl,--exclude-libs,ALL" TARGET core_base_interface)
endif()

@maflcko
Copy link

maflcko commented Jun 10, 2024

--enable-lcov-branch-coverage has been removed

@hebasto
Copy link
Author

hebasto commented Jun 10, 2024

--enable-lcov-branch-coverage has been removed

Thanks! Adjusted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment