diff --git a/.readthedocs.yml b/.readthedocs.yml index 00c093bb..5f9792b3 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,21 +11,65 @@ build: os: ubuntu-24.04 tools: python: "3.12" + apt_packages: + - libgl-dev jobs: create_environment: + # install uv - asdf plugin add uv - asdf install uv latest - asdf global uv latest - uv venv $READTHEDOCS_VIRTUALENV_PATH - - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv pip install -r doc/requirements.txt - - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv pip install mujoco mujoco-mjx - # replace mujoco.mjx.third_party.mujoco_warp import paths with mujoco_warp + # install doc requirements and build tools - | - find mjx/mujoco/mjx/third_party/mujoco_warp -type f -exec sed -i 's/mujoco\.mjx\.third_party\.mujoco_warp/mujoco_warp/g' {} \; + UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH \ + uv pip install \ + -r doc/requirements.txt \ + cmake pip build setuptools absl-py + # build and install MuJoCo C library + - | + VENV=$READTHEDOCS_VIRTUALENV_PATH && \ + $VENV/bin/cmake -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$VENV \ + -DMUJOCO_BUILD_EXAMPLES=OFF \ + -DMUJOCO_BUILD_SIMULATE=OFF \ + -DMUJOCO_BUILD_TESTS=OFF \ + -DMUJOCO_TEST_PYTHON_UTIL=OFF && \ + $VENV/bin/cmake --build build --parallel && \ + $VENV/bin/cmake --install build + # copy plugins + - | + mkdir -p $READTHEDOCS_VIRTUALENV_PATH/mujoco_plugin && \ + cp build/lib/libactuator.* \ + build/lib/libelasticity.* \ + build/lib/libsensor.* \ + $READTHEDOCS_VIRTUALENV_PATH/mujoco_plugin/ && \ + cp build/lib/libsdf_plugin.* \ + $READTHEDOCS_VIRTUALENV_PATH/mujoco_plugin/ || true + # build and install Python bindings from source + - | + export VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH \ + PATH=$READTHEDOCS_VIRTUALENV_PATH/bin:$PATH && \ + cd python && bash make_sdist.sh && cd dist && \ + MUJOCO_PATH=$READTHEDOCS_VIRTUALENV_PATH \ + MUJOCO_PLUGIN_PATH=$READTHEDOCS_VIRTUALENV_PATH/mujoco_plugin \ + MUJOCO_CMAKE_ARGS="-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=OFF \ + -DGLFW_BUILD_WAYLAND=OFF -DGLFW_BUILD_X11=OFF" \ + UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH \ + uv pip install mujoco-*.tar.gz && \ + cd ../.. + # install mjx and mujoco_warp + - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv pip install -e mjx + - | + find mjx/mujoco/mjx/third_party/mujoco_warp -type f -exec \ + sed -i 's/mujoco\.mjx\.third_party\.mujoco_warp/mujoco_warp/g' {} \; - python doc/mjwarp/update_types.py mjx/mujoco/mjx/third_party/mujoco_warp/_src/types.py - - UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH uv pip install mjx/mujoco/mjx/third_party/mujoco_warp + - | + UV_PROJECT_ENVIRONMENT=$READTHEDOCS_VIRTUALENV_PATH \ + uv pip install mjx/mujoco/mjx/third_party/mujoco_warp install: - - "true" # skip + - "true" # skip default install sphinx: builder: html