forked from Los-Socketes/Worms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
152 lines (130 loc) · 6.41 KB
/
install.sh
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/bin/sh
# Dar permisos de ejecución antes de ejecutar!!
# $ chmod +x install.sh
# Verificar si se proporciona la ruta de instalación como parámetro
if [ $# -ne 1 ]; then
echo "Uso: $0 <ruta_de_instalacion>"
exit 1
fi
# Directorio para instalar las dependencias
DEPS_DIR="deps"
if [ -d "$DEPS_DIR" ]; then
echo "La carpeta '$DEPS_DIR' ya existe. Eliminando contenido previo..."
rm -rf "$DEPS_DIR" || {
echo "Error al borrar el contenido de '$DEPS_DIR'. Por favor, verifica los permisos."
exit 1
}
fi
mkdir -p "$DEPS_DIR"
cd "$DEPS_DIR" || exit 1
# Función para mensajes informativos
print_status() {
echo "=============================="
echo "$1"
echo "=============================="
}
# Función para manejar errores
handle_error() {
echo "Error: $1"
exit 1
}
print_status "Instalando dependencias del sistema..."
# Instalar dependencias del sistema usando el gestor de paquetes
if ! sudo apt-get update; then
handle_error "Fallo al actualizar apt"
fi
if ! sudo apt-get install -y libjpeg-dev libpng-dev libfreetype-dev libopusfile-dev libflac-dev libxmp-dev libfluidsynth-dev libwavpack-dev cmake libmodplug-dev libsdl2-dev qtbase5-dev git; then
handle_error "Fallo al instalar dependencias del sistema"
fi
# Instalación de SDL2
print_status "Instalando SDL2..."
git clone https://github.com/libsdl-org/SDL.git --branch release-2.26.5 || handle_error "Fallo al clonar SDL2"
cd SDL || handle_error "Fallo al acceder al directorio de SDL"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de SDL2"
cmake .. || handle_error "Fallo al ejecutar CMake para SDL2"
make -j "$(nproc)" || handle_error "Fallo al construir SDL2"
sudo make install || handle_error "Fallo al instalar SDL2"
cd ../..
# Instalación de SDL2_image
print_status "Instalando SDL2_image..."
git clone [email protected]:libsdl-org/SDL_image.git --branch SDL2 || handle_error "Fallo al clonar SDL2_image"
cd SDL_image || handle_error "Fallo al acceder al directorio de SDL2_image"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de SDL2_image"
cmake .. || handle_error "Fallo al ejecutar CMake para SDL2_image"
make -j $(nproc) || handle_error "Fallo al construir SDL2_image"
sudo make install || handle_error "Fallo al instalar SDL2_image"
cd ../..
# Instalación de SDL2_mixer
print_status "Instalando SDL2_mixer..."
git clone [email protected]:libsdl-org/SDL_mixer.git --branch SDL2 || handle_error "Fallo al clonar SDL2_mixer"
cd SDL_mixer || handle_error "Fallo al acceder al directorio de SDL2_mixer"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de SDL2_mixer"
cmake .. || handle_error "Fallo al ejecutar CMake para SDL2_mixer"
make -j $(nproc) || handle_error "Fallo al construir SDL2_mixer"
sudo make install || handle_error "Fallo al instalar SDL2_mixer"
cd ../..
# Instalación de SDL2_ttf
print_status "Instalando SDL2_ttf..."
git clone [email protected]:libsdl-org/SDL_ttf.git --branch SDL2 || handle_error "Fallo al clonar SDL2_ttf"
cd SDL_ttf || handle_error "Fallo al acceder al directorio de SDL2_ttf"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de SDL2_ttf"
cmake .. || handle_error "Fallo al ejecutar CMake para SDL2_ttf"
make -j $(nproc) || handle_error "Fallo al construir SDL2_ttf"
sudo make install || handle_error "Fallo al instalar SDL2_ttf"
cd ../..
# Instalación de libSDL2pp
print_status "Instalando libSDL2pp..."
git clone [email protected]:libSDL2pp/libSDL2pp.git --branch 0.18.1 || handle_error "Fallo al clonar libSDL2pp"
cd libSDL2pp || handle_error "Fallo al acceder al directorio de libSDL2pp"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de libSDL2pp"
cmake .. || handle_error "Fallo al ejecutar CMake para libSDL2pp"
make -j $(nproc) || handle_error "Fallo al construir libSDL2pp"
sudo make install || handle_error "Fallo al instalar libSDL2pp"
cd ../..
# Instalación de box2d
print_status "Instalando box2d..."
git clone [email protected]:erincatto/box2d.git || handle_error "Fallo al clonar box2d"
cd box2d || handle_error "Fallo al acceder al directorio de box2d"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de box2d"
cmake .. || handle_error "Fallo al ejecutar CMake para box2d"
make -j $(nproc) || handle_error "Fallo al construir box2d"
sudo make install || handle_error "Fallo al instalar box2d"
cd ../..
# Instalación de yaml-cpp
print_status "Instalando yaml-cpp..."
git clone [email protected]:jbeder/yaml-cpp.git || handle_error "Fallo al clonar yaml-cpp"
cd yaml-cpp || handle_error "Fallo al acceder al directorio de yaml-cpp"
mkdir build && cd build || handle_error "Fallo al crear/construir el directorio de yaml-cpp"
cmake .. || handle_error "Fallo al ejecutar CMake para yaml-cpp"
make -j $(nproc) || handle_error "Fallo al construir yaml-cpp"
sudo make install || handle_error "Fallo al instalar yaml-cpp"
cd ../..
# Instalación de catch2
print_status "Instalando catch2..."
git clone [email protected]:catchorg/Catch2.git || handle_error "Fallo al clonar Catch2"
cd Catch2 || handle_error "Fallo al acceder al directorio de Catch2"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio de Catch2"
cmake .. || handle_error "Fallo al ejecutar CMake para Catch2"
make -j $(nproc) || handle_error "Fallo al construir Catch2"
sudo make install || handle_error "Fallo al instalar Catch2"
cd ../..
# Instalación del juego
print_status "Instalando el juego..."
RUTA_INSTALACION="$1"
git clone [email protected]:Los-Socketes/Worms.git || handle_error "Fallo al clonar el repositorio del juego"
cd Worms || handle_error "Fallo al acceder al directorio del juego"
mkdir -p build && cd build || handle_error "Fallo al crear/construir el directorio del juego"
cmake .. || handle_error "Fallo al ejecutar CMake para el juego"
cmake --build . -j "$(nproc)" || handle_error "Fallo al construir el juego"
cd ../..
# Copiar la carpeta build compilada a la ruta de instalación
print_status "Copiando el juego a la ruta de instalación..."
cp -r Worms/build "$RUTA_INSTALACION" || handle_error "Fallo al copiar el juego a la ruta de instalación"
# Borrar directorio de dependencias
print_status "Borrando directorio de dependencias..."
cd ..
rm -rf "$DEPS_DIR" || handle_error "Fallo al borrar el directorio de dependencias"
# Actualizar la cache de librerías
sudo ldconfig
# Mensaje de éxito
echo "¡Instalación completada con éxito!"