diff --git a/Formula/libcds.rb b/Formula/libcds.rb new file mode 100644 index 0000000000..fe1e567403 --- /dev/null +++ b/Formula/libcds.rb @@ -0,0 +1,32 @@ +class Libcds < Formula + desc "C++ library of Concurrent Data Structures" + homepage "https://libcds.sourceforge.io/doc/cds-api/index.html" + url "https://github.com/khizmax/libcds/archive/v2.2.0.tar.gz" + sha256 "e582fbd6492c91ff24b11468f094b111d5f62eca69e6445c88bf16cad50e40ed" + + depends_on "cmake" => :build + depends_on "boost" + if DevelopmentTools.clang_build_version < 800 + depends_on "gcc" + fails_with :clang + end + + def install + system "cmake", ".", *std_cmake_args + system "make", "install" + end + + test do + (testpath/"test.cpp").write <<-EOS.undent + #include + int main() { + cds::Initialize(); + cds::threading::Manager::attachThread(); + cds::Terminate(); + return 0; + } + EOS + system ENV.cxx, "-o", "test", "test.cpp", "-L#{lib}64", "-lcds", "-std=c++11" + system "./test" + end +end