diff options
author | Your Name | 2022-03-24 16:11:40 +0800 |
---|---|---|
committer | Your Name | 2022-03-24 16:11:40 +0800 |
commit | d367645ae1032b2109586698530ad6006c4d248f (patch) | |
tree | 970f6be834ebbf4f3133733afb1a34dcea0eb670 | |
parent | effb3a2c0acd4f1f6949a9db4ee3dd6668d1c598 (diff) | |
download | aur-d367645ae1032b2109586698530ad6006c4d248f.tar.gz |
patch to use system glew
-rw-r--r-- | .SRCINFO | 3 | ||||
-rw-r--r-- | PKGBUILD | 23 | ||||
-rw-r--r-- | mujoco.patch | 93 |
3 files changed, 103 insertions, 16 deletions
@@ -16,7 +16,10 @@ pkgbase = python-mujoco depends = python-numpy depends = python-opengl depends = mujoco + depends = glew source = git+https://github.com/deepmind/mujoco.git#tag=2.1.3 + source = mujoco.patch sha256sums = SKIP + sha256sums = 8852ea463f868859726e92b61d2f40f2f224a520f8b1b8b066933ba935b80452 pkgname = python-mujoco @@ -2,38 +2,29 @@ pkgname=python-mujoco pkgver=2.1.3 pkgrel=1 pkgdesc="Mujoco's Python bindings" -depends=('python' 'absl-py' 'python-glfw' 'python-numpy' 'python-opengl' 'mujoco') +depends=('python' 'absl-py' 'python-glfw' 'python-numpy' 'python-opengl' 'mujoco' 'glew') makedepends=('python-setuptools' 'pybind11' 'abseil-cpp' 'eigen' 'cmake') arch=('x86_64') url="https://github.com/deepmind/mujoco" license=('LGPL3') -source=("git+https://github.com/deepmind/mujoco.git#tag=$pkgver") -sha256sums=('SKIP') +source=("git+https://github.com/deepmind/mujoco.git#tag=$pkgver" +"mujoco.patch") +sha256sums=('SKIP' + '8852ea463f868859726e92b61d2f40f2f224a520f8b1b8b066933ba935b80452') build() { + cd "${srcdir}/mujoco" + patch -Np1 -i "${srcdir}/mujoco.patch" cd "${srcdir}/mujoco/python" PYTHONPATH="..:${PYTHONPATH}" python mujoco/codegen/generate_enum_traits.py > mujoco/enum_traits.h PYTHONPATH="..:${PYTHONPATH}" python mujoco/codegen/generate_function_traits.py > mujoco/function_traits.h cp ../LICENSE . mkdir -p cmake cp ../cmake/*.cmake cmake - sed -i "s/OFF$/ON/g" mujoco/CMakeLists.txt - sed -i "s/self._find_mujoco()/\"\/usr\/lib\",\"\/usr\/include\/mujoco\"/g" setup.py - sed -i "/self._copy_external_libraries()/d" setup.py - sed -i "/self._copy_mujoco_headers()/d" setup.py python setup.py build } package() { cd "${srcdir}/mujoco/python" python setup.py install --root="$pkgdir" --optimize=1 --skip-build - cd $pkgdir/$(python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')/mujoco - ln -s /usr/include/mujoco ./include - ln -s /usr/lib/libmujoco.so ./libmujoco.so - ln -s /usr/lib/libmujoco.so.$pkgver ./libmujoco.so.$pkgver - ln -s /usr/lib/libmujoco_nogl.so ./libmujoco_nogl.so - ln -s /usr/lib/libmujoco_nogl.so.$pkgver ./libmujoco_nogl.so.$pkgver - ln -s /opt/mujoco/lib/libglew.so ./libglew.so - ln -s /opt/mujoco/lib/libglewegl.so ./libglewegl.so - ln -s /opt/mujoco/lib/libglewosmesa.so ./libglewosmesa.so } diff --git a/mujoco.patch b/mujoco.patch new file mode 100644 index 000000000000..4198f1169719 --- /dev/null +++ b/mujoco.patch @@ -0,0 +1,93 @@ +diff --git a/python/mujoco/CMakeLists.txt b/python/mujoco/CMakeLists.txt +index 1ee5c8e..c00db28 100644 +--- a/python/mujoco/CMakeLists.txt ++++ b/python/mujoco/CMakeLists.txt +@@ -102,7 +102,7 @@ else() + endif() + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + absl + LIBRARY_NAME +@@ -123,7 +123,7 @@ findorfetch( + add_compile_definitions(EIGEN_MPL2_ONLY) + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + Eigen3 + LIBRARY_NAME +@@ -144,7 +144,7 @@ if(MUJOCO_PYBIND11_DIR) + else() + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + pybind11 + LIBRARY_NAME +diff --git a/python/mujoco/__init__.py b/python/mujoco/__init__.py +index 63e4e59..5351838 100644 +--- a/python/mujoco/__init__.py ++++ b/python/mujoco/__init__.py +@@ -19,7 +19,7 @@ import os + import platform + import subprocess + +-HEADERS_DIR = os.path.join(os.path.dirname(__file__), 'include') ++HEADERS_DIR = os.path.join('/usr/include/', 'mujoco') + + _MUJOCO_GL_ENABLE = ('enable', 'enabled', 'on', 'true', '1' , '') + _MUJOCO_GL_DISABLE = ('disable', 'disabled', 'off', 'false', '0') +@@ -29,23 +29,19 @@ _MUJOCO_GL_IS_VALID = True + _SYSTEM = platform.system() + if _SYSTEM == 'Linux': + libglew_name = None +- if _MUJOCO_GL in _MUJOCO_GL_ENABLE + ('glfw', 'glx'): +- libglew_name = 'libglew.so' +- elif _MUJOCO_GL == 'egl': +- libglew_name = 'libglewegl.so' +- elif _MUJOCO_GL == 'osmesa': +- libglew_name = 'libglewosmesa.so' ++ if _MUJOCO_GL in _MUJOCO_GL_ENABLE: ++ libglew_name = 'libGLEW.so' + elif _MUJOCO_GL not in _MUJOCO_GL_DISABLE: + _MUJOCO_GL_IS_VALID = False + if libglew_name is not None: +- ctypes.CDLL(os.path.join(os.path.dirname(__file__), libglew_name), ++ ctypes.CDLL(os.path.join("/usr/lib/", libglew_name), + ctypes.RTLD_GLOBAL) + ctypes.CDLL( +- os.path.join(os.path.dirname(__file__), 'libmujoco.so.2.1.3'), ++ os.path.join("/usr/lib/", 'libmujoco.so.2.1.3'), + ctypes.RTLD_GLOBAL) + else: + ctypes.CDLL( +- os.path.join(os.path.dirname(__file__), 'libmujoco_nogl.so.2.1.3'), ++ os.path.join("/usr/lib/", 'libmujoco_nogl.so.2.1.3'), + ctypes.RTLD_GLOBAL) + elif _SYSTEM == 'Windows': + if _MUJOCO_GL in _MUJOCO_GL_ENABLE + ('glfw', 'wgl'): +diff --git a/python/setup.py b/python/setup.py +index 837d5b3..4ec6338 100644 +--- a/python/setup.py ++++ b/python/setup.py +@@ -137,14 +137,12 @@ class BuildCMakeExtension(build_ext.build_ext): + """Uses CMake to build extensions.""" + + def run(self): +- self._mujoco_library_path, self._mujoco_include_path = self._find_mujoco() ++ self._mujoco_library_path, self._mujoco_include_path = "/usr/lib","/usr/include/mujoco" + self._configure_cmake() + for ext in self.extensions: + assert ext.name.startswith(EXT_PREFIX) + assert '.' not in ext.name[len(EXT_PREFIX):] + self.build_extension(ext) +- self._copy_external_libraries() +- self._copy_mujoco_headers() + + def _find_mujoco(self): + if MUJOCO_PATH not in os.environ: |