diff options
author | Louis Dionne <ldionne@apple.com> | 2019-07-19 17:02:42 +0000 |
---|---|---|
committer | Louis Dionne <ldionne@apple.com> | 2019-07-19 17:02:42 +0000 |
commit | 910323e6676f813b28d1320b0d08ece270ee977d (patch) | |
tree | 0ad5f2283949f45e28001b50d18f7227c854e73a /libcxx/src | |
parent | 86383e66266cca1a4e40538e2e6c8c13f978cfaa (diff) | |
download | bcm5719-llvm-910323e6676f813b28d1320b0d08ece270ee977d.tar.gz bcm5719-llvm-910323e6676f813b28d1320b0d08ece270ee977d.zip |
[libc++] 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.
Reviewers: rodgert, EricWF
Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60480
llvm-svn: 366593
Diffstat (limited to 'libcxx/src')
-rw-r--r-- | libcxx/src/CMakeLists.txt | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt index 31cd24333a5..e7d11066c07 100644 --- a/libcxx/src/CMakeLists.txt +++ b/libcxx/src/CMakeLists.txt @@ -196,6 +196,11 @@ function(cxx_link_system_libraries target) endif() endfunction() +find_package(ParallelSTL QUIET) +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 +227,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) |