26 lines
622 B
CMake
26 lines
622 B
CMake
tristate(IGRAPH_ENABLE_TLS "Enable thread-local storage for igraph global variables" AUTO)
|
|
|
|
include(CheckTLSSupport)
|
|
check_tls_support(TLS_KEYWORD)
|
|
|
|
if(IGRAPH_ENABLE_TLS STREQUAL "AUTO")
|
|
if(TLS_KEYWORD)
|
|
set(IGRAPH_ENABLE_TLS ON)
|
|
else()
|
|
set(IGRAPH_ENABLE_TLS OFF)
|
|
endif()
|
|
endif()
|
|
|
|
if(IGRAPH_ENABLE_TLS)
|
|
if(NOT TLS_KEYWORD)
|
|
message(FATAL_ERROR "Thread-local storage not supported on this compiler")
|
|
endif()
|
|
|
|
# TODO: we should probably set this only if we are building igraph with
|
|
# internal-everything
|
|
set(IGRAPH_THREAD_SAFE YES)
|
|
else()
|
|
set(TLS_KEYWORD "")
|
|
set(IGRAPH_THREAD_SAFE NO)
|
|
endif()
|