diff options
author | Louis Dionne <ldionne@apple.com> | 2019-08-05 18:29:14 +0000 |
---|---|---|
committer | Louis Dionne <ldionne@apple.com> | 2019-08-05 18:29:14 +0000 |
commit | 0a06eb911b830cf693747ea6cd975bd97b454e3e (patch) | |
tree | c68150415e2565cc96801d042c3230efc0194103 /libcxx/src | |
parent | 3de33245d2c992c9e0af60372043540b60f3a810 (diff) | |
download | bcm5719-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.txt | 8 |
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) |