|
@@ -202,6 +202,7 @@ option(LIBCXX_ENABLE_MONOTONIC_CLOCK
|
|
|
This option may only be set to OFF when LIBCXX_ENABLE_THREADS=OFF." ON)
|
|
|
option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF)
|
|
|
option(LIBCXX_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF)
|
|
|
+option(LIBCXX_HAS_WIN32_THREAD_API "Ignore auto-detection and force use of win32 thread API" OFF)
|
|
|
option(LIBCXX_HAS_EXTERNAL_THREAD_API
|
|
|
"Build libc++ with an externalized threading API.
|
|
|
This option may only be set to ON when LIBCXX_ENABLE_THREADS=ON." OFF)
|
|
@@ -273,6 +274,10 @@ if(NOT LIBCXX_ENABLE_THREADS)
|
|
|
message(FATAL_ERROR "LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY can only be set "
|
|
|
"to ON when LIBCXX_ENABLE_THREADS is also set to ON.")
|
|
|
endif()
|
|
|
+ if (LIBCXX_HAS_WIN32_THREAD_API)
|
|
|
+ message(FATAL_ERROR "LIBCXX_HAS_WIN32_THREAD_API can only be set to ON"
|
|
|
+ " when LIBCXX_ENABLE_THREADS is also set to ON.")
|
|
|
+ endif()
|
|
|
|
|
|
endif()
|
|
|
|
|
@@ -287,6 +292,19 @@ if (LIBCXX_HAS_EXTERNAL_THREAD_API)
|
|
|
"and LIBCXX_HAS_PTHREAD_API cannot be both"
|
|
|
"set to ON at the same time.")
|
|
|
endif()
|
|
|
+ if (LIBCXX_HAS_WIN32_THREAD_API)
|
|
|
+ message(FATAL_ERROR "The options LIBCXX_HAS_EXTERNAL_THREAD_API"
|
|
|
+ "and LIBCXX_HAS_WIN32_THREAD_API cannot be both"
|
|
|
+ "set to ON at the same time.")
|
|
|
+ endif()
|
|
|
+endif()
|
|
|
+
|
|
|
+if (LIBCXX_HAS_PTHREAD_API)
|
|
|
+ if (LIBCXX_HAS_WIN32_THREAD_API)
|
|
|
+ message(FATAL_ERROR "The options LIBCXX_HAS_PTHREAD_API"
|
|
|
+ "and LIBCXX_HAS_WIN32_THREAD_API cannot be both"
|
|
|
+ "set to ON at the same time.")
|
|
|
+ endif()
|
|
|
endif()
|
|
|
|
|
|
# Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE
|
|
@@ -613,6 +631,7 @@ config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THRE
|
|
|
|
|
|
config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_THREAD_API_PTHREAD)
|
|
|
config_define_if(LIBCXX_HAS_EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_EXTERNAL)
|
|
|
+config_define_if(LIBCXX_HAS_WIN32_THREAD_API _LIBCPP_HAS_THREAD_API_WIN32)
|
|
|
config_define_if(LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL)
|
|
|
config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC)
|
|
|
config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME)
|