summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorYour Name2022-07-18 23:59:55 +0800
committerYour Name2022-07-18 23:59:55 +0800
commit2283ddad4601398e87aad69f423dbd8578c71b94 (patch)
tree5dcea5c31f169a8a17a3de59139300c67eb6520c
parenta6a518cf47d21e75a0b092dabf7f0e88d8232840 (diff)
downloadaur-2283ddad4601398e87aad69f423dbd8578c71b94.tar.gz
Use system qhull
-rw-r--r--.SRCINFO5
-rw-r--r--PKGBUILD7
-rw-r--r--mujoco.patch63
3 files changed, 64 insertions, 11 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 70ca128f8bf1..4fc0992a0811 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = mujoco
pkgdesc = Multi-Joint dynamics with Contact. A general purpose physics simulator.
pkgver = 2.2.1
- pkgrel = 1
+ pkgrel = 2
url = https://www.mujoco.org
arch = x86_64
license = Apache
@@ -15,9 +15,10 @@ pkgbase = mujoco
depends = glfw
depends = tinyxml2
depends = tinyobjloader
+ depends = qhull
source = https://github.com/deepmind/mujoco/archive/refs/tags/2.2.1.tar.gz
source = mujoco.patch
sha256sums = e7fa0821c993073b19bd8034df63661e309edcdc2d602101c3f9b28201574ded
- sha256sums = fa5799290dd68bd2bdd520515484112c3a72079af6425ee6d01b6865e81bdab1
+ sha256sums = fa3ec3a529a80aa74804c23fe8b7a0d3ddebd0c86cef1597e60aaf5cb39c7317
pkgname = mujoco
diff --git a/PKGBUILD b/PKGBUILD
index b5b14202b30b..fcd386907e62 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,21 +1,22 @@
pkgname=mujoco
pkgver=2.2.1
-pkgrel=1
+pkgrel=2
pkgdesc="Multi-Joint dynamics with Contact. A general purpose physics simulator."
arch=('x86_64')
url="https://www.mujoco.org"
license=('Apache')
-depends=('libccd' 'libgl' 'glfw' 'tinyxml2' 'tinyobjloader')
+depends=('libccd' 'libgl' 'glfw' 'tinyxml2' 'tinyobjloader' 'qhull')
makedepends=('abseil-cpp' 'gtest' 'benchmark' 'cmake' 'git')
source=("https://github.com/deepmind/mujoco/archive/refs/tags/$pkgver.tar.gz"
"${pkgname}.patch")
sha256sums=('e7fa0821c993073b19bd8034df63661e309edcdc2d602101c3f9b28201574ded'
- 'fa5799290dd68bd2bdd520515484112c3a72079af6425ee6d01b6865e81bdab1')
+ 'fa3ec3a529a80aa74804c23fe8b7a0d3ddebd0c86cef1597e60aaf5cb39c7317')
prepare() {
cd "${pkgname}-${pkgver}"
# Use as many system libs as possible
+ # Patch to use system qhull comes from https://github.com/conda-forge/staged-recipes/pull/19049
patch -Np1 -i "${srcdir}/${pkgname}.patch"
}
diff --git a/mujoco.patch b/mujoco.patch
index 739f11da6fd6..e51e459a692f 100644
--- a/mujoco.patch
+++ b/mujoco.patch
@@ -1,8 +1,42 @@
diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake
-index 56a1e64..7b95bfe 100644
+index b13a3ec..967d438 100644
--- a/cmake/MujocoDependencies.cmake
+++ b/cmake/MujocoDependencies.cmake
-@@ -141,7 +141,7 @@ target_link_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+@@ -106,9 +106,9 @@ find_package(Git REQUIRED)
+
+ findorfetch(
+ USE_SYSTEM_PACKAGE
+- OFF
++ ON
+ PACKAGE_NAME
+- qhull
++ Qhull
+ LIBRARY_NAME
+ qhull
+ GIT_REPO
+@@ -130,18 +130,22 @@ findorfetch(
+ "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})
++if(NOT TARGET qhullstatic_r)
++ add_library(qhullstatic_r INTERFACE)
++ target_link_libraries(qhullstatic_r INTERFACE Qhull::qhull_r)
++ # Workaround as headers are installed in <prefix>/include/libqhull_r/something.h
++ # but mujoco include them as #include <something.h>
++ get_property(qhull_include_dirs TARGET Qhull::qhull_r PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
++ foreach(qhull_include_dir IN LISTS qhull_include_dirs)
++ target_include_directories(qhullstatic_r INTERFACE ${qhull_include_dirs}/libqhull_r)
++ endforeach()
++ target_include_directories(qhullstatic_r INTERFACE )
++endif()
+
set(tinyxml2_BUILD_TESTING OFF)
findorfetch(
USE_SYSTEM_PACKAGE
@@ -11,14 +45,12 @@ index 56a1e64..7b95bfe 100644
PACKAGE_NAME
tinyxml2
LIBRARY_NAME
-@@ -154,12 +154,12 @@ findorfetch(
+@@ -154,12 +158,10 @@ findorfetch(
tinyxml2
EXCLUDE_FROM_ALL
)
-target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
-+#target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
-+#target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
findorfetch(
USE_SYSTEM_PACKAGE
@@ -27,7 +59,7 @@ index 56a1e64..7b95bfe 100644
PACKAGE_NAME
tinyobjloader
LIBRARY_NAME
-@@ -177,7 +177,7 @@ set(ENABLE_DOUBLE_PRECISION ON)
+@@ -177,7 +179,7 @@ set(ENABLE_DOUBLE_PRECISION ON)
set(CCD_HIDE_ALL_SYMBOLS ON)
findorfetch(
USE_SYSTEM_PACKAGE
@@ -36,6 +68,15 @@ index 56a1e64..7b95bfe 100644
PACKAGE_NAME
ccd
LIBRARY_NAME
+@@ -190,8 +192,6 @@ findorfetch(
+ ccd
+ EXCLUDE_FROM_ALL
+ )
+-target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS})
+-target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS})
+
+ # 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.
@@ -217,7 +217,7 @@ if(MUJOCO_BUILD_TESTS)
set(ABSL_BUILD_TESTING OFF)
findorfetch(
@@ -63,6 +104,16 @@ index 56a1e64..7b95bfe 100644
PACKAGE_NAME
benchmark
LIBRARY_NAME
+@@ -297,6 +297,9 @@ endif()
+
+ if(MUJOCO_TEST_PYTHON_UTIL)
+ add_compile_definitions(EIGEN_MPL2_ONLY)
++ find_package(Eigen3 REQUIRED)
++ # Doing that so the next if is not triggered
++ add_library(eigen ALIAS Eigen3::Eigen)
+ if(NOT TARGET eigen)
+ # Support new IN_LIST if() operator.
+ set(CMAKE_POLICY_DEFAULT_CMP0057 NEW)
diff --git a/sample/cmake/SampleDependencies.cmake b/sample/cmake/SampleDependencies.cmake
index 14cc943..588e788 100644
--- a/sample/cmake/SampleDependencies.cmake