Merge topic 'WCDH-thread_local-portability'
998e9c10
WCDH: Add feature portability for thread_local.
This commit is contained in:
commit
7ecbade887
|
@ -0,0 +1,7 @@
|
|||
WriteCompilerDetectionHeader thread_local portability
|
||||
-----------------------------------------------------
|
||||
|
||||
* The :module:`WriteCompilerDetectionHeader` module learned to
|
||||
create a define for portability of the cxx_thread_local feature. The define
|
||||
expands to either the C++11 ``thread_local`` keyword, or a
|
||||
pre-standardization compiler-specific equivalent, as appropriate.
|
|
@ -194,6 +194,7 @@
|
|||
# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT_MSG`` ``static_assert``
|
||||
# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED`` ``[[deprecated]]``
|
||||
# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED_MSG`` ``[[deprecated]]``
|
||||
# ``cxx_thread_local`` ``<PREFIX>_THREAD_LOCAL`` ``thread_local``
|
||||
# ============================= ================================ =====================
|
||||
#
|
||||
# A use-case which arises with such deprecation macros is the deprecation
|
||||
|
@ -571,6 +572,20 @@ function(write_compiler_detection_header
|
|||
# else
|
||||
# define ${def_value} static_cast<void*>(0)
|
||||
# endif
|
||||
\n")
|
||||
endif()
|
||||
if (feature STREQUAL cxx_thread_local)
|
||||
set(def_value "${prefix_arg}_THREAD_LOCAL")
|
||||
set(file_content "${file_content}
|
||||
# if ${def_name}
|
||||
# define ${def_value} thread_local
|
||||
# elif ${prefix_arg}_COMPILER_IS_GNU || ${prefix_arg}_COMPILER_IS_Clang || ${prefix_arg}_COMPILER_IS_AppleClang
|
||||
# define ${def_value} __thread
|
||||
# elif ${prefix_arg}_COMPILER_IS_MSVC
|
||||
# define ${def_value} __declspec(thread)
|
||||
# else
|
||||
// ${def_value} not defined for this configuration.
|
||||
# endif
|
||||
\n")
|
||||
endif()
|
||||
if (feature STREQUAL cxx_attribute_deprecated)
|
||||
|
|
Loading…
Reference in New Issue