<pre style='margin:0'>
Haren S (harens) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2d0984280cd7f51c63741bfeafa61a9f4fad5835">https://github.com/macports/macports-ports/commit/2d0984280cd7f51c63741bfeafa61a9f4fad5835</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 2d0984280cd libatomicbitvector: new port
</span>2d0984280cd is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 2d0984280cd7f51c63741bfeafa61a9f4fad5835
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Tue Nov 1 12:29:31 2022 +0800

<span style='display:block; white-space:pre;color:#404040;'>    libatomicbitvector: new port
</span>---
 devel/libatomicbitvector/Portfile                  |  40 ++++++++
 .../libatomicbitvector/files/patch-CMakeLists.diff | 113 +++++++++++++++++++++
 2 files changed, 153 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/libatomicbitvector/Portfile b/devel/libatomicbitvector/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0fc6db39cd4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/libatomicbitvector/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        ekg atomicbitvector e295358fea9532fa4c37197630d037a4a53ddede
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                libatomicbitvector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2020.05.19
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             Apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Atomic bitset/bitvector with size determined at runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    This header-only library encodes a bitvector class with size fixed at runtime. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Atomic operations allow for concurrent access and modification of the bitset. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Such a structure can help with coordinating parallel processing of a given \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    fixed set of entities and has the advantage of only requiring O(1) bit per entry. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    The atomic_bv_t class is a straightforward extension of ConcurrentBitSet \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    from Facebook’s folly C++ library. It wraps the atomic type with a class \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    that allows them to be copied, and these wrapped atomic types are then used \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    to build a vector size of which is determined at runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+installs_libs       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  741c3e452145739850049ba9da100a0b6d32c460 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  528d238dc635ce08215c99aabaf75550703677d827f1611b08c3d135ac13bcd6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    9976
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-CMakeLists.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Dbuild_tests=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Current default with upstream:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.build_type    Debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.openmp_version 3.0
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/libatomicbitvector/files/patch-CMakeLists.diff b/devel/libatomicbitvector/files/patch-CMakeLists.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6278a15af6b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/libatomicbitvector/files/patch-CMakeLists.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,113 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix linking with OpenMP, fix installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig    2020-05-19 18:05:33.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2022-11-01 12:02:01.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14,36 +14,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # assumes clang build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # we can't reliably detect when we're using clang, so for the time being we assume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # TODO: can't we though?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # adapted from https://stackoverflow.com/questions/46414660/macos-cmake-and-openmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # find_package(OpenMP) does not work reliably on macOS, so we do its work ourselves
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (OpenMP_C "${CMAKE_C_COMPILER}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_C_FLAGS " -Xpreprocessor -fopenmp -I/opt/local/include/libomp -I/usr/local/include -L/opt/local/lib/libomp -L/usr/local/lib")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (OpenMP_CXX "${CMAKE_CXX_COMPILER}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_CXX_FLAGS " -Xpreprocessor -fopenmp -I/opt/local/include/libomp -I/usr/local/include -L/opt/local/lib/libomp -L/usr/local/lib")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_libomp_LIBRARY "omp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_libgomp_LIBRARY "gomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (OpenMP_libiomp5_LIBRARY "iomp5")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_C_FLAGS " -Xpreprocessor -fopenmp -I/@PREFIX@/include/libomp -L/@PREFIX@/lib/libomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_CXX_FLAGS " -Xpreprocessor -fopenmp -I/@PREFIX@/include/libomp -L/@PREFIX@/lib/libomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_C_LIB_NAMES "libomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_CXX_LIB_NAMES "libomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_libomp_LIBRARY "omp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_C_FLAGS " -Xpreprocessor -fopenmp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_CXX_FLAGS " -Xpreprocessor -fopenmp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_C_LIB_NAMES "libgomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_CXX_LIB_NAMES  "libgomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (OpenMP_libgomp_LIBRARY "gomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # and now add the OpenMP parameters to the compile flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS} -lomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS} -lomp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # When using GCC, -fopenmp ensures that libgomp is linked with.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   find_package(OpenMP REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # add the flags it detects to the compile flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} -fopenmp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fopenmp")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set the output folder where your program will be created
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,9 +75,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(atomicbitvector_INCLUDES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "${CMAKE_SOURCE_DIR}/include")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-add_executable(test_atomicbitvector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ${CMAKE_SOURCE_DIR}/src/main.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-target_include_directories(test_atomicbitvector PUBLIC ${atomicbitvector_INCLUDES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++option (build_tests "Build atomicbitvector tests" ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (build_tests)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_subdirectory(src)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_executable(test_atomicbitvector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ${CMAKE_SOURCE_DIR}/src/main.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  target_include_directories(test_atomicbitvector PUBLIC ${atomicbitvector_INCLUDES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  add_executable(test_atomicbitvector_extra
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ${CMAKE_SOURCE_DIR}/src/main1.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  target_include_directories(test_atomicbitvector_extra PUBLIC ${atomicbitvector_INCLUDES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif (build_tests)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif (TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,3 +93,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_EXE_LINKER_FLAGS "-static")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++install(FILES ${CMAKE_SOURCE_DIR}/include/atomic_bitvector.hpp ${CMAKE_SOURCE_DIR}/include/iterator_tpl.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        DESTINATION ${CMAKE_INSTALL_PREFIX}/include/atomicbitvector)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++add_library(atomicbitvector INTERFACE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++target_include_directories(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    atomicbitvector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    INTERFACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++install(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    TARGETS atomicbitvector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    EXPORT atomicbitvectorExport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    INCLUDES DESTINATION "${CMAKE_INSTALL_PREFIX}/include/atomicbitvector"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++install(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    EXPORT atomicbitvectorExport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/atomicbitvector"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    FILE "atomicbitvectorConfig.cmake"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++)
</span></pre><pre style='margin:0'>

</pre>