[Support] [Debuginfod] Move HTTPClient to Debuginfod library.
authorNoah Shutty <shutty@google.com>
Mon, 6 Dec 2021 18:28:07 +0000 (18:28 +0000)
committerNoah Shutty <shutty@google.com>
Tue, 7 Dec 2021 01:19:21 +0000 (01:19 +0000)
Following the discussion in D112753, this moves the HTTPClient from Support to Debuginfod library so that tools depending on Support do not automatically depend on Curl as well. This also removes `HTTPClient::initialize()` and `HTTPClient::cleanup()` from `InitLLVM` so these steps should be implemented by user tools instead.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D115131

llvm/include/llvm/Debuginfod/HTTPClient.h [moved from llvm/include/llvm/Support/HTTPClient.h with 100% similarity]
llvm/lib/Debuginfod/CMakeLists.txt
llvm/lib/Debuginfod/Debuginfod.cpp
llvm/lib/Debuginfod/HTTPClient.cpp [moved from llvm/lib/Support/HTTPClient.cpp with 98% similarity]
llvm/lib/Support/CMakeLists.txt
llvm/lib/Support/InitLLVM.cpp
llvm/unittests/Debuginfod/CMakeLists.txt
llvm/unittests/Debuginfod/DebuginfodTests.cpp
llvm/unittests/Debuginfod/HTTPClientTests.cpp [moved from llvm/unittests/Support/HTTPClient.cpp with 96% similarity]
llvm/unittests/Support/CMakeLists.txt

index 96dc8c3..e2c43e6 100644 (file)
@@ -1,9 +1,20 @@
+# Link LibCURL if the user wants it
+if (LLVM_ENABLE_CURL)
+  set(imported_libs ${CURL_LIBRARIES})
+endif()
+
 add_llvm_component_library(LLVMDebuginfod
   Debuginfod.cpp
+  HTTPClient.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Debuginfod
 
+  LINK_LIBS
+  ${imported_libs}
+
   LINK_COMPONENTS
   Support
   )
+
+set(llvm_system_libs ${system_libs})
index b798c16..eafd9d2 100644 (file)
 
 #include "llvm/Debuginfod/Debuginfod.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Debuginfod/HTTPClient.h"
 #include "llvm/Support/CachePruning.h"
 #include "llvm/Support/Caching.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/HTTPClient.h"
 #include "llvm/Support/xxhash.h"
 
 namespace llvm {
similarity index 98%
rename from llvm/lib/Support/HTTPClient.cpp
rename to llvm/lib/Debuginfod/HTTPClient.cpp
index 52178e0..5ba5150 100644 (file)
@@ -1,4 +1,4 @@
-//===-- llvm/Support/HTTPClient.cpp - HTTP client library -------*- C++ -*-===//
+//===-- llvm/Debuginfod/HTTPClient.cpp - HTTP client library ----*- C++ -*-===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -13,7 +13,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Support/HTTPClient.h"
+#include "llvm/Debuginfod/HTTPClient.h"
 #include "llvm/ADT/APInt.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Errc.h"
index 7e9fdd0..4d90995 100644 (file)
@@ -74,11 +74,6 @@ if(LLVM_WITH_Z3)
   set(system_libs ${system_libs} ${Z3_LIBRARIES})
 endif()
 
-# Link LibCURL if the user wants it
-if (LLVM_ENABLE_CURL)
-  set(system_libs ${system_libs} ${CURL_LIBRARIES})
-endif()
-
 # Override the C runtime allocator on Windows and embed it into LLVM tools & libraries
 if(LLVM_INTEGRATED_CRT_ALLOC)
   if (CMAKE_BUILD_TYPE AND NOT ${LLVM_USE_CRT_${uppercase_CMAKE_BUILD_TYPE}} MATCHES "^(MT|MTd)$")
@@ -160,7 +155,6 @@ add_llvm_component_library(LLVMSupport
   GlobPattern.cpp
   GraphWriter.cpp
   Hashing.cpp
-  HTTPClient.cpp
   InitLLVM.cpp
   InstructionCost.cpp
   IntEqClasses.cpp
index 8a0068f..152de6e 100644 (file)
@@ -8,7 +8,6 @@
 
 #include "llvm/Support/InitLLVM.h"
 #include "llvm/Support/Error.h"
-#include "llvm/Support/HTTPClient.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Process.h"
@@ -59,11 +58,6 @@ InitLLVM::InitLLVM(int &Argc, const char **&Argv,
   Argc = Args.size() - 1;
   Argv = Args.data();
 #endif
-
-  HTTPClient::initialize();
 }
 
-InitLLVM::~InitLLVM() {
-  HTTPClient::cleanup();
-  llvm_shutdown();
-}
+InitLLVM::~InitLLVM() { llvm_shutdown(); }
index 439a48a..967ea79 100644 (file)
@@ -3,6 +3,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_llvm_unittest(DebuginfodTests
+  HTTPClientTests.cpp
   DebuginfodTests.cpp
   )
 
index 5e58e30..4a69fcc 100644 (file)
@@ -1,4 +1,4 @@
-//===-- llvm/unittest/Support/DebuginfodTests.cpp - unit tests --*- C++ -*-===//
+//===-- llvm/unittest/Support/DebuginfodTests.cpp - unit tests ------------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -7,8 +7,8 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Debuginfod/Debuginfod.h"
+#include "llvm/Debuginfod/HTTPClient.h"
 #include "llvm/Support/FileSystem.h"
-#include "llvm/Support/HTTPClient.h"
 #include "llvm/Support/Path.h"
 #include "llvm/Testing/Support/Error.h"
 #include "gtest/gtest.h"
similarity index 96%
rename from llvm/unittests/Support/HTTPClient.cpp
rename to llvm/unittests/Debuginfod/HTTPClientTests.cpp
index e4f965b..7f7d201 100644 (file)
@@ -1,4 +1,4 @@
-//===-- llvm/unittest/Support/HTTPClient.cpp - unit tests -------*- C++ -*-===//
+//===-- llvm/unittest/Debuginfod/HTTPClientTests.cpp - unit tests ---------===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 // See https://llvm.org/LICENSE.txt for license information.
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Support/HTTPClient.h"
+#include "llvm/Debuginfod/HTTPClient.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Testing/Support/Error.h"
 #include "gtest/gtest.h"
index e3a57c9..d331d1b 100644 (file)
@@ -41,7 +41,6 @@ add_llvm_unittest(SupportTests
   GlobPatternTest.cpp
   HashBuilderTest.cpp
   Host.cpp
-  HTTPClient.cpp
   IndexedAccessorTest.cpp
   InstructionCostTest.cpp
   ItaniumManglingCanonicalizerTest.cpp