mirror of https://github.com/bitcoin/bitcoin
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
8 months ago
|
# Copyright (c) 2023-present The Bitcoin Core developers
|
||
|
# Distributed under the MIT software license, see the accompanying
|
||
|
# file COPYING or https://opensource.org/license/mit/.
|
||
|
|
||
|
include_guard(GLOBAL)
|
||
|
include(CheckCXXSourceCompiles)
|
||
|
include(CMakePushCheckState)
|
||
|
|
||
|
# This avoids running the linker.
|
||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||
|
|
||
|
macro(check_cxx_source_links source)
|
||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE EXECUTABLE)
|
||
|
check_cxx_source_compiles("${source}" ${ARGN})
|
||
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||
|
endmacro()
|
||
|
|
||
|
macro(check_cxx_source_compiles_with_flags flags source)
|
||
|
cmake_push_check_state(RESET)
|
||
|
set(CMAKE_REQUIRED_FLAGS ${flags})
|
||
|
list(JOIN CMAKE_REQUIRED_FLAGS " " CMAKE_REQUIRED_FLAGS)
|
||
|
check_cxx_source_compiles("${source}" ${ARGN})
|
||
|
cmake_pop_check_state()
|
||
|
endmacro()
|
||
|
|
||
|
macro(check_cxx_source_links_with_flags flags source)
|
||
|
cmake_push_check_state(RESET)
|
||
|
set(CMAKE_REQUIRED_FLAGS ${flags})
|
||
|
list(JOIN CMAKE_REQUIRED_FLAGS " " CMAKE_REQUIRED_FLAGS)
|
||
|
check_cxx_source_links("${source}" ${ARGN})
|
||
|
cmake_pop_check_state()
|
||
|
endmacro()
|
||
|
|
||
|
macro(check_cxx_source_links_with_libs libs source)
|
||
|
cmake_push_check_state(RESET)
|
||
|
set(CMAKE_REQUIRED_LIBRARIES "${libs}")
|
||
|
check_cxx_source_links("${source}" ${ARGN})
|
||
|
cmake_pop_check_state()
|
||
|
endmacro()
|