From: Pavel Sobolev Subject: [PATCH] Use system libraries. Everything, except for Eigen3. Signed-off-by: Pavel Sobolev --- a/cmake/external/abseil-cpp.cmake +++ b/cmake/external/abseil-cpp.cmake @@ -36,7 +36,7 @@ onnxruntime_fetchcontent_declare( URL_HASH SHA1=${DEP_SHA1_abseil_cpp} EXCLUDE_FROM_ALL PATCH_COMMAND ${ABSL_PATCH_COMMAND} - FIND_PACKAGE_ARGS 20250512 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 @@ -43,7 +43,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) @@ -71,7 +71,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() @@ -87,7 +87,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() @@ -105,7 +105,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() @@ -198,7 +198,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) @@ -278,7 +278,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) @@ -292,12 +292,11 @@ if(NOT TARGET Boost::mp11) mp11 URL ${DEP_URL_mp11} EXCLUDE_FROM_ALL - FIND_PACKAGE_ARGS NAMES Boost + FIND_PACKAGE_ARGS NAMES Boost REQUIRED ) - FetchContent_Populate(mp11) + onnxruntime_fetchcontent_makeavailable(mp11) if(NOT TARGET Boost::mp11) - add_library(Boost::mp11 IMPORTED INTERFACE) - target_include_directories(Boost::mp11 INTERFACE $) + add_library(Boost::mp11 ALIAS Boost::headers) endif() endif() endif() @@ -310,7 +310,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) @@ -380,7 +380,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( @@ -388,7 +388,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) @@ -406,7 +406,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( @@ -414,7 +414,7 @@ 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") @@ -428,7 +428,7 @@ if (NOT GSL_FOUND AND NOT onnxruntime_BUILD_SHARED_LIB) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() -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( @@ -470,10 +470,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) @@ -535,7 +539,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 ) onnxruntime_fetchcontent_makeavailable(onnx) @@ -611,7 +615,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() @@ -624,7 +628,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})