mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
ffc89d1f21
Add a macro to check if linking with -lstdc++fs or -lc++fs is required.
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
dnl Copyright (c) 2022 The Bitcoin Core developers
|
|
dnl Distributed under the MIT software license, see the accompanying
|
|
dnl file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
# GCC 8.1 and earlier requires -lstdc++fs
|
|
# Clang 8.0.0 (libc++) and earlier requires -lc++fs
|
|
|
|
m4_define([_CHECK_FILESYSTEM_testbody], [[
|
|
#include <filesystem>
|
|
|
|
namespace fs = std::filesystem;
|
|
|
|
int main() {
|
|
(void)fs::current_path().root_name();
|
|
return 0;
|
|
}
|
|
]])
|
|
|
|
AC_DEFUN([CHECK_FILESYSTEM], [
|
|
|
|
AC_LANG_PUSH(C++)
|
|
|
|
AC_MSG_CHECKING([whether std::filesystem can be used without link library])
|
|
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_FILESYSTEM_testbody])],[
|
|
AC_MSG_RESULT([yes])
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
SAVED_LIBS="$LIBS"
|
|
LIBS="$SAVED_LIBS -lstdc++fs"
|
|
AC_MSG_CHECKING([whether std::filesystem needs -lstdc++fs])
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_FILESYSTEM_testbody])],[
|
|
AC_MSG_RESULT([yes])
|
|
],[
|
|
AC_MSG_RESULT([no])
|
|
AC_MSG_CHECKING([whether std::filesystem needs -lc++fs])
|
|
LIBS="$SAVED_LIBS -lc++fs"
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_FILESYSTEM_testbody])],[
|
|
AC_MSG_RESULT([yes])
|
|
],[
|
|
AC_MSG_FAILURE([cannot figure out how to use std::filesystem])
|
|
])
|
|
])
|
|
])
|
|
|
|
AC_LANG_POP
|
|
])
|