From 83a619c5b7bc811864aa3996e4744f32e08bec09 Mon Sep 17 00:00:00 2001 From: Taylor Howell Date: Mon, 15 Sep 2025 11:40:08 +0100 Subject: [PATCH] patch for cmake_minimum_required version --- CMakeLists.txt | 3 ++- cmake/MujocoDependencies.cmake | 6 ++++++ cmake/UpdateCMakeMinimumRequired.cmake | 10 ++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 cmake/UpdateCMakeMinimumRequired.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d7f79d04..4eb13b43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -cmake_minimum_required(VERSION 3.16) +set(MUJOCO_CMAKE_MIN_REQ "3.16") +cmake_minimum_required(VERSION ${MUJOCO_CMAKE_MIN_REQ}) # Make CMAKE_C_VISIBILITY_PRESET work properly. set(CMAKE_POLICY_DEFAULT_CMP0063 NEW) diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake index 81fde269..44aad6ed 100644 --- a/cmake/MujocoDependencies.cmake +++ b/cmake/MujocoDependencies.cmake @@ -78,6 +78,8 @@ mark_as_advanced(MUJOCO_DEP_VERSION_TriangleMeshDistance) include(FetchContent) include(FindOrFetch) +set(PATCH_SCRIPT ${PROJECT_SOURCE_DIR}/cmake/UpdateCMakeMinimumRequired.cmake) + # Override the BUILD_SHARED_LIBS setting, just for building third party libs (since we always want # static libraries). The ccd CMakeLists.txt doesn't expose an option to build a static ccd library, # unless BUILD_SHARED_LIBS is set. @@ -179,6 +181,8 @@ findorfetch( https://github.com/tinyobjloader/tinyobjloader.git GIT_TAG ${MUJOCO_DEP_VERSION_tinyobjloader} + PATCH_COMMAND + ${CMAKE_COMMAND} -DDESIRED_VERSION=${MUJOCO_CMAKE_MIN_REQ} -DTARGET_FILE=/CMakeLists.txt -P ${PATCH_SCRIPT} TARGETS tinyobjloader EXCLUDE_FROM_ALL @@ -211,6 +215,8 @@ findorfetch( https://github.com/danfis/libccd.git GIT_TAG ${MUJOCO_DEP_VERSION_ccd} + PATCH_COMMAND + ${CMAKE_COMMAND} -DDESIRED_VERSION=${MUJOCO_CMAKE_MIN_REQ} -DTARGET_FILE=/CMakeLists.txt -P ${PATCH_SCRIPT} TARGETS ccd EXCLUDE_FROM_ALL diff --git a/cmake/UpdateCMakeMinimumRequired.cmake b/cmake/UpdateCMakeMinimumRequired.cmake new file mode 100644 index 00000000..e126b611 --- /dev/null +++ b/cmake/UpdateCMakeMinimumRequired.cmake @@ -0,0 +1,10 @@ +file(READ "${TARGET_FILE}" FILE_CONTENTS) + +string(REGEX REPLACE + "cmake_minimum_required\\(VERSION [0-9\\.]+\\)" + "cmake_minimum_required(VERSION ${DESIRED_VERSION})" + NEW_CONTENTS + "${FILE_CONTENTS}" +) + +file(WRITE "${TARGET_FILE}" "${NEW_CONTENTS}")