build_tools.cmake 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. function(download_patchelf)
  15. if(UNIX AND (NOT APPLE))
  16. set(PATCHELF_EXE "patchelf")
  17. if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
  18. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-aarch64.tar.gz)
  19. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-aarch64.tar.gz ${THIRD_PARTY_PATH}/patchelf)
  20. else()
  21. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-x86_64.tar.gz)
  22. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-x86_64.tar.gz ${THIRD_PARTY_PATH}/patchelf)
  23. endif()
  24. endif()
  25. endfunction()
  26. function(download_protobuf)
  27. if(WIN32)
  28. if(NOT CMAKE_CL_64)
  29. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-win-x86-3.16.0.zip)
  30. else()
  31. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-win-x64-3.16.0.zip)
  32. endif()
  33. set(ORIGIN_ENV_PATH "$ENV{PATH}")
  34. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-win-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf)
  35. set(ENV{PATH} "${THIRD_PARTY_PATH}\\protobuf\\bin;${ORIGIN_ENV_PATH}")
  36. elseif(APPLE)
  37. if(CURRENT_OSX_ARCH MATCHES "arm64")
  38. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-osx-arm64-3.16.0.tgz)
  39. else()
  40. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-osx-x86_64-3.16.0.tgz)
  41. endif()
  42. set(ORIGIN_ENV_PATH "$ENV{PATH}")
  43. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-osx-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf)
  44. set(ENV{PATH} "${THIRD_PARTY_PATH}/protobuf/bin/:${ORIGIN_ENV_PATH}")
  45. else()
  46. if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
  47. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-linux-aarch64-3.16.0.tgz)
  48. else()
  49. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-linux-x64-3.16.0.tgz)
  50. endif()
  51. set(ORIGIN_ENV_PATH "$ENV{PATH}")
  52. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-linux-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf)
  53. set(ENV{PATH} "${THIRD_PARTY_PATH}/protobuf/bin/:${ORIGIN_ENV_PATH}")
  54. endif()
  55. endfunction()
  56. function(download_eigen)
  57. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/eigen-linux-x86-241210.tgz)
  58. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/eigen-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/eigen)
  59. endfunction()
  60. function(download_yaml_cpp)
  61. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/yaml-cpp-linux-x86-241210.tgz)
  62. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/yaml-cpp-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/yaml-cpp)
  63. endfunction()
  64. function(download_pybind)
  65. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/pybind11-linux-x86-241210.tgz)
  66. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/pybind11-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/pybind11)
  67. endfunction()
  68. function(download_dlpack)
  69. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/dlpack-linux-x86-241210.tgz)
  70. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/dlpack-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/dlpack)
  71. endfunction()
  72. function(download_onnx)
  73. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/onnx-linux-x86-241210.tgz)
  74. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/onnx-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/onnx)
  75. endfunction()
  76. function(download_optimizer)
  77. set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_party/optimizer-linux-x86-241210.tgz)
  78. download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/optimizer-linux-x86-241210.tgz ${THIRD_PARTY_DIR}/optimizer)
  79. endfunction()