# Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details version: 2 # TODO(robotics-simulation): pdf format fails to build on readthedocs # formats: # - pdf 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 # install doc requirements and build tools - | 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 install: - "true" # skip default install sphinx: builder: html configuration: doc/conf.py fail_on_warning: false