aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libtorch/fix-cmake.patch
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libtorch/fix-cmake.patch
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libtorch/fix-cmake.patch')
-rw-r--r--vcpkg/ports/libtorch/fix-cmake.patch404
1 files changed, 404 insertions, 0 deletions
diff --git a/vcpkg/ports/libtorch/fix-cmake.patch b/vcpkg/ports/libtorch/fix-cmake.patch
new file mode 100644
index 0000000..436efde
--- /dev/null
+++ b/vcpkg/ports/libtorch/fix-cmake.patch
@@ -0,0 +1,404 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 07edb30..1ca26e3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1247,8 +1247,7 @@ if(USE_MIMALLOC)
+ set(MI_BUILD_OBJECT OFF)
+ set(MI_BUILD_TESTS OFF)
+ add_definitions(-DUSE_MIMALLOC)
+- add_subdirectory(third_party/mimalloc)
+- include_directories(third_party/mimalloc/include)
++ find_package(mimalloc CONFIG REQUIRED)
+ endif()
+
+ if(USE_MIMALLOC AND USE_MIMALLOC_ON_MKL)
+@@ -1316,10 +1315,7 @@ if(BUILD_SHARED_LIBS)
+ DIRECTORY ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix
+ DESTINATION share/cmake/Caffe2/
+ COMPONENT dev)
+- install(
+- FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake
+- DESTINATION share/cmake/Caffe2/
+- COMPONENT dev)
++
+ install(
+ FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake
+ DESTINATION share/cmake/Caffe2/
+diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
+index 085af37..1c61f27 100644
+--- a/aten/src/ATen/CMakeLists.txt
++++ b/aten/src/ATen/CMakeLists.txt
+@@ -515,7 +515,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
+ list(APPEND ATen_THIRD_PARTY_INCLUDE ${CMAKE_BINARY_DIR}/include)
+ link_directories(${CMAKE_BINARY_DIR}/sleef/lib)
+ else()
+- add_library(sleef SHARED IMPORTED)
++ add_library(sleef UNKNOWN IMPORTED)
+ find_library(SLEEF_LIBRARY sleef)
+ if(NOT SLEEF_LIBRARY)
+ message(FATAL_ERROR "Cannot find sleef")
+@@ -523,7 +523,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE)
+ message("Found sleef: ${SLEEF_LIBRARY}")
+ set_target_properties(sleef PROPERTIES IMPORTED_LOCATION "${SLEEF_LIBRARY}")
+ endif()
+- list(APPEND ATen_CPU_DEPENDENCY_LIBS sleef)
++ list(APPEND ATen_CPU_DEPENDENCY_LIBS ${SLEEF_LIBRARY})
+
+ if(NOT MSVC)
+ set(CMAKE_C_FLAGS_DEBUG ${OLD_CMAKE_C_FLAGS_DEBUG})
+@@ -534,8 +534,8 @@ if(USE_CUDA AND NOT USE_ROCM)
+ add_definitions(-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1)
+ add_definitions(-DCUTLASS_ENABLE_SM90_EXTENDED_MMA_SHAPES=1)
+ add_definitions(-DCUTE_SM90_EXTENDED_MMA_SHAPES_ENABLED)
+- list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/include)
+- list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/tools/util/include)
++ find_package(NvidiaCutlass CONFIG REQUIRED)
++ list(APPEND ATen_CUDA_DEPENDENCY_LIBS nvidia::cutlass::cutlass)
+ if($ENV{ATEN_STATIC_CUDA})
+ list(APPEND ATen_CUDA_DEPENDENCY_LIBS
+ ${CUDA_LIBRARIES}
+diff --git a/c10/CMakeLists.txt b/c10/CMakeLists.txt
+index 34577ca..5462cfe 100644
+--- a/c10/CMakeLists.txt
++++ b/c10/CMakeLists.txt
+@@ -121,8 +121,7 @@ if(NOT BUILD_LIBTORCHLESS)
+ endif()
+
+ if(USE_MIMALLOC)
+- target_link_libraries(c10 PRIVATE "mimalloc-static")
+- add_dependencies(c10 mimalloc-static)
++ target_link_libraries(c10 PRIVATE "mimalloc")
+ endif()
+
+ if(LINUX)
+@@ -163,7 +162,7 @@ if(NOT BUILD_LIBTORCHLESS)
+ # Note: for now, we will put all export path into one single Caffe2Targets group
+ # to deal with the cmake deployment need. Inside the Caffe2Targets set, the
+ # individual libraries like libc10.so and libcaffe2.so are still self-contained.
+- install(TARGETS c10 EXPORT Caffe2Targets DESTINATION lib)
++ install(TARGETS c10 EXPORT Caffe2Targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+ endif()
+
+ install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+@@ -173,5 +172,5 @@ install(FILES ${CMAKE_BINARY_DIR}/c10/macros/cmake_macros.h
+ DESTINATION include/c10/macros)
+
+ if(MSVC AND C10_BUILD_SHARED_LIBS)
+- install(FILES $<TARGET_PDB_FILE:c10> DESTINATION lib OPTIONAL)
++ install(FILES $<TARGET_PDB_FILE:c10> DESTINATION bin OPTIONAL)
+ endif()
+diff --git a/c10/cuda/CMakeLists.txt b/c10/cuda/CMakeLists.txt
+index 3327dab..4a0476f 100644
+--- a/c10/cuda/CMakeLists.txt
++++ b/c10/cuda/CMakeLists.txt
+@@ -82,7 +82,7 @@ if(NOT BUILD_LIBTORCHLESS)
+ # Note: for now, we will put all export path into one single Caffe2Targets group
+ # to deal with the cmake deployment need. Inside the Caffe2Targets set, the
+ # individual libraries like libc10.so and libcaffe2.so are still self-contained.
+-install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION lib)
++install(TARGETS c10_cuda EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+
+ endif()
+
+diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
+index d2d23b7..51930dd 100644
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -86,7 +86,7 @@ endif()
+ # ---[ Caffe2 build
+ # Note: the folders that are being commented out have not been properly
+ # addressed yet.
+-
++if(FALSE)
+ if(NOT MSVC AND USE_XNNPACK)
+ if(NOT TARGET fxdiv)
+ set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
+@@ -96,6 +96,7 @@ if(NOT MSVC AND USE_XNNPACK)
+ "${CMAKE_BINARY_DIR}/FXdiv")
+ endif()
+ endif()
++endif()
+
+ add_subdirectory(core)
+ add_subdirectory(serialize)
+@@ -557,7 +558,7 @@ if(USE_CUDA)
+ endif()
+
+ target_link_libraries(caffe2_nvrtc PRIVATE caffe2::nvrtc ${DELAY_LOAD_FLAGS})
+- install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++ install(TARGETS caffe2_nvrtc RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ if(USE_NCCL)
+ list(APPEND Caffe2_GPU_SRCS
+ ${TORCH_SRC_DIR}/csrc/cuda/nccl.cpp)
+@@ -1134,7 +1135,7 @@ if(USE_XPU)
+ endif()
+ endif()
+
+-if(NOT MSVC AND USE_XNNPACK)
++if(FALSE)
+ TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
+ endif()
+
+@@ -1251,11 +1252,11 @@ if(USE_KINETO)
+ ${TORCH_ROOT}/third_party/kineto/libkineto/src)
+ endif()
+
+-target_include_directories(torch_cpu PRIVATE
+- ${TORCH_ROOT}/third_party/cpp-httplib)
++target_link_libraries(torch_cpu PRIVATE httplib::httplib nlohmann_json::nlohmann_json)
++if(APPLE)
++ target_link_libraries(torch_cpu PUBLIC "-framework CoreFoundation" "-framework CFNetwork")
+
+-target_include_directories(torch_cpu PRIVATE
+- ${TORCH_ROOT}/third_party/nlohmann/include)
++endif()
+
+ install(DIRECTORY "${TORCH_SRC_DIR}/csrc"
+ DESTINATION ${TORCH_INSTALL_INCLUDE_DIR}/torch
+@@ -1536,17 +1537,17 @@ endif()
+
+ caffe2_interface_library(torch torch_library)
+
+-install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+
+ if(USE_CUDA)
+- install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++ install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ elseif(USE_ROCM)
+- install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++ install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ elseif(USE_XPU)
+- install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++ install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ endif()
+
+-install(TARGETS torch torch_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++install(TARGETS torch torch_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+
+ target_link_libraries(torch PUBLIC torch_cpu_library)
+
+@@ -1685,7 +1686,7 @@ if(BUILD_SHARED_LIBS)
+ target_link_libraries(torch_global_deps torch::nvtoolsext)
+ endif()
+ endif()
+- install(TARGETS torch_global_deps DESTINATION "${TORCH_INSTALL_LIB_DIR}")
++ install(TARGETS torch_global_deps RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}")
+ endif()
+
+ # ---[ Caffe2 HIP sources.
+diff --git a/cmake/Codegen.cmake b/cmake/Codegen.cmake
+index 724d993..f743939 100644
+--- a/cmake/Codegen.cmake
++++ b/cmake/Codegen.cmake
+@@ -36,11 +36,13 @@ endfunction()
+ ################################################################################
+
+ # -- [ Deterine commit hash
+-execute_process(
+- COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')"
+- OUTPUT_VARIABLE COMMIT_SHA
+- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/..
+-)
++if(NOT DEFINED COMMIT_SHA)
++ execute_process(
++ COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')"
++ OUTPUT_VARIABLE COMMIT_SHA
++ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/..
++ )
++endif()
+
+ # ---[ Write the macros file
+ configure_file(
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 5227204..9acaf75 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -46,6 +46,7 @@ if(USE_CUDA)
+ # A helper variable recording the list of Caffe2 dependent libraries
+ # torch::cudart is dealt with separately, due to CUDA_ADD_LIBRARY
+ # design reason (it adds CUDA_LIBRARIES itself).
++ find_package(NvidiaCutlass CONFIG REQUIRED)
+ set(Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS )
+ if(NOT CAFFE2_USE_NVRTC)
+ caffe2_update_option(USE_NVRTC OFF)
+@@ -378,6 +379,9 @@ if(INTERN_BUILD_MOBILE OR NOT DISABLE_NNPACK_AND_FAMILY)
+ set(USE_PTHREADPOOL ON CACHE BOOL "" FORCE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_PTHREADPOOL")
+
++ find_package(unofficial-pthreadpool CONFIG REQUIRED)
++ add_library(pthreadpool ALIAS unofficial::pthreadpool)
++
+ if(NOT TARGET pthreadpool)
+ if(USE_SYSTEM_PTHREADPOOL)
+ add_library(pthreadpool SHARED IMPORTED)
+@@ -412,6 +416,9 @@ endif()
+ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(s390x|ppc64le)$")
+ # ---[ Caffe2 uses cpuinfo library in the thread pool
+ # ---[ But it doesn't support s390x/powerpc and thus not used on s390x/powerpc
++ find_package(cpuinfo CONFIG REQUIRED)
++ add_library(cpuinfo ALIAS cpuinfo::cpuinfo)
++ add_library(clog ALIAS cpuinfo::clog)
+ if(NOT TARGET cpuinfo AND USE_SYSTEM_CPUINFO)
+ add_library(cpuinfo SHARED IMPORTED)
+ find_library(CPUINFO_LIBRARY cpuinfo)
+@@ -476,8 +483,10 @@ endif()
+
+ # ---[ NNPACK
+ if(USE_NNPACK)
+- include(${CMAKE_CURRENT_LIST_DIR}/External/nnpack.cmake)
+- if(NNPACK_FOUND)
++
++ find_package(unofficial-nnpack CONFIG REQUIRED)
++ add_library(nnpack ALIAS unofficial::nnpack::nnpack)
++ if(nnpack_FOUND)
+ if(TARGET nnpack)
+ # ---[ NNPACK is being built together with Caffe2: explicitly specify dependency
+ list(APPEND Caffe2_DEPENDENCY_LIBS nnpack)
+@@ -492,6 +501,12 @@ if(USE_NNPACK)
+ endif()
+
+ # ---[ XNNPACK
++if(USE_XNNPACK)
++ find_package(unofficial-xnnpack CONFIG REQUIRED)
++ add_library(XNNPACK ALIAS unofficial::xnnpack::XNNPACK)
++ add_library(microkernels-prod ALIAS unofficial::xnnpack::microkernels-prod)
++ list(APPEND Caffe2_DEPENDENCY_LIBS XNNPACK microkernels-prod)
++endif()
+ if(USE_XNNPACK AND NOT USE_SYSTEM_XNNPACK)
+ if(NOT DEFINED XNNPACK_SOURCE_DIR)
+ set(XNNPACK_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/XNNPACK" CACHE STRING "XNNPACK source directory")
+@@ -702,7 +717,7 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+ endif()
+
+ # ---[ FBGEMM
+-if(USE_FBGEMM)
++if(FALSE)
+ set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party")
+ if(NOT DEFINED FBGEMM_SOURCE_DIR)
+ set(FBGEMM_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/fbgemm" CACHE STRING "FBGEMM source directory")
+@@ -755,6 +770,9 @@ endif()
+
+ if(USE_FBGEMM)
+ caffe2_update_option(USE_FBGEMM ON)
++ find_package(fbgemmLibrary REQUIRED)
++ list(APPEND Caffe2_DEPENDENCY_LIBS fbgemm)
++
+ else()
+ caffe2_update_option(USE_FBGEMM OFF)
+ message(WARNING
+@@ -804,6 +822,8 @@ if(USE_ITT)
+ endif()
+
+ # ---[ Caffe2 depends on FP16 library for half-precision conversions
++find_package(unofficial-fp16 CONFIG REQUIRED)
++add_library(fp16 ALIAS unofficial::fp16::fp16)
+ if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16)
+ set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party")
+ # PSIMD is required by FP16
+@@ -1155,6 +1175,7 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
+ if(MSVC)
+ message(WARNING "Tensorpipe cannot be used on Windows.")
+ else()
++ if(FALSE)
+ if(USE_CUDA)
+ set(TP_USE_CUDA ON CACHE BOOL "" FORCE)
+ set(TP_ENABLE_CUDA_IPC ON CACHE BOOL "" FORCE)
+@@ -1177,6 +1198,9 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0.0")
+ unset(CMAKE_POLICY_VERSION_MINIMUM)
+ endif()
++ endif()
++ find_package(unofficial-tensorpipe CONFIG REQUIRED)
++ add_library(tensorpipe ALIAS unofficial::tensorpipe::tensorpipe)
+
+ list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe)
+ list(APPEND Caffe2_DEPENDENCY_LIBS nlohmann)
+@@ -1329,7 +1353,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+ caffe2_interface_library(onnx onnx_library)
+ endif()
+ list(APPEND Caffe2_DEPENDENCY_WHOLE_LINK_LIBS onnx_library)
+- else()
++ elseif(FALSE)
+ add_library(onnx SHARED IMPORTED)
+ find_library(ONNX_LIBRARY onnx)
+ if(NOT ONNX_LIBRARY)
+@@ -1345,6 +1369,8 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+ message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
+ list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
+ endif()
++ find_package(ONNX CONFIG REQUIRED)
++ list(APPEND Caffe2_DEPENDENCY_LIBS ONNX::onnx ONNX::onnx_proto)
+ # Recover the build shared libs option.
+ set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS})
+ endif()
+@@ -1515,6 +1541,9 @@ if(NOT INTERN_BUILD_MOBILE)
+ endif()
+
+ if(USE_KLEIDIAI)
++ find_package(KleidiAI CONFIG REQUIRED)
++ list(APPEND Caffe2_DEPENDENCY_LIBS KleidiAI::kleidiai)
++ elseif(FALSE)
+ if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "11" )
+ message(WARNING "KleidiAI: Using non-supported Clang version. Expected 11 or newer, received ${CMAKE_C_COMPILER_VERSION}.")
+ endif()
+@@ -1586,6 +1615,7 @@ endif()
+ #
+ set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE)
++if(0)
+ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
+
+ # Disable compiler feature checks for `fmt`.
+@@ -1596,7 +1626,8 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
+ # `fmt` is compatible with a superset of the compilers that PyTorch is, it
+ # shouldn't be too bad to just disable the checks.
+ set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "")
+-
++endif()
++find_package(fmt REQUIRED)
+ list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
+ set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
+
+@@ -1745,13 +1776,10 @@ if(USE_KINETO)
+ endif()
+ endif()
+
+-# Include google/FlatBuffers
+-include(${CMAKE_CURRENT_LIST_DIR}/FlatBuffers.cmake)
+
+-# Include cpp-httplib
+-add_library(httplib INTERFACE IMPORTED)
+-target_include_directories(httplib SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/cpp-httplib)
++find_package(FlatBuffers REQUIRED)
++add_library(flatbuffers ALIAS flatbuffers::flatbuffers)
++find_package(httplib REQUIRED)
++find_package(nlohmann_json REQUIRED)
++add_library(nlohmann ALIAS nlohmann_json)
+
+-# Include nlohmann-json
+-add_library(nlohmann INTERFACE IMPORTED)
+-include_directories(nlohmann SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/nlohmann/include)
+diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt
+index 8b8ebdc..1777c0e 100644
+--- a/torch/CMakeLists.txt
++++ b/torch/CMakeLists.txt
+@@ -59,18 +59,7 @@ set(TORCH_PYTHON_INCLUDE_DIRECTORIES
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}/aten/src
+ ${CMAKE_BINARY_DIR}/caffe2/aten/src
+- ${CMAKE_BINARY_DIR}/third_party
+- ${CMAKE_BINARY_DIR}/third_party/onnx
+-
+ ${TORCH_ROOT}/third_party/valgrind-headers
+-
+- ${TORCH_ROOT}/third_party/gloo
+- ${TORCH_ROOT}/third_party/onnx
+- ${TORCH_ROOT}/third_party/flatbuffers/include
+- ${TORCH_ROOT}/third_party/kineto/libkineto/include
+- ${TORCH_ROOT}/third_party/cpp-httplib
+- ${TORCH_ROOT}/third_party/nlohmann/include
+-
+ ${TORCH_SRC_DIR}/csrc
+ ${TORCH_SRC_DIR}/csrc/api/include
+ ${TORCH_SRC_DIR}/lib