mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-20 14:05:23 +01:00
build: remove boost::process dependency for building external signer support
This commit is contained in:
parent
70434b1c44
commit
d5a715536e
1 changed files with 10 additions and 52 deletions
62
configure.ac
62
configure.ac
|
@ -307,9 +307,9 @@ AC_ARG_ENABLE([werror],
|
|||
[enable_werror=no])
|
||||
|
||||
AC_ARG_ENABLE([external-signer],
|
||||
[AS_HELP_STRING([--enable-external-signer],[compile external signer support (default is auto, requires Boost::Process)])],
|
||||
[AS_HELP_STRING([--enable-external-signer],[compile external signer support (default is yes)])],
|
||||
[use_external_signer=$enableval],
|
||||
[use_external_signer=auto])
|
||||
[use_external_signer=yes])
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
|
||||
|
@ -1439,56 +1439,14 @@ if test "$use_boost" = "yes"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
if test "$use_external_signer" != "no"; then
|
||||
AC_MSG_CHECKING([whether Boost.Process can be used])
|
||||
TEMP_CXXFLAGS="$CXXFLAGS"
|
||||
dnl Boost 1.78 requires the following workaround.
|
||||
dnl See: https://github.com/boostorg/process/issues/235
|
||||
CXXFLAGS="$CXXFLAGS -Wno-error=narrowing"
|
||||
TEMP_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
||||
TEMP_LDFLAGS="$LDFLAGS"
|
||||
dnl Boost 1.73 and older require the following workaround.
|
||||
LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#define BOOST_PROCESS_USE_STD_FS
|
||||
#include <boost/process.hpp>
|
||||
]],[[
|
||||
namespace bp = boost::process;
|
||||
bp::opstream stdin_stream;
|
||||
bp::ipstream stdout_stream;
|
||||
bp::child c("dummy", bp::std_out > stdout_stream, bp::std_err > stdout_stream, bp::std_in < stdin_stream);
|
||||
stdin_stream << std::string{"test"} << std::endl;
|
||||
if (c.running()) c.terminate();
|
||||
c.wait();
|
||||
c.exit_code();
|
||||
]])],
|
||||
[have_boost_process="yes"],
|
||||
[have_boost_process="no"])
|
||||
LDFLAGS="$TEMP_LDFLAGS"
|
||||
CPPFLAGS="$TEMP_CPPFLAGS"
|
||||
CXXFLAGS="$TEMP_CXXFLAGS"
|
||||
AC_MSG_RESULT([$have_boost_process])
|
||||
if test "$have_boost_process" = "yes"; then
|
||||
case $host in
|
||||
dnl Boost Process for Windows uses Boost ASIO. Boost ASIO performs
|
||||
dnl pre-main init of Windows networking libraries, which we do not
|
||||
dnl want.
|
||||
*mingw*)
|
||||
use_external_signer="no"
|
||||
;;
|
||||
*)
|
||||
use_external_signer="yes"
|
||||
AC_DEFINE([ENABLE_EXTERNAL_SIGNER], [1], [Define if external signer support is enabled])
|
||||
AC_DEFINE([BOOST_PROCESS_USE_STD_FS], [1], [Defined to avoid Boost::Process trying to use Boost Filesystem])
|
||||
;;
|
||||
esac
|
||||
else
|
||||
if test "$use_external_signer" = "yes"; then
|
||||
AC_MSG_ERROR([External signing is not supported for this Boost version])
|
||||
fi
|
||||
use_external_signer="no";
|
||||
fi
|
||||
case $host in
|
||||
dnl Re-enable it after enabling Windows support in cpp-subprocess.
|
||||
*mingw*)
|
||||
use_external_signer="no"
|
||||
;;
|
||||
esac
|
||||
if test "$use_external_signer" = "yes"; then
|
||||
AC_DEFINE([ENABLE_EXTERNAL_SIGNER], [1], [Define if external signer support is enabled])
|
||||
fi
|
||||
AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER], [test "$use_external_signer" = "yes"])
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue