1
+ #! /bin/bash
2
+
3
+ # Script d'installation des dépendances pour les tests IFCC (WAT/WASM)
4
+ # Ce script installe les outils nécessaires pour exécuter ifcc-wat-test.py et ifcc-test.py
5
+
6
+ set -e # Arrêter le script en cas d'erreur
7
+
8
+ # Fonction pour afficher les messages en couleur
9
+ print_rouge () {
10
+ echo -e " \033[1;31m$1 \033[0m"
11
+ }
12
+
13
+ print_vert () {
14
+ echo -e " \033[1;32m$1 \033[0m"
15
+ }
16
+
17
+ print_jaune () {
18
+ echo -e " \033[1;33m$1 \033[0m"
19
+ }
20
+
21
+ print_vert " Installation des dépendances pour les tests IFCC (WAT/WASM)"
22
+
23
+ # Vérifier si on est dans un environnement WSL/Linux
24
+ if [[ " $( uname -a) " != * " Linux" * ]]; then
25
+ print_rouge " Ce script est conçu pour fonctionner sous Linux ou WSL"
26
+ exit 1
27
+ fi
28
+
29
+ # Mise à jour des dépôts
30
+ print_jaune " Mise à jour des dépôts..."
31
+ sudo apt-get update
32
+
33
+ # Installation des outils de base nécessaires pour la compilation
34
+ print_jaune " Installation des outils de base pour la compilation..."
35
+ sudo apt-get install -y build-essential cmake python3 python3-pip git curl wget
36
+
37
+ # Installation de Node.js (nécessaire pour exécuter le WASM)
38
+ if ! command -v node & > /dev/null; then
39
+ print_jaune " Installation de Node.js..."
40
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
41
+ sudo apt-get install -y nodejs
42
+ else
43
+ print_vert " Node.js est déjà installé"
44
+ fi
45
+
46
+ # Vérifier la version de Node.js
47
+ NODE_VERSION=$( node -v)
48
+ print_vert " Version de Node.js installée: $NODE_VERSION "
49
+
50
+ # Installation de Emscripten (pour emcc)
51
+ if ! command -v emcc & > /dev/null; then
52
+ print_jaune " Installation d'Emscripten..."
53
+
54
+ # Cloner le dépôt emsdk
55
+ git clone https://github.com/emscripten-core/emsdk.git
56
+
57
+ # Configurer emsdk
58
+ cd emsdk
59
+ ./emsdk install latest
60
+ ./emsdk activate latest
61
+
62
+ # Ajouter emsdk au PATH de l'utilisateur
63
+ EMSDK_SETUP=" source \" $( pwd) /emsdk_env.sh\" "
64
+ if ! grep -q " $EMSDK_SETUP " ~ /.bashrc; then
65
+ echo " $EMSDK_SETUP " >> ~ /.bashrc
66
+ print_vert " Emscripten ajouté à votre PATH dans .bashrc"
67
+ fi
68
+
69
+ cd ..
70
+
71
+ # Activer pour la session courante
72
+ source ./emsdk/emsdk_env.sh
73
+ else
74
+ print_vert " Emscripten est déjà installé"
75
+ fi
76
+
77
+ # Installation de wabt (WebAssembly Binary Toolkit) pour wat2wasm
78
+ if ! command -v wat2wasm & > /dev/null; then
79
+ print_jaune " Installation de wabt (WebAssembly Binary Toolkit)..."
80
+
81
+ # Installation des dépendances pour la compilation
82
+ sudo apt-get install -y cmake g++ gcc ninja-build
83
+
84
+ # Cloner le dépôt wabt
85
+ git clone --recursive https://github.com/WebAssembly/wabt.git
86
+
87
+ # Compiler wabt
88
+ cd wabt
89
+ mkdir build
90
+ cd build
91
+ cmake .. -DBUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release
92
+ cmake --build .
93
+
94
+ # Installer les outils dans /usr/local/bin
95
+ sudo cp wat2wasm wasm2wat wasm-interp wasm-objdump wasm-strip /usr/local/bin/
96
+
97
+ cd ../..
98
+
99
+ print_vert " wabt installé avec succès"
100
+ else
101
+ print_vert " wabt est déjà installé"
102
+ fi
103
+
104
+ # Vérifier les installations
105
+ print_jaune " Vérification des installations..."
106
+
107
+ echo -n " node: "
108
+ if command -v node & > /dev/null; then
109
+ print_vert " OK"
110
+ else
111
+ print_rouge " NON INSTALLÉ"
112
+ fi
113
+
114
+ echo -n " emcc: "
115
+ if command -v emcc & > /dev/null; then
116
+ print_vert " OK"
117
+ else
118
+ print_rouge " NON INSTALLÉ"
119
+ print_jaune " Si emcc n'est pas détecté, essayez de redémarrer votre terminal ou exécutez 'source ./emsdk/emsdk_env.sh'"
120
+ fi
121
+
122
+ echo -n " wat2wasm: "
123
+ if command -v wat2wasm & > /dev/null; then
124
+ print_vert " OK"
125
+ else
126
+ print_rouge " NON INSTALLÉ"
127
+ fi
128
+
129
+ print_vert " \nInstallation terminée !"
130
+ print_jaune " REMARQUE: Pour que les changements soient pris en compte dans cette session, exécutez:"
131
+ echo " source ./emsdk/emsdk_env.sh"
132
+ print_jaune " Ou redémarrez votre terminal."
0 commit comments