Pour faciliter la prise en main de la bibliothèque SocLib nous vous proposons d’étudier un exemple "simple" un hello world!

Configuration de l’environnement de travail:

Pour commencer vous devez d’abord configurer votre environnement.

Nous vous proposons un script pour définir correctement le chemin vers les outils SocLib (PATH) et quelques autres outils nécessaires à la simulation telle que le chemin vers la bibliothèque SystemC.

Pour les SHELL sh ou zsh vous pouvez juste:

source /comelec/softs/opt/soclib/TPT/env.sh

Récupérer le code du HelloWorld:

Le code du helloworld est disponible à travers un dépôt Git. Vous pouvez cloner le dépôt et faisant:

git clone git@gitlab.enst.fr:5se05/soclib_hello_world

Compilez et exécutez le HelloWorld:

Faites make, si tout se passe bien vous devriez obtenir un exécutable simulation.x. Lancez cet exécutable et admirez.

ATTENTION NE CLONEZ PAS LE DÉPÔT DIRECTEMENT DANS VOTRE DÉPÔT PERSONNEL!

Si vous voulez placer le dépôt dans un sous-répertoire de votre dépôt personnel, vous pouvez utiliser git read-tree (voir la note plus bas).

Ceci vous permet de récupérer le code dans un sous-répertoire en conservant l’historique et le lien avec le dépôt d’origine.

Voir aussi git subtree (plus pratique si vous devez le faire souvent).

read-tree dans un sous-répertoire

Exemple en utilisant read-tree:

  • Se mettre dans la branche main de son dépôt:

    git checkout main
  • Ajouter un remote hello-remote vers le nouveau dépôt puis récupérer son état:

    git remote add hello-remote git@gitlab.enst.fr:5se05/soclib_hello_world.git
    git fetch hello-remote
  • Créer une branche locale avec l’état du main du nouveau dépôt:

    git checkout -b hello_main_branch hello-remote/main
  • Revenir dans main:

    git checkout main
  • Récupérer la nouvelle branche crée dans le sous-répertoire hello_world puis faire un commit:

    git read-tree --prefix=hello_world -u hello_main_branch
    git commit -m "Récupération du hello world..."
Mise à jour du sous-répertoire

Pour récupérer des modifications:

  • Se mettre dans la branche hello_main_branch:

    git checkout hello_main_branch
    git pull
  • Revenir dans main et merger en utilisant la stratégie subtree:

    git checkout main
    git merge -s subtree hello_main_branch --allow-unrelated-histories

Pour merger une autre branche dans le même sous-répertoire:

  • Se mettre dans la branche hello_main_branch:

    git checkout hello_main_branch
    git merge hello-remote/models
  • Revenir dans main et merger en utilisant la stratégie subtree:

    git checkout main
    git merge -s subtree hello_main_branch --allow-unrelated-histories

Retour au sommaire