From: Pavel Sobolev <contact@paveloom.dev>
Subject: [PATCH] Use system libraries.

Everything, except for Eigen3.

Signed-off-by: Pavel Sobolev <contact@paveloom.dev>

--- a/cmake/external/abseil-cpp.cmake
+++ b/cmake/external/abseil-cpp.cmake
@@ -28,7 +28,7 @@ onnxruntime_fetchcontent_declare(
     URL_HASH SHA1=${DEP_SHA1_abseil_cpp}
     EXCLUDE_FROM_ALL
     PATCH_COMMAND ${ABSL_PATCH_COMMAND}
-    FIND_PACKAGE_ARGS 20240722 NAMES absl
+    FIND_PACKAGE_ARGS NAMES absl REQUIRED
 )
 
 onnxruntime_fetchcontent_makeavailable(abseil_cpp)
--- a/cmake/external/onnxruntime_external_deps.cmake
+++ b/cmake/external/onnxruntime_external_deps.cmake
@@ -40,7 +40,7 @@ onnxruntime_fetchcontent_declare(
     URL ${DEP_URL_re2}
     URL_HASH SHA1=${DEP_SHA1_re2}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS NAMES re2
+    FIND_PACKAGE_ARGS NAMES re2 REQUIRED
 )
 onnxruntime_fetchcontent_makeavailable(re2)
 
@@ -68,7 +68,7 @@ if (onnxruntime_BUILD_UNIT_TESTS)
     URL ${DEP_URL_googletest}
     URL_HASH SHA1=${DEP_SHA1_googletest}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 1.14.0...<2.0.0 NAMES GTest
+    FIND_PACKAGE_ARGS 1.14.0...<2.0.0 NAMES GTest REQUIRED
   )
   FetchContent_MakeAvailable(googletest)
 endif()
@@ -84,7 +84,7 @@ if (onnxruntime_BUILD_BENCHMARKS)
     URL ${DEP_URL_google_benchmark}
     URL_HASH SHA1=${DEP_SHA1_google_benchmark}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS NAMES benchmark
+    FIND_PACKAGE_ARGS NAMES benchmark REQUIRED
   )
   onnxruntime_fetchcontent_makeavailable(google_benchmark)
 endif()
@@ -102,7 +102,7 @@ if(onnxruntime_USE_MIMALLOC)
     URL ${DEP_URL_mimalloc}
     URL_HASH SHA1=${DEP_SHA1_mimalloc}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS NAMES mimalloc
+    FIND_PACKAGE_ARGS NAMES mimalloc REQUIRED
   )
   FetchContent_MakeAvailable(mimalloc)
 endif()
@@ -191,7 +191,7 @@ onnxruntime_fetchcontent_declare(
   URL_HASH SHA1=${DEP_SHA1_protobuf}
   PATCH_COMMAND ${ONNXRUNTIME_PROTOBUF_PATCH_COMMAND}
   EXCLUDE_FROM_ALL
-  FIND_PACKAGE_ARGS NAMES Protobuf protobuf
+  FIND_PACKAGE_ARGS NAMES Protobuf protobuf REQUIRED
 )
 
 set(protobuf_BUILD_TESTS OFF CACHE BOOL "Build protobuf tests" FORCE)
@@ -271,7 +271,7 @@ onnxruntime_fetchcontent_declare(
   URL ${DEP_URL_date}
   URL_HASH SHA1=${DEP_SHA1_date}
   EXCLUDE_FROM_ALL
-  FIND_PACKAGE_ARGS 3...<4 NAMES date
+  FIND_PACKAGE_ARGS 3...<4 NAMES date REQUIRED
 )
 onnxruntime_fetchcontent_makeavailable(date)
 
@@ -285,7 +285,7 @@ if(NOT TARGET Boost::mp11)
      mp11
      URL ${DEP_URL_mp11}
      EXCLUDE_FROM_ALL
-     FIND_PACKAGE_ARGS NAMES Boost
+     FIND_PACKAGE_ARGS NAMES Boost REQUIRED
     )
     onnxruntime_fetchcontent_makeavailable(mp11)
     if(NOT TARGET Boost::mp11)
