class AzureStorageCpp < Formula desc "Microsoft Azure Storage Client Library for C++" homepage "https://azure.github.io/azure-storage-cpp" url "https://github.com/Azure/azure-storage-cpp/archive/v6.0.0.tar.gz" sha256 "3ec43349b741e0d8619e5510901a0abe8832da83167c74275b2e79544d105956" revision 1 bottle do cellar :any sha256 "67d8e17e425da6eca509d52b5ebd7977e0481c9831af05dfa7b9d6872d1679eb" => :mojave sha256 "eb91ca1c57bf23e33f80e1f90bde5254dfd21ed134b9e2f4c8bf71edcd5d4a5d" => :high_sierra sha256 "6c0fc630ba5250923846dfcd2b91672962297f823866d21a047c80f771a81671" => :sierra end depends_on "cmake" => :build depends_on "boost" depends_on "cpprestsdk" depends_on "gettext" depends_on "openssl" depends_on "ossp-uuid" def install system "cmake", "Microsoft.WindowsAzure.Storage", "-DBUILD_SAMPLES=OFF", "-DBUILD_TESTS=OFF", *std_cmake_args system "make", "install" end test do (testpath/"test.cpp").write <<~EOS #include #include using namespace azure; int main() { utility::string_t storage_connection_string(_XPLATSTR("DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey")); try { azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string); return 0; } catch(...){ return 1; } } EOS flags = ["-stdlib=libc++", "-std=c++11", "-I#{include}", "-I#{Formula["boost"].include}", "-I#{Formula["openssl"].include}", "-I#{Formula["cpprestsdk"].include}", "-L#{Formula["boost"].lib}", "-L#{Formula["cpprestsdk"].lib}", "-L#{Formula["openssl"].lib}", "-L#{lib}", "-lcpprest", "-lboost_system-mt", "-lssl", "-lcrypto", "-lazurestorage"] + ENV.cflags.to_s.split system ENV.cxx, "-o", "test_azurestoragecpp", "test.cpp", *flags system "./test_azurestoragecpp" end end