-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathMakefile
More file actions
99 lines (86 loc) · 3.04 KB
/
Copy pathMakefile
File metadata and controls
99 lines (86 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
SHELL := /bin/bash
.ONESHELL:
# Package manager selection - can be 'conda' or 'uv'
PACKAGE_MANAGER ?= conda
VENV_NAME ?= ilab
ISAACSIM_SETUP := resources/IsaacLab/_isaac_sim/setup_conda_env.sh
PYTHON_PATH := resources/isaacsim/_build/linux-x86_64/release/kit/python/bin/python3
.PHONY: all deps gitman clean setup setup-conda setup-uv clean-conda clean-uv
all: deps gitman clean setup
deps:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y cmake build-essential
sudo apt autoremove -y
@if ! command -v gcc >/dev/null 2>&1 || [ $$(gcc -dumpversion | cut -d. -f1) -lt 11 ]; then \
sudo apt-get install -y gcc-11 g++-11; \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 200; \
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 200; \
fi
@if [ "$$PACKAGE_MANAGER" = "uv" ]; then \
if ! command -v uv >/dev/null 2>&1; then \
curl -LsSf https://astral.sh/uv/install.sh | sh; \
source $$HOME/.cargo/env; \
fi; \
fi
pip install --user --no-input gitman >/dev/null 2>&1 || true; \
gitman:
gitman update
clean: clean-$(PACKAGE_MANAGER)
clean-conda:
export CONDA_NO_PLUGINS=true; \
source $$HOME/miniconda3/etc/profile.d/conda.sh; \
if [ "$$CONDA_DEFAULT_ENV" = "$(VENV_NAME)" ]; then \
conda deactivate; \
fi; \
if conda info --envs | grep -qE '^\s*$(VENV_NAME)\s'; then \
conda remove -y --name $(VENV_NAME) --all; \
fi; \
clean-uv:
@if [ -d "resources/IsaacLab/$(VENV_NAME)" ]; then \
rm -rf resources/IsaacLab/$(VENV_NAME); \
fi
setup: setup-$(PACKAGE_MANAGER)
setup-conda:
export CONDA_NO_PLUGINS=true; \
source $$HOME/miniconda3/etc/profile.d/conda.sh; \
cd resources/IsaacLab && ./isaaclab.sh -c $(VENV_NAME); \
conda run -n $(VENV_NAME) ./isaaclab.sh -i rsl_rl; \
setup-uv:
uv venv --clear --python $(PYTHON_PATH) resources/IsaacLab/$(VENV_NAME)
cat >> resources/IsaacLab/$(VENV_NAME)/bin/activate <<-'EOF'
if [[ "$${BASH_SOURCE[0]}" == /* ]]; then
ACTIVATE_SCRIPT_PATH="$${BASH_SOURCE[0]}"
else
ACTIVATE_SCRIPT_PATH="$$(pwd)/$${BASH_SOURCE[0]}"
fi
ACTIVATE_SCRIPT_DIR="$$(dirname "$$(readlink -f "$$ACTIVATE_SCRIPT_PATH")")"
ISAACLAB_ROOT="$$ACTIVATE_SCRIPT_DIR/../.."
ISAACLAB_ROOT="$$(readlink -f "$$ISAACLAB_ROOT")"
. "$$ISAACLAB_ROOT/_isaac_sim/setup_conda_env.sh"
export ISAACLAB_PATH="$$ISAACLAB_ROOT"
export CONDA_PREFIX="$$VIRTUAL_ENV"
EOF
cat > resources/IsaacLab/$(VENV_NAME)/bin/isaaclab <<-'EOF'
#!/usr/bin/env bash
set -e
if [[ "$$0" == /* ]]; then
SCRIPT_PATH="$$0"
else
SCRIPT_PATH="$$(pwd)/$$0"
fi
SCRIPT_DIR="$$(dirname "$$(readlink -f "$$SCRIPT_PATH")")"
ISAACLAB_SCRIPT="$$SCRIPT_DIR/../../isaaclab.sh"
ISAACLAB_SCRIPT="$$(readlink -f "$$ISAACLAB_SCRIPT")"
exec "$$ISAACLAB_SCRIPT" "$$@"
EOF
chmod +x resources/IsaacLab/$(VENV_NAME)/bin/isaaclab
source resources/IsaacLab/$(VENV_NAME)/bin/activate \
&& hash -r \
&& export CONDA_PREFIX="$$VIRTUAL_ENV" \
&& uv pip install --upgrade pip \
&& python -m pip install --upgrade pip \
&& isaaclab -i rsl_rl
conda:
$(MAKE) PACKAGE_MANAGER=conda all
uv:
$(MAKE) PACKAGE_MANAGER=uv all