File size: 1,789 Bytes
62a0596
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/bin/bash

# Fonction pour afficher des messages informatifs en vert
info() {
    echo -e "\e[32m[INFO]\e[0m $1"
}

# Fonction pour afficher des messages d'erreur en rouge
error() {
    echo -e "\e[31m[ERREUR]\e[0m $1"
}

# --- Début du script ---

info "Vérification de l'existence du dossier 'llama.cpp'..."

# Vérifie si le dossier 'llama.cpp' n'existe pas
if [ ! -d "llama.cpp" ]; then
    info "Le dossier 'llama.cpp' n'existe pas. Téléchargement en cours..."
    git clone https://github.com/ggerganov/llama.cpp.git

    # Vérifie si le clonage a réussi
    if [ $? -ne 0 ]; then
        error "Le clonage a échoué. Veuillez vérifier votre connexion Internet ou l'URL du dépôt."
        exit 1
    fi

    # Entre dans le dossier cloné
    cd llama.cpp
    info "Démarrage de la compilation de llama.cpp..."

    # Crée le dossier de compilation et s'y déplace
    mkdir -p build && cd build

    # Exécute la configuration avec CMake, en activant CURL
    info "Configuration avec CMake..."
    cmake .. -DLLAMA_CURL=1

    # Vérifie si la configuration a réussi
    if [ $? -ne 0 ]; then
        error "La configuration CMake a échoué. Assurez-vous que CMake est installé."
        cd ../..
        exit 1
    fi

    # Lance la compilation
    info "Lancement de la compilation..."
    cmake --build . --config Release

    # Vérifie si la compilation a réussi
    if [ $? -ne 0 ]; then
        error "La compilation a échoué. Veuillez vérifier les dépendances (make, g++, etc.)."
        cd ../..
        exit 1
    fi

    # Retourne au répertoire initial
    cd ../..
    info "Compilation terminée avec succès !"
else
    info "Le dossier 'llama.cpp' existe déjà. Ignorons le téléchargement et la compilation."
fi

info "Script terminé."