Add a CMake deps cache to improve build reliability and speed.
PiperOrigin-RevId: 947522108 Change-Id: I4aa11c08c5ee47a8ab0fc023038d84b46775c9b6
This commit is contained in:
committed by
Copybara-Service
parent
796b803ecf
commit
3c6080b1c0
+38
-11
@@ -111,17 +111,44 @@ if(NOT COMMAND FindOrFetch)
|
|||||||
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
||||||
message(CHECK_PASS "found")
|
message(CHECK_PASS "found")
|
||||||
else()
|
else()
|
||||||
message(CHECK_START
|
set(USE_LOCAL_TARBALL FALSE)
|
||||||
"mujoco::FindOrFetch: Using FetchContent to retrieve `${_ARGS_LIBRARY_NAME}`"
|
if(MUJOCO_CMAKE_DEP_CACHE)
|
||||||
)
|
# Try to find versioned library tarball.
|
||||||
FetchContent_Declare(
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}-${_ARGS_GIT_TAG}.tar.gz")
|
||||||
${_ARGS_LIBRARY_NAME}
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
GIT_TAG ${_ARGS_GIT_TAG}
|
else()
|
||||||
GIT_SHALLOW FALSE
|
# Try to find generic library tarball.
|
||||||
PATCH_COMMAND ${_ARGS_PATCH_COMMAND}
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}.tar.gz")
|
||||||
UPDATE_DISCONNECTED TRUE
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
)
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(_ARGS_PATCH_COMMAND)
|
||||||
|
set(_WRAPPED_PATCH_COMMAND ${CMAKE_COMMAND} -E env GIT_CEILING_DIRECTORIES=${CMAKE_BINARY_DIR} ${_ARGS_PATCH_COMMAND})
|
||||||
|
else()
|
||||||
|
set(_WRAPPED_PATCH_COMMAND)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(USE_LOCAL_TARBALL)
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using package cache for ${_ARGS_LIBRARY_NAME}: ${TARBALL_PATH}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
URL ${TARBALL_PATH}
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using FetchContent for ${_ARGS_LIBRARY_NAME}: ${_ARGS_GIT_REPO}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
||||||
|
GIT_TAG ${_ARGS_GIT_TAG}
|
||||||
|
GIT_SHALLOW FALSE
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
UPDATE_DISCONNECTED TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
if(${_ARGS_EXCLUDE_FROM_ALL})
|
if(${_ARGS_EXCLUDE_FROM_ALL})
|
||||||
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
||||||
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
||||||
|
|||||||
@@ -111,17 +111,44 @@ if(NOT COMMAND FindOrFetch)
|
|||||||
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
||||||
message(CHECK_PASS "found")
|
message(CHECK_PASS "found")
|
||||||
else()
|
else()
|
||||||
message(CHECK_START
|
set(USE_LOCAL_TARBALL FALSE)
|
||||||
"mujoco::FindOrFetch: Using FetchContent to retrieve `${_ARGS_LIBRARY_NAME}`"
|
if(MUJOCO_CMAKE_DEP_CACHE)
|
||||||
)
|
# Try to find versioned library tarball.
|
||||||
FetchContent_Declare(
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}-${_ARGS_GIT_TAG}.tar.gz")
|
||||||
${_ARGS_LIBRARY_NAME}
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
GIT_TAG ${_ARGS_GIT_TAG}
|
else()
|
||||||
GIT_SHALLOW FALSE
|
# Try to find generic library tarball.
|
||||||
PATCH_COMMAND ${_ARGS_PATCH_COMMAND}
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}.tar.gz")
|
||||||
UPDATE_DISCONNECTED TRUE
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
)
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(_ARGS_PATCH_COMMAND)
|
||||||
|
set(_WRAPPED_PATCH_COMMAND ${CMAKE_COMMAND} -E env GIT_CEILING_DIRECTORIES=${CMAKE_BINARY_DIR} ${_ARGS_PATCH_COMMAND})
|
||||||
|
else()
|
||||||
|
set(_WRAPPED_PATCH_COMMAND)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(USE_LOCAL_TARBALL)
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using package cache for ${_ARGS_LIBRARY_NAME}: ${TARBALL_PATH}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
URL ${TARBALL_PATH}
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using FetchContent for ${_ARGS_LIBRARY_NAME}: ${_ARGS_GIT_REPO}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
||||||
|
GIT_TAG ${_ARGS_GIT_TAG}
|
||||||
|
GIT_SHALLOW FALSE
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
UPDATE_DISCONNECTED TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
if(${_ARGS_EXCLUDE_FROM_ALL})
|
if(${_ARGS_EXCLUDE_FROM_ALL})
|
||||||
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
||||||
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
||||||
|
|||||||
@@ -111,17 +111,44 @@ if(NOT COMMAND FindOrFetch)
|
|||||||
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
find_package(${_ARGS_PACKAGE_NAME} REQUIRED)
|
||||||
message(CHECK_PASS "found")
|
message(CHECK_PASS "found")
|
||||||
else()
|
else()
|
||||||
message(CHECK_START
|
set(USE_LOCAL_TARBALL FALSE)
|
||||||
"mujoco::FindOrFetch: Using FetchContent to retrieve `${_ARGS_LIBRARY_NAME}`"
|
if(MUJOCO_CMAKE_DEP_CACHE)
|
||||||
)
|
# Try to find versioned library tarball.
|
||||||
FetchContent_Declare(
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}-${_ARGS_GIT_TAG}.tar.gz")
|
||||||
${_ARGS_LIBRARY_NAME}
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
GIT_TAG ${_ARGS_GIT_TAG}
|
else()
|
||||||
GIT_SHALLOW FALSE
|
# Try to find generic library tarball.
|
||||||
PATCH_COMMAND ${_ARGS_PATCH_COMMAND}
|
set(TARBALL_PATH "${MUJOCO_CMAKE_DEP_CACHE}/${_ARGS_LIBRARY_NAME}.tar.gz")
|
||||||
UPDATE_DISCONNECTED TRUE
|
if(EXISTS "${TARBALL_PATH}")
|
||||||
)
|
set(USE_LOCAL_TARBALL TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(_ARGS_PATCH_COMMAND)
|
||||||
|
set(_WRAPPED_PATCH_COMMAND ${CMAKE_COMMAND} -E env GIT_CEILING_DIRECTORIES=${CMAKE_BINARY_DIR} ${_ARGS_PATCH_COMMAND})
|
||||||
|
else()
|
||||||
|
set(_WRAPPED_PATCH_COMMAND)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(USE_LOCAL_TARBALL)
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using package cache for ${_ARGS_LIBRARY_NAME}: ${TARBALL_PATH}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
URL ${TARBALL_PATH}
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "mujoco::FindOrFetch: Using FetchContent for ${_ARGS_LIBRARY_NAME}: ${_ARGS_GIT_REPO}")
|
||||||
|
FetchContent_Declare(
|
||||||
|
${_ARGS_LIBRARY_NAME}
|
||||||
|
GIT_REPOSITORY ${_ARGS_GIT_REPO}
|
||||||
|
GIT_TAG ${_ARGS_GIT_TAG}
|
||||||
|
GIT_SHALLOW FALSE
|
||||||
|
PATCH_COMMAND ${_WRAPPED_PATCH_COMMAND}
|
||||||
|
UPDATE_DISCONNECTED TRUE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
if(${_ARGS_EXCLUDE_FROM_ALL})
|
if(${_ARGS_EXCLUDE_FROM_ALL})
|
||||||
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
FetchContent_GetProperties(${_ARGS_LIBRARY_NAME})
|
||||||
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
if(NOT ${${_ARGS_LIBRARY_NAME}_POPULATED})
|
||||||
|
|||||||
Reference in New Issue
Block a user