@@ -302,7 +302,7 @@ onnxruntime_fetchcontent_declare(
     URL ${DEP_URL_json}
     URL_HASH SHA1=${DEP_SHA1_json}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 3.10 NAMES nlohmann_json
+    FIND_PACKAGE_ARGS 3.10 NAMES nlohmann_json REQUIRED
 )
 onnxruntime_fetchcontent_makeavailable(nlohmann_json)
 
@@ -366,7 +366,7 @@ if (CPUINFO_SUPPORTED)
         URL_HASH SHA1=${DEP_SHA1_pytorch_cpuinfo}
         EXCLUDE_FROM_ALL
         PATCH_COMMAND ${Patch_EXECUTABLE} -p1 < ${PROJECT_SOURCE_DIR}/patches/cpuinfo/9bb12d342fd9479679d505d93a478a6f9cd50a47.patch
-        FIND_PACKAGE_ARGS NAMES cpuinfo
+        FIND_PACKAGE_ARGS NAMES cpuinfo REQUIRED
       )
   else()
       onnxruntime_fetchcontent_declare(
@@ -374,7 +374,7 @@ if (CPUINFO_SUPPORTED)
         URL ${DEP_URL_pytorch_cpuinfo}
         URL_HASH SHA1=${DEP_SHA1_pytorch_cpuinfo}
         EXCLUDE_FROM_ALL
-        FIND_PACKAGE_ARGS NAMES cpuinfo
+        FIND_PACKAGE_ARGS NAMES cpuinfo REQUIRED
       )
   endif()
   set(ONNXRUNTIME_CPUINFO_PROJ pytorch_cpuinfo)
@@ -392,7 +392,7 @@ if(onnxruntime_USE_CUDA)
     URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
     PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/gsl/1064.patch
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
+    FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL REQUIRED
   )
 else()
   onnxruntime_fetchcontent_declare(
@@ -400,14 +400,14 @@ else()
     URL ${DEP_URL_microsoft_gsl}
     URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
+    FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL REQUIRED
   )
 endif()
 set(GSL_TARGET "Microsoft.GSL::GSL")
 set(GSL_INCLUDE_DIR "$<TARGET_PROPERTY:${GSL_TARGET},INTERFACE_INCLUDE_DIRECTORIES>")
 onnxruntime_fetchcontent_makeavailable(GSL)
 
-find_path(safeint_SOURCE_DIR NAMES "SafeInt.hpp")
+find_path(safeint_SOURCE_DIR NAMES "SafeInt.hpp" REQUIRED)
 if(NOT safeint_SOURCE_DIR)
   unset(safeint_SOURCE_DIR)
   onnxruntime_fetchcontent_declare(
@@ -449,10 +449,14 @@ onnxruntime_fetchcontent_declare(
     URL_HASH SHA1=${DEP_SHA1_flatbuffers}
     PATCH_COMMAND ${ONNXRUNTIME_FLATBUFFERS_PATCH_COMMAND}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 23.5.9 NAMES Flatbuffers flatbuffers
+    FIND_PACKAGE_ARGS 23.5.9 NAMES Flatbuffers flatbuffers REQUIRED
 )
 
 onnxruntime_fetchcontent_makeavailable(flatbuffers)
+if(TARGET flatbuffers::flatbuffers_shared AND NOT TARGET flatbuffers::flatbuffers)
+  message(STATUS "Aliasing flatbuffers::flatbuffers to flatbuffers::flatbuffers_shared")
+  add_library(flatbuffers::flatbuffers ALIAS flatbuffers::flatbuffers_shared)
+endif()
 if(NOT flatbuffers_FOUND)
   if(NOT TARGET flatbuffers::flatbuffers)
     add_library(flatbuffers::flatbuffers ALIAS flatbuffers)
@@ -514,7 +514,7 @@ onnxruntime_fetchcontent_declare(
   URL_HASH SHA1=${DEP_SHA1_onnx}
   PATCH_COMMAND ${ONNXRUNTIME_ONNX_PATCH_COMMAND}
   EXCLUDE_FROM_ALL
-  FIND_PACKAGE_ARGS NAMES ONNX onnx
+  FIND_PACKAGE_ARGS NAMES ONNX onnx REQUIRED
 )
 if (NOT onnxruntime_MINIMAL_BUILD)
   onnxruntime_fetchcontent_makeavailable(onnx)
@@ -597,7 +597,7 @@ if(onnxruntime_ENABLE_DLPACK)
     URL ${DEP_URL_dlpack}
     URL_HASH SHA1=${DEP_SHA1_dlpack}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS NAMES dlpack
+    FIND_PACKAGE_ARGS NAMES dlpack REQUIRED
   )
   onnxruntime_fetchcontent_makeavailable(dlpack)
 endif()
