summaryrefslogtreecommitdiffstats
path: root/libcxx/src
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-07-19 17:02:42 +0000
committerLouis Dionne <ldionne@apple.com>2019-07-19 17:02:42 +0000
commit910323e6676f813b28d1320b0d08ece270ee977d (patch)
tree0ad5f2283949f45e28001b50d18f7227c854e73a /libcxx/src
parent86383e66266cca1a4e40538e2e6c8c13f978cfaa (diff)
downloadbcm5719-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.txt9
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)
OpenPOWER on IntegriCloud