all_in_one.cmake 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. message("============== all in one Module ==============")
  2. # 添加第三方依赖包
  3. include(FetchContent)
  4. # FetchContent_MakeAvailable was not added until CMake 3.14
  5. if(${CMAKE_VERSION} VERSION_LESS 3.14)
  6. include(add_FetchContent_MakeAvailable.cmake)
  7. endif()
  8. # 设置all_in_one的下载目录
  9. if("${ALL_IN_ONE_FETCH_ROOT}" STREQUAL "")
  10. set(ALL_IN_ONE_FETCH_ROOT ${CMAKE_SOURCE_DIR})
  11. endif()
  12. # 指定版本
  13. set(SILLY_UTIL_TAG master)
  14. set(ALL_IN_ONE_GIT_URL "https://gitee.com/master-turtle/all_in_one.git")
  15. FetchContent_Declare(
  16. all_in_one
  17. GIT_REPOSITORY ${ALL_IN_ONE_GIT_URL}
  18. SOURCE_DIR ${ALL_IN_ONE_FETCH_ROOT}/all_in_one
  19. )
  20. FetchContent_MakeAvailable(all_in_one)
  21. # 下载完成后 拷贝检测环境的.cmake文件
  22. IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/")
  23. FILE(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/")
  24. ENDIF()
  25. execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${ALL_IN_ONE_FETCH_ROOT}/all_in_one/.clang-format" "${CMAKE_SOURCE_DIR}/.clang-format")
  26. set(CMAKE_MODULE_PATH "${ALL_IN_ONE_FETCH_ROOT}/all_in_one/cmake;${CMAKE_MODULE_PATH}")
  27. message(STATUS "cmake 目录: ${CMAKE_MODULE_PATH}")
  28. include(EnvModule)
  29. include(OSEndianModule)
  30. include_directories("${ALL_IN_ONE_FETCH_ROOT}/all_in_one/core")