diff options
author | Your Name | 2022-07-18 23:59:55 +0800 |
---|---|---|
committer | Your Name | 2022-07-18 23:59:55 +0800 |
commit | 2283ddad4601398e87aad69f423dbd8578c71b94 (patch) | |
tree | 5dcea5c31f169a8a17a3de59139300c67eb6520c | |
parent | a6a518cf47d21e75a0b092dabf7f0e88d8232840 (diff) | |
download | aur-2283ddad4601398e87aad69f423dbd8578c71b94.tar.gz |
Use system qhull
-rw-r--r-- | .SRCINFO | 5 | ||||
-rw-r--r-- | PKGBUILD | 7 | ||||
-rw-r--r-- | mujoco.patch | 63 |
3 files changed, 64 insertions, 11 deletions
@@ -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 @@ -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 |