Description: patching upstream cmake to avoid downloading any source from
 through network, and force use system libraries for all dependencies.
Author: Mo Zhou <lumin@debian.org>
Forwarded: Not needed.
Index: mujoco/cmake/MujocoDependencies.cmake
===================================================================
--- mujoco.orig/cmake/MujocoDependencies.cmake
+++ mujoco/cmake/MujocoDependencies.cmake
@@ -79,119 +79,15 @@ set(BUILD_SHARED_LIBS
     CACHE INTERNAL "Build SHARED libraries"
 )
 
-if(NOT TARGET lodepng)
-  FetchContent_Declare(
-    lodepng
-    GIT_REPOSITORY https://github.com/lvandeve/lodepng.git
-    GIT_TAG ${MUJOCO_DEP_VERSION_lodepng}
-  )
-
-  FetchContent_GetProperties(lodepng)
-  if(NOT lodepng_POPULATED)
-    FetchContent_Populate(lodepng)
-    # This is not a CMake project.
-    set(LODEPNG_SRCS ${lodepng_SOURCE_DIR}/lodepng.cpp)
-    set(LODEPNG_HEADERS ${lodepng_SOURCE_DIR}/lodepng.h)
-    add_library(lodepng STATIC ${LODEPNG_HEADERS} ${LODEPNG_SRCS})
-    target_compile_options(lodepng PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-    target_link_options(lodepng PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
-    target_include_directories(lodepng PUBLIC ${lodepng_SOURCE_DIR})
-  endif()
-endif()
-
-# TODO(fraromano) We fetch qhull before the other libraries as it needs to go before until https://github.com/qhull/qhull/pull/111 is merged.
-set(QHULL_ENABLE_TESTING OFF)
-# We need Git to apply the patch using git apply.
-find_package(Git REQUIRED)
-
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  OFF
-  PACKAGE_NAME
-  qhull
-  LIBRARY_NAME
-  qhull
-  GIT_REPO
-  https://github.com/qhull/qhull.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_qhull}
-  TARGETS
-  qhull
-  # TODO(fraromano) Remove when https://github.com/qhull/qhull/pull/112 is merged.
-  # Do not fail if patch fails. This will happen the second time we run CMake as the sources will be already patched.
-  PATCH_COMMAND
-  "${GIT_EXECUTABLE}"
-  "apply"
-  "-q"
-  "${PROJECT_SOURCE_DIR}/cmake/qhull_fix_testing.patch"
-  "||"
-  "${CMAKE_COMMAND}"
-  "-E"
-  "true"
-  EXCLUDE_FROM_ALL
-)
-# MuJoCo includes a file from libqhull_r which is not exported by the qhull include directories.
-# Add it to the target.
-target_include_directories(
-  qhullstatic_r INTERFACE $<BUILD_INTERFACE:${qhull_SOURCE_DIR}/src/libqhull_r>
-)
-target_compile_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-target_link_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
-
-set(tinyxml2_BUILD_TESTING OFF)
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  OFF
-  PACKAGE_NAME
-  tinyxml2
-  LIBRARY_NAME
-  tinyxml2
-  GIT_REPO
-  https://github.com/leethomason/tinyxml2.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_tinyxml2}
-  TARGETS
-  tinyxml2
-  EXCLUDE_FROM_ALL
-)
-target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
-
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  OFF
-  PACKAGE_NAME
-  tinyobjloader
-  LIBRARY_NAME
-  tinyobjloader
-  GIT_REPO
-  https://github.com/tinyobjloader/tinyobjloader.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_tinyobjloader}
-  TARGETS
-  tinyobjloader
-  EXCLUDE_FROM_ALL
-)
-
-set(ENABLE_DOUBLE_PRECISION ON)
-set(CCD_HIDE_ALL_SYMBOLS ON)
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  OFF
-  PACKAGE_NAME
-  ccd
-  LIBRARY_NAME
-  ccd
-  GIT_REPO
-  https://github.com/danfis/libccd.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_ccd}
-  TARGETS
-  ccd
-  EXCLUDE_FROM_ALL
-)
-target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+execute_process(COMMAND dpkg-architecture -q DEB_HOST_MULTIARCH OUTPUT_VARIABLE MULTIARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+add_library(lodepng SHARED IMPORTED)
+find_library(LODEPNG_LIBRARY lodepng HINTS /usr/lib/${MULTIARCH}/)
+set_property(TARGET lodepng PROPERTY IMPORTED_LOCATION "${LODEPNG_LIBRARY}")
+message(${LODEPNG_LIBRARY})
+find_package(Qhull REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
+find_package(tinyxml2 REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
+find_package(tinyobjloader REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
+find_package(ccd REQUIRED HINTS /usr/lib/${MULTIARCH})
 
 # libCCD has an unconditional `#define _CRT_SECURE_NO_WARNINGS` on Windows.
 # TODO(stunya): Remove this after https://github.com/danfis/libccd/pull/77 is merged.
@@ -214,85 +110,16 @@ if(MUJOCO_BUILD_TESTS)
       CACHE INTERNAL "Build tests."
   )
 
-  set(ABSL_BUILD_TESTING OFF)
-  findorfetch(
-    USE_SYSTEM_PACKAGE
-    OFF
-    PACKAGE_NAME
-    absl
-    LIBRARY_NAME
-    abseil-cpp
-    GIT_REPO
-    https://github.com/abseil/abseil-cpp.git
-    GIT_TAG
-    ${MUJOCO_DEP_VERSION_abseil}
-    TARGETS
-    absl::core_headers
-    EXCLUDE_FROM_ALL
-  )
+  find_package(absl REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
 
   set(BUILD_TESTING
       ${BUILD_TESTING_OLD}
       CACHE BOOL "Build tests." FORCE
   )
 
-  # Avoid linking errors on Windows by dynamically linking to the C runtime.
-  set(gtest_force_shared_crt
-      ON
-      CACHE BOOL "" FORCE
-  )
-
-  findorfetch(
-    USE_SYSTEM_PACKAGE
-    OFF
-    PACKAGE_NAME
-    GTest
-    LIBRARY_NAME
-    googletest
-    GIT_REPO
-    https://github.com/google/googletest.git
-    GIT_TAG
-    ${MUJOCO_DEP_VERSION_gtest}
-    TARGETS
-    gtest
-    gmock
-    gtest_main
-    EXCLUDE_FROM_ALL
-  )
-
-  set(BENCHMARK_EXTRA_FETCH_ARGS "")
-  if(WIN32 AND NOT MSVC)
-    set(BENCHMARK_EXTRA_FETCH_ARGS
-        PATCH_COMMAND
-        "sed"
-        "-i"
-        "-e"
-        "s/-std=c++11/-std=c++14/g"
-        "-e"
-        "s/HAVE_CXX_FLAG_STD_CXX11/HAVE_CXX_FLAG_STD_CXX14/g"
-        "${CMAKE_BINARY_DIR}/_deps/benchmark-src/CMakeLists.txt"
-    )
-  endif()
+  find_package(GTest REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
+  find_package(benchmark REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
 
-  set(BENCHMARK_ENABLE_TESTING OFF)
-
-  findorfetch(
-    USE_SYSTEM_PACKAGE
-    OFF
-    PACKAGE_NAME
-    benchmark
-    LIBRARY_NAME
-    benchmark
-    GIT_REPO
-    https://github.com/google/benchmark.git
-    GIT_TAG
-    ${MUJOCO_DEP_VERSION_benchmark}
-    TARGETS
-    benchmark::benchmark
-    benchmark::benchmark_main
-    ${BENCHMARK_EXTRA_FETCH_ARGS}
-    EXCLUDE_FROM_ALL
-  )
 endif()
 
 if(MUJOCO_TEST_PYTHON_UTIL)
@@ -301,22 +128,7 @@ if(MUJOCO_TEST_PYTHON_UTIL)
     # Support new IN_LIST if() operator.
     set(CMAKE_POLICY_DEFAULT_CMP0057 NEW)
 
-    FetchContent_Declare(
-      Eigen3
-      GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
-      GIT_TAG ${MUJOCO_DEP_VERSION_Eigen3}
-    )
-
-    FetchContent_GetProperties(Eigen3)
-    if(NOT Eigen3_POPULATED)
-      FetchContent_Populate(Eigen3)
-
-      # Mark the library as IMPORTED as a workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/15415
-      add_library(Eigen3::Eigen INTERFACE IMPORTED)
-      set_target_properties(
-        Eigen3::Eigen PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${eigen3_SOURCE_DIR}"
-      )
-    endif()
+    find_package(Eigen3 REQUIRED)
   endif()
 endif()
 
Index: mujoco/sample/cmake/SampleDependencies.cmake
===================================================================
--- mujoco.orig/sample/cmake/SampleDependencies.cmake
+++ mujoco/sample/cmake/SampleDependencies.cmake
@@ -69,26 +69,7 @@ if(MUJOCO_EXTRAS_STATIC_GLFW)
   )
 endif()
 
-set(GLFW_BUILD_EXAMPLES OFF)
-set(GLFW_BUILD_TESTS OFF)
-set(GLFW_BUILD_DOCS OFF)
-set(GLFW_INSTALL OFF)
-
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  MUJOCO_SAMPLES_USE_SYSTEM_GLFW
-  PACKAGE_NAME
-  glfw
-  LIBRARY_NAME
-  glfw
-  GIT_REPO
-  https://github.com/glfw/glfw.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_glfw}
-  TARGETS
-  glfw
-  EXCLUDE_FROM_ALL
-)
+find_package(glfw3 REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
 
 if(MUJOCO_EXTRAS_STATIC_GLFW)
   set(BUILD_SHARED_LIBS
Index: mujoco/sample/CMakeLists.txt
===================================================================
--- mujoco.orig/sample/CMakeLists.txt
+++ mujoco/sample/CMakeLists.txt
@@ -168,19 +168,4 @@ if(_INSTALL_SAMPLES)
     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT samples
   )
 
-  if(NOT MUJOCO_SAMPLES_USE_SYSTEM_GLFW)
-    # We downloaded GLFW. Depending if it is a static or shared LIBRARY we might
-    # need to install it.
-    get_target_property(MJ_GLFW_LIBRARY_TYPE glfw TYPE)
-    if(MJ_GLFW_LIBRARY_TYPE STREQUAL SHARED_LIBRARY)
-      install(
-        TARGETS glfw
-        EXPORT ${PROJECT_NAME}
-        RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT samples
-        LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT samples
-        ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT samples
-        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT samples
-      )
-    endif()
-  endif()
 endif()
Index: mujoco/CMakeLists.txt
===================================================================
--- mujoco.orig/CMakeLists.txt
+++ mujoco/CMakeLists.txt
@@ -69,6 +69,7 @@ target_include_directories(
   mujoco
   PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
          $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>
+         /usr/include/libqhull_r/
   PRIVATE src
 )
 
@@ -101,7 +102,7 @@ target_link_libraries(
   mujoco
   PRIVATE ccd
           lodepng
-          qhullstatic_r
+          qhull_r
           tinyobjloader
           tinyxml2
 )
Index: mujoco/simulate/cmake/SimulateDependencies.cmake
===================================================================
--- mujoco.orig/simulate/cmake/SimulateDependencies.cmake
+++ mujoco/simulate/cmake/SimulateDependencies.cmake
@@ -74,21 +74,7 @@ set(GLFW_BUILD_TESTS OFF)
 set(GLFW_BUILD_DOCS OFF)
 set(GLFW_INSTALL OFF)
 
-findorfetch(
-  USE_SYSTEM_PACKAGE
-  MUJOCO_SIMULATE_USE_SYSTEM_GLFW
-  PACKAGE_NAME
-  glfw
-  LIBRARY_NAME
-  glfw
-  GIT_REPO
-  https://github.com/glfw/glfw.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_glfw}
-  TARGETS
-  glfw
-  EXCLUDE_FROM_ALL
-)
+find_package(glfw3 REQUIRED HINTS /usr/lib/${MULTIARCH}/cmake)
 
 if(MUJOCO_EXTRAS_STATIC_GLFW)
   set(BUILD_SHARED_LIBS