@@ -610,7 +610,7 @@ if(onnxruntime_ENABLE_TRAINING OR (onnxruntime_ENABLE_TRAINING_APIS AND onnxrunt
     URL ${DEP_URL_cxxopts}
     URL_HASH SHA1=${DEP_SHA1_cxxopts}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS NAMES cxxopts
+    FIND_PACKAGE_ARGS NAMES cxxopts REQUIRED
   )
   set(CXXOPTS_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
   set(CXXOPTS_BUILD_TESTS OFF CACHE BOOL "" FORCE)
--- a/cmake/external/pybind11.cmake
+++ b/cmake/external/pybind11.cmake
@@ -6,7 +6,7 @@ onnxruntime_fetchcontent_declare(
     URL ${DEP_URL_pybind11}
     URL_HASH SHA1=${DEP_SHA1_pybind11}
     EXCLUDE_FROM_ALL
-    FIND_PACKAGE_ARGS 2.13 NAMES pybind11
+    FIND_PACKAGE_ARGS 2.13 NAMES pybind11 REQUIRED
 )
 onnxruntime_fetchcontent_makeavailable(pybind11_project)
 
--- a/cmake/external/wil.cmake
+++ b/cmake/external/wil.cmake
@@ -8,7 +8,7 @@ onnxruntime_fetchcontent_declare(
   URL ${DEP_URL_microsoft_wil}
   URL_HASH SHA1=${DEP_SHA1_microsoft_wil}
   EXCLUDE_FROM_ALL
-  FIND_PACKAGE_ARGS NAMES wil
+  FIND_PACKAGE_ARGS NAMES wil REQUIRED
 )
 
 if(WIN32)
--- a/cmake/external/xnnpack.cmake
+++ b/cmake/external/xnnpack.cmake
@@ -17,11 +17,11 @@ if(CMAKE_ANDROID_ARCH_ABI STREQUAL armeabi-v7a)
 endif()
 
 # pthreadpool depends on fxdiv
-onnxruntime_fetchcontent_declare(fxdiv URL ${DEP_URL_fxdiv} URL_HASH SHA1=${DEP_SHA1_fxdiv} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES fxdiv)
+onnxruntime_fetchcontent_declare(fxdiv URL ${DEP_URL_fxdiv} URL_HASH SHA1=${DEP_SHA1_fxdiv} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES fxdiv REQUIRED)
 onnxruntime_fetchcontent_makeavailable(fxdiv)
 set(FXDIV_SOURCE_DIR ${fxdiv_SOURCE_DIR})
 
-onnxruntime_fetchcontent_declare(pthreadpool URL ${DEP_URL_pthreadpool} URL_HASH SHA1=${DEP_SHA1_pthreadpool} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES unofficial-pthreadpool)
+onnxruntime_fetchcontent_declare(pthreadpool URL ${DEP_URL_pthreadpool} URL_HASH SHA1=${DEP_SHA1_pthreadpool} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES unofficial-pthreadpool REQUIRED)
 onnxruntime_fetchcontent_makeavailable(pthreadpool)
 
 # ---  Determine target processor
@@ -84,7 +84,7 @@ endif()
 onnxruntime_fetchcontent_declare(googlexnnpack URL ${DEP_URL_googlexnnpack} URL_HASH SHA1=${DEP_SHA1_googlexnnpack}
                      PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/xnnpack/AddEmscriptenAndIosSupport.patch
 		     EXCLUDE_FROM_ALL
-		     FIND_PACKAGE_ARGS NAMES xnnpack
+		     FIND_PACKAGE_ARGS NAMES xnnpack REQUIRED
                     )
 onnxruntime_fetchcontent_makeavailable(googlexnnpack)
 set(XNNPACK_DIR ${googlexnnpack_SOURCE_DIR})
