Skip to content

Commit

Permalink
Modifico instalador y cambio versión mínima de CMake
Browse files Browse the repository at this point in the history
  • Loading branch information
JuanPF56 committed Dec 8, 2023
1 parent 4d17517 commit 469fc97
Show file tree
Hide file tree
Showing 2 changed files with 131 additions and 79 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Pongo esta version simplemente porque es la ultima version estable
# en Gentoo (y es la que tengo instalada).
# Entiendo que se podria cambiar por otra si llega a haber drama
cmake_minimum_required(VERSION 3.25.1)
cmake_minimum_required(VERSION 3.22.1)

# Cuando este listo ponemos la version VERSION 1.0 B)
project(worms VERSION 0.1 HOMEPAGE_URL
Expand Down
208 changes: 130 additions & 78 deletions install.sh
Original file line number Diff line number Diff line change
@@ -1,100 +1,152 @@
#!/bin/sh

apt-update
apt-get install libjpeg-dev libpng-dev libfreetype-dev libopusfile-dev libflac-dev libxmp-dev libfluidsynth-dev libwavpack-dev cmake libmodplug-dev libsdl2-dev qtbase5-dev

#### Instalación de SDL2

git clone [email protected]:libsdl-org/SDL.git --branch release-2.26.5
cd SDL
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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

git clone [email protected]:libsdl-org/SDL_image.git --branch SDL2
cd SDL_image
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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

git clone [email protected]:libsdl-org/SDL_mixer.git --branch SDL2
cd SDL_mixer
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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
# 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 ../..

git clone [email protected]:libsdl-org/SDL_ttf.git --branch SDL2
cd SDL_ttf
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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 libSDL2pp

git clone [email protected]:libSDL2pp/libSDL2pp.git --branch 0.18.1
cd libSDL2pp
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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 box2d

git clone [email protected]:erincatto/box2d.git
cd box2d
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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 yaml-cpp
# 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 ../..

git clone [email protected]:jbeder/yaml-cpp.git
cd yaml-cpp
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
# 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 ../..

#### Instalación de catch2
# 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"

git clone [email protected]:catchorg/Catch2.git
cd Catch2
mkdir build
cd build
cmake ..
make -j $(nproc)
make install
cd ../..
# Borrar directorio de dependencias
print_status "Borrando directorio de dependencias..."
cd ..
rm -rf "$DEPS_DIR" || handle_error "Fallo al borrar el directorio de dependencias"

### Instalación del juego
# Actualizar la cache de librerías
sudo ldconfig

git clone [email protected]:Los-Socketes/Worms.git
cd Worms
mkdir build
cd build
cmake --build . -j $(nproc)
# Mensaje de éxito
echo "¡Instalación completada con éxito!"

0 comments on commit 469fc97

Please sign in to comment.