Skip to content

Commit fce8139

Browse files
committed
Use oneDPL as impl for parallel STL algos missing in macOS Clang
1 parent b8c41fc commit fce8139

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ endif ()
4545

4646
target_include_directories(CompactNSearch PUBLIC include)
4747

48+
if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
49+
find_package(oneDPL REQUIRED)
50+
target_link_libraries(CompactNSearch PUBLIC oneDPL)
51+
endif()
52+
4853
install(FILES "include/CompactNSearch" ${HEADER_FILES}
4954
DESTINATION include/)
5055

demo/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ advect()
153153
{
154154
#ifdef _MSC_VER
155155
concurrency::parallel_for_each
156+
#elif defined(__APPLE__) && defined(__clang__)
157+
std::for_each
156158
#else
157159
__gnu_parallel::for_each
158160
#endif

include/Config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ namespace CompactNSearch
1414

1515
#ifdef _MSC_VER
1616
#include <ppl.h>
17+
#elif defined(__APPLE__) && defined(__clang__)
18+
#include <oneapi/dpl/algorithm>
1719
#else
1820
#include <parallel/algorithm>
1921
#endif

src/CompactNSearch.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,8 @@ NeighborhoodSearch::update_point_sets()
236236
// Precompute cell indices.
237237
#ifdef _MSC_VER
238238
concurrency::parallel_for_each
239+
#elif defined(__APPLE__) && defined(__clang__)
240+
std::for_each
239241
#else
240242
__gnu_parallel::for_each
241243
#endif
@@ -315,6 +317,8 @@ NeighborhoodSearch::erase_empty_entries(std::vector<unsigned int> const& to_dele
315317
// Perform neighborhood search.
316318
#ifdef _MSC_VER
317319
concurrency::parallel_for_each
320+
#elif defined(__APPLE__) && defined(__clang__)
321+
std::for_each
318322
#else
319323
__gnu_parallel::for_each
320324
#endif
@@ -413,6 +417,8 @@ NeighborhoodSearch::query()
413417
// Perform neighborhood search.
414418
#ifdef _MSC_VER
415419
concurrency::parallel_for_each
420+
#elif defined(__APPLE__) && defined(__clang__)
421+
std::for_each
416422
#else
417423
__gnu_parallel::for_each
418424
#endif
@@ -473,6 +479,8 @@ NeighborhoodSearch::query()
473479

474480
#ifdef _MSC_VER
475481
concurrency::parallel_for_each
482+
#elif defined(__APPLE__) && defined(__clang__)
483+
std::for_each
476484
#else
477485
__gnu_parallel::for_each
478486
#endif

0 commit comments

Comments
 (0)