Unverified Commit 8f29d980 authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

mujoco: 3.3.4 -> 3.3.5 (#433484)

parents 8766d9c4 f3811f2f
Loading
Loading
Loading
Loading
+16 −55
Original line number Diff line number Diff line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a4794196..66525432 100644
index 1780f874..3ac02be6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -140,7 +140,7 @@ target_link_libraries(
@@ -12,7 +12,7 @@ index a4794196..66525432 100644
 
 set_target_properties(
diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake
index cb17621a..e1bd0e9d 100644
index 5cdc33cb..a4c9f61f 100644
--- a/cmake/MujocoDependencies.cmake
+++ b/cmake/MujocoDependencies.cmake
@@ -93,8 +93,6 @@ set(BUILD_SHARED_LIBS
@@ -62,7 +62,7 @@ index cb17621a..e1bd0e9d 100644
   EXCLUDE_FROM_ALL
 )
 target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
@@ -175,35 +163,32 @@ findorfetch(
@@ -175,10 +163,6 @@ findorfetch(
   tinyobjloader
   LIBRARY_NAME
   tinyobjloader
@@ -73,42 +73,16 @@ index cb17621a..e1bd0e9d 100644
   TARGETS
   tinyobjloader
   EXCLUDE_FROM_ALL
@@ -187,8 +171,6 @@ findorfetch(
 if(NOT TARGET trianglemeshdistance)
   FetchContent_Declare(
     trianglemeshdistance
-    GIT_REPOSITORY https://github.com/InteractiveComputerGraphics/TriangleMeshDistance.git
-    GIT_TAG ${MUJOCO_DEP_VERSION_TriangleMeshDistance}
   )
 
+option(MUJOCO_USE_SYSTEM_sdflib "Use installed sdflib version." OFF)
+mark_as_advanced(MUJOCO_USE_SYSTEM_sdflib)
+
 option(SDFLIB_USE_ASSIMP OFF)
 option(SDFLIB_USE_OPENMP OFF)
 option(SDFLIB_USE_ENOKI OFF)
 findorfetch(
   USE_SYSTEM_PACKAGE
-  OFF
+  ${MUJOCO_USE_SYSTEM_sdflib}
   PACKAGE_NAME
-  sdflib
+  SdfLib
   LIBRARY_NAME
   sdflib
-  GIT_REPO
-  https://github.com/UPC-ViRVIG/SdfLib.git
-  GIT_TAG
-  ${MUJOCO_DEP_VERSION_sdflib}
   TARGETS
-  SdfLib
+  SdfLib::SdfLib
   EXCLUDE_FROM_ALL
 )
-target_compile_options(SdfLib PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-target_link_options(SdfLib PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+if(NOT MUJOCO_USE_SYSTEM_sdflib)
+  target_compile_options(SdfLib PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+  target_link_options(SdfLib PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+endif()
 
 set(ENABLE_DOUBLE_PRECISION ON)
 set(CCD_HIDE_ALL_SYMBOLS ON)
@@ -214,10 +199,6 @@ findorfetch(
   FetchContent_GetProperties(trianglemeshdistance)
@@ -207,10 +189,6 @@ findorfetch(
   ccd
   LIBRARY_NAME
   ccd
@@ -119,7 +93,7 @@ index cb17621a..e1bd0e9d 100644
   TARGETS
   ccd
   EXCLUDE_FROM_ALL
@@ -254,10 +235,6 @@ if(MUJOCO_BUILD_TESTS)
@@ -247,10 +225,6 @@ if(MUJOCO_BUILD_TESTS)
     absl
     LIBRARY_NAME
     abseil-cpp
@@ -130,7 +104,7 @@ index cb17621a..e1bd0e9d 100644
     TARGETS
     absl::core_headers
     EXCLUDE_FROM_ALL
@@ -281,14 +258,9 @@ if(MUJOCO_BUILD_TESTS)
@@ -274,14 +248,9 @@ if(MUJOCO_BUILD_TESTS)
     GTest
     LIBRARY_NAME
     googletest
@@ -147,7 +121,7 @@ index cb17621a..e1bd0e9d 100644
     EXCLUDE_FROM_ALL
   )
 
@@ -315,10 +287,6 @@ if(MUJOCO_BUILD_TESTS)
@@ -308,10 +277,6 @@ if(MUJOCO_BUILD_TESTS)
     benchmark
     LIBRARY_NAME
     benchmark
@@ -158,7 +132,7 @@ index cb17621a..e1bd0e9d 100644
     TARGETS
     benchmark::benchmark
     benchmark::benchmark_main
@@ -329,14 +297,12 @@ endif()
@@ -322,14 +287,12 @@ endif()
 
 if(MUJOCO_TEST_PYTHON_UTIL)
   add_compile_definitions(EIGEN_MPL2_ONLY)
@@ -174,19 +148,6 @@ index cb17621a..e1bd0e9d 100644
     )
 
     FetchContent_GetProperties(Eigen3)
diff --git a/plugin/sdf/CMakeLists.txt b/plugin/sdf/CMakeLists.txt
index 8b834971..25021fa1 100644
--- a/plugin/sdf/CMakeLists.txt
+++ b/plugin/sdf/CMakeLists.txt
@@ -37,7 +37,7 @@ set(MUJOCO_SDF_SRCS
 add_library(sdf_plugin SHARED)
 target_sources(sdf_plugin PRIVATE ${MUJOCO_SDF_SRCS})
 target_include_directories(sdf_plugin PRIVATE ${MUJOCO_SDF_INCLUDE})
-target_link_libraries(sdf_plugin PRIVATE mujoco SdfLib)
+target_link_libraries(sdf_plugin PRIVATE mujoco SdfLib::SdfLib)
 target_compile_options(
   sdf_plugin
   PRIVATE ${AVX_COMPILE_OPTIONS}
diff --git a/python/mujoco/util/CMakeLists.txt b/python/mujoco/util/CMakeLists.txt
index 666a3725..d89bb499 100644
--- a/python/mujoco/util/CMakeLists.txt
+12 −59
Original line number Diff line number Diff line
@@ -36,8 +36,8 @@ let
    eigen3 = fetchFromGitLab {
      owner = "libeigen";
      repo = "eigen";
      rev = "81044ec13df7608d0d9d86aff2ef9805fc69bed1";
      hash = "sha256-W0uonGzjDaN2RbY2U+Kl1a5/nrEZ9T9W426f+a7NUzY=";
      rev = "4be7e6b4e0a82853e853c0c7c4ef72f395e1f497";
      hash = "sha256-SOTQ9j8YCsEuxNULsulQ0bmtxOZJKF7zc4GZOQlrmdo=";
    };
    googletest = fetchFromGitHub {
      owner = "google";
@@ -54,8 +54,8 @@ let
    qhull = fetchFromGitHub {
      owner = "qhull";
      repo = "qhull";
      rev = "c7bee59d068a69f427b1273e71cdc5bc455a5bdd";
      hash = "sha256-RnuaRrWMQ1rFfb/nxE0ukIoBf2AMG5pRyFmKmvsJ/U8=";
      rev = "62ccc56af071eaa478bef6ed41fd7a55d3bb2d80";
      hash = "sha256-kIxHtE0L/axV9WKnQzyFN0mxoIFAI33Z+MP0P/MtQPw=";
    };
    tinyobjloader = fetchFromGitHub {
      owner = "tinyobjloader";
@@ -75,64 +75,18 @@ let
      rev = "f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d";
      hash = "sha256-90ei0lpJA8XuVGI0rGb3md0Qtq8/bdkU7dUCHpp88Bw=";
    };

    tmd = stdenv.mkDerivation {
      name = "TriangleMeshDistance";

      src = fetchFromGitHub {
    trianglemeshdistance = fetchFromGitHub {
      owner = "InteractiveComputerGraphics";
      repo = "TriangleMeshDistance";
        rev = "e55a15c20551f36242fd6368df099a99de71d43a";
        hash = "sha256-vj6TMMT8mp7ciLa5nzVAhMWPcAHXq+ZwHlWsRA3uCmg=";
      rev = "2cb643de1436e1ba8e2be49b07ec5491ac604457";
      hash = "sha256-qG/8QKpOnUpUQJ1nLj+DFoLnUr+9oYkJPqUhwEQD2pc=";
    };

      installPhase = ''
        mkdir -p $out/include/tmd
        cp TriangleMeshDistance/include/tmd/TriangleMeshDistance.h $out/include/tmd/
      '';
    };

    sdflib = stdenv.mkDerivation {
      name = "SdfLib";

      src = fetchFromGitHub {
        owner = "UPC-ViRVIG";
        repo = "SdfLib";
        rev = "1927bee6bb8225258a39c8cbf14e18a4d50409ae";
        hash = "sha256-+SFUOdZ6pGZvnQa0mT+yfbTMHWe2CTOlroXcuVBHdOE=";
      };

      patches = [ ./sdflib-system-deps.patch ];

      cmakeFlags = [
        (lib.cmakeBool "SDFLIB_USE_ASSIMP" false)
        (lib.cmakeBool "SDFLIB_USE_OPENMP" false)
        (lib.cmakeBool "SDFLIB_USE_ENOKI" false)
        (lib.cmakeBool "SDFLIB_USE_SYSTEM_GLM" true)
        (lib.cmakeBool "SDFLIB_USE_SYSTEM_SPDLOG" true)
        (lib.cmakeBool "SDFLIB_USE_SYSTEM_CEREAL" true)
        (lib.cmakeBool "SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE" true)
      ];

      nativeBuildInputs = [ cmake ];
      buildInputs = [
        pin.tmd

        # Mainline. The otherwise pinned glm release from 2018 does
        # not build due to test failures and missing files.
        glm

        spdlog
        cereal_1_3_2
      ];
    };

  };

in
stdenv.mkDerivation (finalAttrs: {
  pname = "mujoco";
  version = "3.3.4";
  version = "3.3.5";

  # Bumping version? Make sure to look though the MuJoCo's commit
  # history for bumped dependency pins!
@@ -140,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
    owner = "google-deepmind";
    repo = "mujoco";
    tag = finalAttrs.version;
    hash = "sha256-nssmGJRrk1BECmeU4OEs/jLK3MdA6ytIJ9Yqaiuf0Aw=";
    hash = "sha256-HykExdosK5XpAOQeic/jsc6yYxjdoiaP8rRkA/yAfuU=";
  };

  patches = [ ./mujoco-system-deps-dont-fetch.patch ];
@@ -148,7 +102,6 @@ stdenv.mkDerivation (finalAttrs: {
  nativeBuildInputs = [ cmake ];

  buildInputs = [
    pin.sdflib
    glm

    # non-numerical
@@ -158,7 +111,6 @@ stdenv.mkDerivation (finalAttrs: {
  ];

  cmakeFlags = [
    (lib.cmakeBool "MUJOCO_USE_SYSTEM_sdflib" true)
    (lib.cmakeBool "MUJOCO_SIMULATE_USE_SYSTEM_GLFW" true)
    (lib.cmakeBool "MUJOCO_SAMPLES_USE_SYSTEM_GLFW" true)
  ];
@@ -175,6 +127,7 @@ stdenv.mkDerivation (finalAttrs: {
    ln -s ${pin.qhull} build/_deps/qhull-src
    ln -s ${pin.tinyobjloader} build/_deps/tinyobjloader-src
    ln -s ${pin.tinyxml2} build/_deps/tinyxml2-src
    ln -s ${pin.trianglemeshdistance} build/_deps/trianglemeshdistance-src
    ln -s ${pin.marchingcubecpp} build/_deps/marchingcubecpp-src
  '';

+0 −192
Original line number Diff line number Diff line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 251c456..3d30231 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,7 +27,7 @@ option(SDFLIB_USE_SYSTEM_GLM "Use glm library via find_package instead of downlo
 option(SDFLIB_USE_SYSTEM_SPDLOG "Use spdlog library via find_package instead of downloading it" OFF)
 option(SDFLIB_USE_SYSTEM_CEREAL "Use cereal library via find_package instead of downloading it" OFF)
 option(SDFLIB_USE_SYSTEM_ASSIMP "Use assimp library via find_package instead of downloading it" OFF)
-
+option(SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE "Use TriangleMeshDistance library via system includes instead of downloading it" OFF)
 
 if(SDFLIB_DEBUG_INFO)
     add_compile_definitions(SDFLIB_PRINT_STATISTICS)
@@ -55,13 +55,52 @@ file(GLOB UTILS_SOURCE_FILES src/utils/*.cpp)
 file(GLOB UTILS_HEADER_FILES src/utils/*.h)
 
 # Add libraries
-add_library(${PROJECT_NAME} STATIC  ${SOURCE_FILES} ${HEADER_FILES} ${PUBLIC_HEADER_FILES}
-                                    ${SDF_SOURCE_FILES} ${SDF_HEADER_FILES}
-                                    ${UTILS_SOURCE_FILES} ${UTILS_HEADER_FILES})
-
-target_include_directories(${PROJECT_NAME} PUBLIC include/)
+add_library(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${PUBLIC_HEADER_FILES}
+                            ${SDF_SOURCE_FILES} ${SDF_HEADER_FILES}
+                            ${UTILS_SOURCE_FILES} ${UTILS_HEADER_FILES})
+add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
+if(BUILD_SHARED_LIBS AND WIN32)
+    set_target_properties(${PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif()
+include(GNUInstallDirs)
+target_include_directories(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+                                                  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
 target_include_directories(${PROJECT_NAME} PRIVATE src/)
 
+# Install library and CMake config files
+install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME})
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/SdfLib
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+install(EXPORT ${PROJECT_NAME}
+        FILE ${PROJECT_NAME}Targets.cmake
+        DESTINATION lib/cmake/${PROJECT_NAME}
+        NAMESPACE ${PROJECT_NAME}::
+)
+
+include(CMakePackageConfigHelpers)
+set(PACKAGE_DEPENDENCIES "")
+if(SDFLIB_USE_SYSTEM_GLM)
+    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(glm)\n")
+endif()
+if(SDFLIB_USE_SYSTEM_SPDLOG)
+    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(spdlog)\n")
+endif()
+if(SDFLIB_USE_SYSTEM_CEREAL)
+    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(cereal)\n")
+endif()
+if(SDFLIB_USE_ASSIMP AND SDFLIB_USE_SYSTEM_ASSIMP)
+    string(APPEND PACKAGE_DEPENDENCIES "find_dependency(assimp)\n")
+endif()
+
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in
+                              "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+                              INSTALL_DESTINATION "lib/cmake/${PROJECT_NAME}"
+                              NO_SET_AND_CHECK_MACRO
+                              NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+        DESTINATION lib/cmake/${PROJECT_NAME})
+
 # Add shaders
 file(GLOB SHADER_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/shaders 
                        src/render_engine/shaders/*.frag 
@@ -69,7 +108,7 @@ file(GLOB SHADER_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/sh
                        src/render_engine/shaders/*.comp)
 
 foreach(SHADER IN LISTS SHADER_FILES)
-    add_custom_command(OUTPUT ${SHADER}
+add_custom_command(OUTPUT ${SHADER}
             COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/src/render_engine/shaders/${SHADER} $<TARGET_FILE_DIR:${PROJECT_NAME}>/shaders/${SHADER}
             DEPENDS src/render_engine/shaders/${SHADER}
         )
@@ -112,7 +151,10 @@ endif()
 target_link_libraries(${PROJECT_NAME} PUBLIC ${SDFLIB_GLM_TARGET})
 target_link_libraries(${PROJECT_NAME} PUBLIC spdlog::spdlog)
 target_link_libraries(${PROJECT_NAME} PUBLIC cereal::cereal)
-target_link_libraries(${PROJECT_NAME} PUBLIC icg)
+
+if(NOT SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE)
+    target_link_libraries(${PROJECT_NAME} PUBLIC TriangleMeshDistance)
+endif()
 
 if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
     target_link_libraries(${PROJECT_NAME} PUBLIC -lstdc++fs)
diff --git a/SdfLibConfig.cmake.in b/SdfLibConfig.cmake.in
new file mode 100644
index 0000000..9b8265c
--- /dev/null
+++ b/SdfLibConfig.cmake.in
@@ -0,0 +1,7 @@
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+
+@PACKAGE_DEPENDENCIES@
+
+include("${CMAKE_CURRENT_LIST_DIR}/SdfLibTargets.cmake")
diff --git a/include/SdfLib/TrianglesInfluence.h b/include/SdfLib/TrianglesInfluence.h
index fc2ca52..b276f23 100644
--- a/include/SdfLib/TrianglesInfluence.h
+++ b/include/SdfLib/TrianglesInfluence.h
@@ -11,7 +11,7 @@
 #include "InterpolationMethods.h"
 #include "utils/Timer.h"
 #include "utils/GJK.h"
-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
+#include <tmd/TriangleMeshDistance.h>
 
 #include <vector>
 #include <array>
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
index 79f70c1..e2a4f10 100644
--- a/libs/CMakeLists.txt
+++ b/libs/CMakeLists.txt
@@ -137,9 +137,10 @@ if(SDFLIB_BUILD_APPS OR SDFLIB_BUILD_DEBUG_APPS)
 	target_include_directories(stb_image INTERFACE stb)
  endif()
 
-# icg
-add_library(icg INTERFACE)
-target_include_directories(icg INTERFACE InteractiveComputerGraphics)
+if (NOT SDFLIB_USE_SYSTEM_TRIANGLEMESHDISTANCE)
+	add_library(TriangleMeshDistance INTERFACE)
+	target_include_directories(TriangleMeshDistance INTERFACE InteractiveComputerGraphics)
+endif()
 
 if(SDFLIB_BUILD_APPS OR SDFLIB_BUILD_DEBUG_APPS)
 	# glfw
diff --git a/libs/InteractiveComputerGraphics/InteractiveComputerGraphics/TriangleMeshDistance.h b/libs/InteractiveComputerGraphics/tmd/TriangleMeshDistance.h
similarity index 100%
rename from libs/InteractiveComputerGraphics/InteractiveComputerGraphics/TriangleMeshDistance.h
rename to libs/InteractiveComputerGraphics/tmd/TriangleMeshDistance.h
diff --git a/src/tools/ImageQueryTime/main.cpp b/src/tools/ImageQueryTime/main.cpp
index 357a78b..f4fd9e7 100644
--- a/src/tools/ImageQueryTime/main.cpp
+++ b/src/tools/ImageQueryTime/main.cpp
@@ -17,7 +17,7 @@
 
 #define TEST_METHODS 
 #ifdef TEST_METHODS
-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
+#include <tmd/TriangleMeshDistance.h>
 // #include <CGAL/Simple_cartesian.h>
 // #include <CGAL/AABB_tree.h>
 // #include <CGAL/AABB_traits.h>
diff --git a/src/tools/SdfErrorCompare/main.cpp b/src/tools/SdfErrorCompare/main.cpp
index deef25f..9e402c4 100644
--- a/src/tools/SdfErrorCompare/main.cpp
+++ b/src/tools/SdfErrorCompare/main.cpp
@@ -23,7 +23,7 @@ using namespace sdflib;
 // #define TEST_OPENVDB
 
 #ifdef TEST_ICG
-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
+#include <tmd/TriangleMeshDistance.h>
 #endif
 #ifdef TEST_CGAL
 #include <CGAL/Simple_cartesian.h>
diff --git a/src/tools/SdfLibUnity/SdfExportFunc.cpp b/src/tools/SdfLibUnity/SdfExportFunc.cpp
index ff4e017..7e06ada 100644
--- a/src/tools/SdfLibUnity/SdfExportFunc.cpp
+++ b/src/tools/SdfLibUnity/SdfExportFunc.cpp
@@ -1,7 +1,7 @@
 #include "SdfExportFunc.h"
 #include "spdlog/sinks/rotating_file_sink.h"
 
-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
+#include <tmd/TriangleMeshDistance.h>
 
 using namespace sdflib;
 
diff --git a/src/tools/SdfOffsets/main.cpp b/src/tools/SdfOffsets/main.cpp
index b6769d7..07f137b 100644
--- a/src/tools/SdfOffsets/main.cpp
+++ b/src/tools/SdfOffsets/main.cpp
@@ -9,7 +9,7 @@
 #include <glm/gtc/type_ptr.hpp>
 #include <glm/gtc/matrix_transform.hpp>
 
-#include <InteractiveComputerGraphics/TriangleMeshDistance.h>
+#include <tmd/TriangleMeshDistance.h>
 #include <CGAL/Surface_mesh_default_triangulation_3.h>
 #include <CGAL/Complex_2_in_triangulation_3.h>
 #include <CGAL/make_surface_mesh.h>
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ buildPythonPackage rec {
  # in the project's CI.
  src = fetchPypi {
    inherit pname version;
    hash = "sha256-c9dk/pji3tnSx15k71axDUTHiDOVFmAwmVpKw++5o20=";
    hash = "sha256-+fxlUPye2XaCI9stezzDK1oC656IcoK0DkUcJmrxakY=";
  };

  nativeBuildInputs = [ cmake ];