Perforce
Outils de compilation
Couches de librairies
Doxygen
Aims
Anatomist

Perforce: commande p4

http://www.perforce.com

Configuration:

shell tcsh/csh: fichier ~/.cshrc:
setenv P4CONFIG ${HOME}/.p4config
shell bash/sh: fichier: ~/.bash_profile ou ~/.bashrc:
P4CONFIG=${HOME}/.p4config
export P4CONFIG
fichier ~/.p4config:
P4PORT=bron:1666
P4USER=appli
P4CLIENT=appli-cours1
P4EDITOR=nedit
P4DIFF=xxdiff
P4MERGE=mergetool

Utilisation:

p4 info
p4 client
p4 sync
p4 edit
p4 submit
p4 resolve
p4 help
[p4 integrate]
...

organisation des projets SHFJ:
//depot/<projet>/<version>/...
version de développement: <version>=main
vue client: <p4>/<projet>-main/...

Outils de compilation

http://brainvisa.info/compilation.html
http://brainvisa.info/util.html
build-config
configure
maker

perforce: //depot/util/main/...

ajouter une commnde/librairie: <projet>/src/src.pro
ajouter un source/header à une commande/librairie: <projet>/src/<lib_or_cmd>/*.pro

Couches de librairies

 sigc++  libxml2
     |    |
   cartobase shared [vidaIO]  [ecat]  [DCMTK]  OpenGL
      |         |       |       |        |       |
     graph      |       |     [ecat+]    |      Qt      Python
        \_______|_______|________|_______|______/ \______/
                            |                        |
                         aimsdata         Qwt       SIP
                          /    \           /         |
         neuron    aimsalgo   anatomist   /         PyQt
              \      |  \________|_______/           |
               sigraph           |                   |
                      \          |                   |
                       \         |                   |
                        [anatomist modules]          |
                                     \_______________|
                                             |
                                         brainvisa
  • données partagées: shared
    perforce: //depot/shared/main/...
  • packstage
    perforce: //depot/packstage/main/...
  • Variables d'environnement:
    shared: BRAINVISA_SHARE
    aims: AIMS_PATH
    anatomist: ANATOMIST_PATH
    [sigraph: SIGRAPH_PATH]

  • Doxygen

    http://www.doxygen.org
    doxywizard, doxygen
    projet perforce: //depot/doxy/main/...

    Aims

    http://intranet-shfj/~appli/aims/index.html
    Aims est séparé en 3 librairies (pour l'instant):
    aimsdata : structures de données, IO, algos de base
    aimsgui : couche graphique (widgets Qt)
    aimsalgopub : algos publics (destinés à devenir freeware)
    aimsalgo : algos privés (closed-source)

    API

    Objets de base: AimsData, AimsSurfaceTriangle [AimsTimeSurface], BucketMap, TimeTexture, [Graph]
    IO: Reader, Writer, [Process]: http://intranet-shfj/~appli/aims/input_output.html#input_output
    Parser d'options: AimsApplication

    Pratique

    exercice: faire un prog. Aims pour lire 2 images et les additionner
  • version1: volumes S16
  • version2: volumes homog�nes
  • version3: volumes quelconques

  • Anatomist

    http://brainvisa.info/anatomist/programmation/french/index.html
    http://intranet-shfj/~appli/anatomist/index.html

    API

    Objets de base: AObject, AWindow
    Application globale: Anatomist, variable globale: theAnatomist
    Fen�tre de contr�le
    Modules - il y a m�me une petite doc HTML, si !
    Warning: la doc HTML d'anatomist est certainement dépassée au sujet des nouveaux objets/fenêtres).
    Options (menus) des objets: doc HTML.
    Commandes et processeur de commandes

    Run-time

    Liste des modules:
  • $ANATOMIST_PATH/shared/plugins/anatomist.plugins
  • $HOME/.anatomist/plugins/anatomist.plugins
  • Commandes interprétées: http://brainvisa.info/anatomist/programmation/french/commands.html

    Pratique

    exercice: faire un petit module qui ajoute une option sur les volumes S16 permettant de faire une dilatation en utilisant AimsMorphoChamferDilation().
  • Correction