summaryrefslogtreecommitdiffstats
path: root/libcxx/src
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-08-05 18:29:14 +0000
committerLouis Dionne <ldionne@apple.com>2019-08-05 18:29:14 +0000
commit0a06eb911b830cf693747ea6cd975bd97b454e3e (patch)
treec68150415e2565cc96801d042c3230efc0194103 /libcxx/src
parent3de33245d2c992c9e0af60372043540b60f3a810 (diff)
downloadbcm5719-llvm-0a06eb911b830cf693747ea6cd975bd97b454e3e.tar.gz
bcm5719-llvm-0a06eb911b830cf693747ea6cd975bd97b454e3e.zip
[libc++] Take 2: Integrate the PSTL into libc++
Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available). The commit also adds support for running the PSTL tests as part of the libc++ test suite. The first attempt to commit this failed because it exposed a bug in the tests for modules. Now that this has been fixed, it should be safe to commit this. Reviewers: EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF Tags: #libc Differential Revision: https://reviews.llvm.org/D60480 llvm-svn: 367903
Diffstat (limited to 'libcxx/src')
-rw-r--r--libcxx/src/CMakeLists.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 31cd24333a5..352791e8b28 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -196,6 +196,10 @@ function(cxx_link_system_libraries target)
endif()
endfunction()
+if (LIBCXX_ENABLE_PARALLEL_ALGORITHMS AND NOT TARGET pstl::ParallelSTL)
+ message(FATAL_ERROR "Could not find ParallelSTL")
+endif()
+
function(cxx_set_common_defines name)
if(LIBCXX_CXX_ABI_HEADER_TARGET)
add_dependencies(${name} ${LIBCXX_CXX_ABI_HEADER_TARGET})
@@ -222,6 +226,10 @@ function(cxx_set_common_defines name)
# in printf, scanf.
_CRT_STDIO_ISO_WIDE_SPECIFIERS)
endif()
+
+ if (LIBCXX_ENABLE_PARALLEL_ALGORITHMS)
+ target_link_libraries(${name} PUBLIC pstl::ParallelSTL)
+ endif()
endfunction()
split_list(LIBCXX_COMPILE_FLAGS)
OpenPOWER on IntegriCloud