aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/mujoco
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/mujoco')
-rw-r--r--vcpkg/ports/mujoco/disable-werror.patch24
-rw-r--r--vcpkg/ports/mujoco/fix_dependencies.patch207
-rw-r--r--vcpkg/ports/mujoco/portfile.cmake33
-rw-r--r--vcpkg/ports/mujoco/usage4
-rw-r--r--vcpkg/ports/mujoco/vcpkg.json31
5 files changed, 299 insertions, 0 deletions
diff --git a/vcpkg/ports/mujoco/disable-werror.patch b/vcpkg/ports/mujoco/disable-werror.patch
new file mode 100644
index 0000000..78e02b4
--- /dev/null
+++ b/vcpkg/ports/mujoco/disable-werror.patch
@@ -0,0 +1,24 @@
+diff --git a/cmake/MujocoOptions.cmake b/cmake/MujocoOptions.cmake
+index de146d8..7657fa5 100644
+--- a/cmake/MujocoOptions.cmake
++++ b/cmake/MujocoOptions.cmake
+@@ -86,7 +86,6 @@ get_mujoco_extra_link_options(EXTRA_LINK_OPTIONS)
+
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC))
+ set(EXTRA_COMPILE_OPTIONS
+- -Werror
+ -Wall
+ -Wpedantic
+ -Wimplicit-fallthrough
+diff --git a/simulate/cmake/SimulateOptions.cmake b/simulate/cmake/SimulateOptions.cmake
+index de146d8..7657fa5 100644
+--- a/simulate/cmake/SimulateOptions.cmake
++++ b/simulate/cmake/SimulateOptions.cmake
+@@ -86,7 +86,6 @@ get_mujoco_extra_link_options(EXTRA_LINK_OPTIONS)
+
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC))
+ set(EXTRA_COMPILE_OPTIONS
+- -Werror
+ -Wall
+ -Wpedantic
+ -Wimplicit-fallthrough
diff --git a/vcpkg/ports/mujoco/fix_dependencies.patch b/vcpkg/ports/mujoco/fix_dependencies.patch
new file mode 100644
index 0000000..317b045
--- /dev/null
+++ b/vcpkg/ports/mujoco/fix_dependencies.patch
@@ -0,0 +1,207 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aaac4e38..58bafedb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -95,7 +95,7 @@ add_subdirectory(src/render)
+ add_subdirectory(src/thread)
+ add_subdirectory(src/ui)
+
+-target_compile_definitions(mujoco PRIVATE _GNU_SOURCE CCD_STATIC_DEFINE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE)
++target_compile_definitions(mujoco PRIVATE _GNU_SOURCE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE)
+ if(MUJOCO_ENABLE_AVX_INTRINSICS)
+ target_compile_definitions(mujoco PUBLIC mjUSEPLATFORMSIMD)
+ endif()
+@@ -118,9 +118,9 @@ target_link_libraries(
+ mujoco
+ PRIVATE ccd
+ lodepng
+- qhullstatic_r
+- tinyobjloader
+- tinyxml2
++ Qhull::qhull_r
++ tinyobjloader::tinyobjloader
++ tinyxml2::tinyxml2
+ )
+
+ set_target_properties(
+diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake
+index 23e4e71e..e4cfad28 100644
+--- a/cmake/MujocoDependencies.cmake
++++ b/cmake/MujocoDependencies.cmake
+@@ -90,7 +90,7 @@ set(BUILD_SHARED_LIBS
+ CACHE INTERNAL "Build SHARED libraries"
+ )
+
+-if(NOT TARGET lodepng)
++if(0)
+ FetchContent_Declare(
+ lodepng
+ GIT_REPOSITORY https://github.com/lvandeve/lodepng.git
+@@ -110,6 +110,7 @@ if(NOT TARGET lodepng)
+ endif()
+ endif()
+
++if(0)
+ if(NOT TARGET marchingcubecpp)
+ FetchContent_Declare(
+ marchingcubecpp
+@@ -123,36 +124,60 @@ if(NOT TARGET marchingcubecpp)
+ include_directories(${marchingcubecpp_SOURCE_DIR})
+ endif()
+ endif()
++endif()
++
++findorfetch(
++ USE_SYSTEM_PACKAGE
++ ON
++ PACKAGE_NAME
++ lodepng
++ LIBRARY_NAME
++ lodepng
++ GIT_REPO
++ https://github.com/lvandeve/lodepng.git
++ GIT_TAG
++ ${MUJOCO_DEP_VERSION_lodepng}
++ TARGETS
++ lodepng
++ EXCLUDE_FROM_ALL
++)
+
+ set(QHULL_ENABLE_TESTING OFF)
+
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+- qhull
++ Qhull
+ LIBRARY_NAME
+- qhull
++ Qhull
+ GIT_REPO
+ https://github.com/qhull/qhull.git
+ GIT_TAG
+ ${MUJOCO_DEP_VERSION_qhull}
+ TARGETS
+- qhull
++ Qhull
+ EXCLUDE_FROM_ALL
+ )
+ # MuJoCo includes a file from libqhull_r which is not exported by the qhull include directories.
+ # Add it to the target.
++if(0)
+ 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})
++endif()
++
++include_directories(
++ ${Qhull_DIR}/../../include/libqhull_r
++ ${Qhull_DIR}/../../include/marchingcubecpp
++)
+
+ set(tinyxml2_BUILD_TESTING OFF)
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ tinyxml2
+ LIBRARY_NAME
+@@ -165,12 +190,14 @@ findorfetch(
+ tinyxml2
+ EXCLUDE_FROM_ALL
+ )
++if(0)
+ target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+ target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++endif()
+
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ tinyobjloader
+ LIBRARY_NAME
+@@ -189,9 +216,9 @@ option(SDFLIB_USE_OPENMP OFF)
+ option(SDFLIB_USE_ENOKI OFF)
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+- sdflib
++ SdfLib
+ LIBRARY_NAME
+ sdflib
+ GIT_REPO
+@@ -202,14 +229,19 @@ findorfetch(
+ SdfLib
+ EXCLUDE_FROM_ALL
+ )
++
++add_library(SdfLib ALIAS SdfLib::SdfLib)
++
++if(0)
+ 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)
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+ ccd
+ LIBRARY_NAME
+@@ -222,11 +254,14 @@ findorfetch(
+ ccd
+ EXCLUDE_FROM_ALL
+ )
++if(0)
+ target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+ target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
++endif()
+
+ # 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.
++if(0)
+ if(WIN32)
+ if(MSVC)
+ # C4005 is the MSVC equivalent of -Wmacro-redefined.
+@@ -235,6 +270,7 @@ if(WIN32)
+ target_compile_options(ccd PRIVATE -Wno-macro-redefined)
+ endif()
+ endif()
++endif()
+
+ if(MUJOCO_BUILD_TESTS)
+ set(ABSL_PROPAGATE_CXX_STD ON)
+diff --git a/simulate/cmake/SimulateDependencies.cmake b/simulate/cmake/SimulateDependencies.cmake
+index 5141406c..41f399b7 100644
+--- a/simulate/cmake/SimulateDependencies.cmake
++++ b/simulate/cmake/SimulateDependencies.cmake
+@@ -86,7 +86,7 @@ findorfetch(
+ GIT_TAG
+ ${MUJOCO_DEP_VERSION_glfw3}
+ TARGETS
+- glfw
++ glfw3
+ EXCLUDE_FROM_ALL
+ )
+
+@@ -98,7 +98,7 @@ if(MUJOCO_EXTRAS_STATIC_GLFW)
+ unset(BUILD_SHARED_LIBS_OLD)
+ endif()
+
+-if(NOT SIMULATE_STANDALONE)
++if(0)
+ target_compile_options(glfw PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+ target_link_options(glfw PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+ endif()
diff --git a/vcpkg/ports/mujoco/portfile.cmake b/vcpkg/ports/mujoco/portfile.cmake
new file mode 100644
index 0000000..47ddbf9
--- /dev/null
+++ b/vcpkg/ports/mujoco/portfile.cmake
@@ -0,0 +1,33 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO deepmind/mujoco
+ REF ${VERSION}
+ SHA512 b9862c266c867771a6fbbffbb595684ebaf2c6ae1502718ee2a656e774900094f5e341b212fe8f92646a98da3e431ae4209d8130aee6c41ddc0e33259b8f63ca
+ PATCHES
+ fix_dependencies.patch
+ disable-werror.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DMUJOCO_BUILD_EXAMPLES=OFF
+ -DMUJOCO_BUILD_TESTS=OFF
+ -DMUJOCO_TEST_PYTHON_UTIL=OFF
+ -DSIMULATE_BUILD_EXECUTABLE=OFF
+ -DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON
+ -DMUJOCO_SIMULATE_USE_SYSTEM_MUJOCO=ON
+)
+
+vcpkg_cmake_install(ADD_BIN_TO_PATH)
+vcpkg_cmake_config_fixup(
+ CONFIG_PATH lib/cmake/${PORT}
+)
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+)
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
diff --git a/vcpkg/ports/mujoco/usage b/vcpkg/ports/mujoco/usage
new file mode 100644
index 0000000..9aafaa6
--- /dev/null
+++ b/vcpkg/ports/mujoco/usage
@@ -0,0 +1,4 @@
+mujoco provides CMake targets:
+
+ find_package(mujoco CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE mujoco::mujoco)
diff --git a/vcpkg/ports/mujoco/vcpkg.json b/vcpkg/ports/mujoco/vcpkg.json
new file mode 100644
index 0000000..bdcc8ea
--- /dev/null
+++ b/vcpkg/ports/mujoco/vcpkg.json
@@ -0,0 +1,31 @@
+{
+ "name": "mujoco",
+ "version": "3.3.0",
+ "description": "Multi-Joint dynamics with Contact.",
+ "homepage": "https://mujoco.org",
+ "license": "Apache-2.0",
+ "supports": "!(windows & static)",
+ "dependencies": [
+ {
+ "name": "ccd",
+ "features": [
+ "double-precision"
+ ]
+ },
+ "glfw3",
+ "lodepng",
+ "marchingcubecpp",
+ "qhull",
+ "sdflib",
+ "tinyobjloader",
+ "tinyxml2",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}