Page 1 sur 1

Version compilateur, type cpu et date de compilation

Publié : ven. 08/sept./2017 13:31
par Marc56
Il est assez courant d'oublier avec quoi on a compilé un programme
et donc pourquoi cette ancienne version marchait et pas celle qu'on vient de compiler :oops:

:idea: Une petite ligne qui permet d'un seul coup d'identifier pour vos programmes:
  • Version de PureBasic
  • Type de cpu (32 ou 64 bits)
  • Date de compilation (ici au format ISO pour vos programmes internationaux

Code : Tout sélectionner

Global Version.s = "Compilation: PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) +
                   "/" + Str(#PB_Compiler_Processor * 16) + " Bits - " +
                   FormatDate("%yyyy/%mm/%dd - %hh:%ii:%ss", #PB_Compiler_Date)
Donne par exemple:
Compilation: PureBasic 5.60/64 Bits - 2017/09/08 - 14:25:35

Utile à mettre dans la boite "À propos de" ou dans la barre d'état au démarrage.
Permet aussi à l'utilisateur d'indiquer au support quelle est la version qu'il utilise.

Je mets ça dans ma liste de modèle.

8)

Re: Version compilateur, type cpu et date de compilation

Publié : ven. 08/sept./2017 14:40
par Kwai chang caine
Merci...ce qui serait cool c'est que PB le marque automatiquement en bas en commentaires (et qu'on ne voit pas) dans les options qu'il enregistre 8)
Le code serait marqué à vie
Tu as raison, des fois j'essaie plusieurs version avant de trouver la bonne, et j'ai trop la flemme de le marquer moi-même...mais je me force quand même :oops:

Re: Version compilateur, type cpu et date de compilation

Publié : ven. 08/sept./2017 16:21
par venom
Kwai chang caine a écrit :ce qui serait cool c'est que PB le marque automatiquement en bas en commentaires (et qu'on ne voit pas) dans les options qu'il enregistre
Mais purebasic le fait ça :D Ouvre un fichier .pb dans bloc note, tu verra en bas de tes codes tu a la version de pb et d'autres infos :wink:





@++

Re: Version compilateur, type cpu et date de compilation

Publié : ven. 08/sept./2017 19:48
par Kwai chang caine
Oui je sais, mais si tu lances un code qui ne fonctionne pas, et bien l'IDE va quand même le "marquer" avec sa version qui en fin de compte n'est pas la bonne :|
Ce qui serait cool, c'est qu'il ne la marque que si il peut terminer la compilation.
Ou bien noter la version de l'ide qui l'a sauvegardé, et celui qui a pu le compiler... :wink:

Re: Version compilateur, type cpu et date de compilation

Publié : ven. 08/sept./2017 20:02
par venom
Ah ok, je comprend mieux.






@++

Re: Version compilateur, type cpu et date de compilation

Publié : lun. 11/sept./2017 7:46
par blendman
Merci Marc ;)

Je me servais déjà de la date, mais ajouter la compilation purebasic est une super idée !
ça permet de se rappeler avec quelle version de pb on a compiler notre programme :D

Du coup, je l'ai ajouté dans l'application sur laquelle je bosse en ce moment ;)

Re: Version compilateur, type cpu et date de compilation

Publié : lun. 11/sept./2017 11:05
par Marc56
Kwai chang caine a écrit :Oui je sais, mais si tu lances un code qui ne fonctionne pas, et bien l'IDE va quand même le "marquer" avec sa version qui en fin de compte n'est pas la bonne :|
Ce qui serait cool, c'est qu'il ne la marque que si il peut terminer la compilation.
Ou bien noter la version de l'ide qui l'a sauvegardé, et celui qui a pu le compiler... :wink:
Si le code ne fonctionne pas, il ne sera pas marqué (logique)

Si tu veux faire plus élaboré, tu peux par exemple faire générer un fichier d'historique de compilation dans le répertoire de l'EXE. Automatiquement.

Tu en fais un programme, que tu paramètres comme outils avec comme option de lancement
"Après avoir créé un exécutable"

Exemple de programme qui va ajouter une ligne à chaque compilation réussie:
(Si on ne veut pas ajouter, supprimer #PB_File_Append)

Code : Tout sélectionner

EnableExplicit

Global Version.s = "PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) +
                   "/" + Str(#PB_Compiler_Processor * 16) + " Bits - " +
                   FormatDate("%yyyy/%mm/%dd - %hh:%ii:%ss", #PB_Compiler_Date) 

Define ID_File
Define FileName.s = GetPathPart(ProgramFilename()) + "/StampFile.txt"

ID_File = OpenFile(#PB_Any, FileName, #PB_File_Append)

If ID_File
     WriteString(ID_File, #CRLF$ + GetFilePart(ProgramFilename()) + ": " + Version)
     CloseFile(ID_File)
Else
     MessageRequester("Erreur", "Impossible d'écrire le fichier d'info version")
EndIf
À adapter car là ça donne la date du programme de marquage et pas celle du programme compilé.
(il faut passer une variable: voir le bouton INFO dans la gestion des outils)

Re: Version compilateur, type cpu et date de compilation

Publié : lun. 11/sept./2017 11:30
par Kwai chang caine
Si le code ne fonctionne pas, il ne sera pas marqué (logique)
Bah si.... 8O
Si tu sauvegardes le code avec une version qui compile pas, je pense qu'il sera bien marqué de la version qui l'a sauvegardé, pas celle qui l'a compilé :wink:
Je parle bien de sauvegarde manuelle, pas de sauvegarde avant la compile, et encore si ça se trouve comme PB fait une sauvegarde avant compile, ça doit surement le marquer même si ça compile pas jusqu'au bout.
En tout cas merci pour la combine 8)

Re: Version compilateur, type cpu et date de compilation

Publié : lun. 11/sept./2017 12:45
par Micoute
Ce qui serait bien, ce serait de mettre tous ces renseignement dans un fichier résident, pour que ça s'inscrive automatiquement dans chaque fichier qu'on compile.

Re: Version compilateur, type cpu et date de compilation

Publié : mer. 15/avr./2026 15:20
par Francois
Bonjour,

Je sais que ce sujet est assez vieux, mais j'ai trouvé intéressant de rajouter une version plus complète qui donnera peut-être quelques idées à certains.
Les 5 premières constantes peuvent être directement renseignées dans les options du compilateur sans avoir besoin de les déclarer dans le code :
Projet -> Option du projet -> Options du compilateur -> Informations de Version
Bien sûr, il faudra au préalable créer le projet : Projet -> Nouveau Projet...

Pour obtenir une meilleure présentation, on peut créer de toute pièce une fenêtre à la place de la commande "MessageRequester"
Ici j'ai simplement voulu donner quelques idées.

F.R.

Code : Tout sélectionner

#PB_Editor_ProductName     = "Petit test"
#PB_Editor_ProductVersion  = "v38"
#PB_Editor_LegalCopyright  = "F.R."
#PB_Editor_LegalTrademarks = "It's legal of course..."
#PB_Editor_Email           = "MyMail@bidon.bid"

About$ = #PB_Editor_ProductName + " " + #PB_Editor_ProductVersion 
About$ = About$ + #CRLF$ + #CRLF$ + #PB_Editor_LegalCopyright + #CRLF$ + #PB_Editor_LegalTrademarks + #CRLF$ + #PB_Editor_Email
About$ = About$ + #CRLF$ + #CRLF$ + "Compilation : " + #CRLF$ + "PureBasic " + StrF(#PB_Compiler_Version / 100.0, 2) + " (" 
CompilerSelect #PB_Compiler_OS
  CompilerCase #PB_OS_Windows
    About$ = About$ + "Windows "
    Select OSVersion()
      Case #PB_OS_Windows_NT3_51
        About$ = About$ + "NT 3.51"
      Case #PB_OS_Windows_95
        About$ = About$ + "95"
      Case #PB_OS_Windows_NT_4
        About$ = About$ + "NT 4"
      Case #PB_OS_Windows_98
        About$ = About$ + "98"
      Case #PB_OS_Windows_ME
        About$ = About$ + "ME"
      Case #PB_OS_Windows_2000
        About$ = About$ + "2000"
      Case #PB_OS_Windows_XP
        About$ = About$ + "XP"
      Case #PB_OS_Windows_Server_2003
        About$ = About$ + "Server 2003"
      Case #PB_OS_Windows_Vista
        About$ = About$ + "Vista"
      Case #PB_OS_Windows_Server_2008
        About$ = About$ + "Server 2008"
      Case #PB_OS_Windows_7
        About$ = About$ + "7"
      Case #PB_OS_Windows_Server_2008_R2  
        About$ = About$ + "Server 2008 R2"
      Case #PB_OS_Windows_8
        About$ = About$ + "8"
      Case #PB_OS_Windows_Server_2012
        About$ = About$ + "Server 2012"
      Case #PB_OS_Windows_8_1
        About$ = About$ + "8.1"
      Case #PB_OS_Windows_Server_2012_R2
        About$ = About$ + "Server 2012 R2"
      Case #PB_OS_Windows_10
        About$ = About$ + "10"
      Case #PB_OS_Windows_Server_2016
        About$ = About$ + "Server 2016"
      Case #PB_OS_Windows_Server_2019
        About$ = About$ + "Server 2019"
      Case #PB_OS_Windows_Server_2022
        About$ = About$ + "Server 2022"
      Case #PB_OS_Windows_11
        About$ = About$ + "11"
      Case #PB_OS_Windows_Server_2025
        About$ = About$ + "Sercer 2025"
      Default
        About$ = About$ + "Unknown Windows version"
    EndSelect
  CompilerCase #PB_OS_Linux
    About$ = About$ + "Linux "
    Select OSVersion()
      Case #PB_OS_Linux_2_2
        About$ = About$ + "2.2"
      Case #PB_OS_Linux_2_4
        About$ = About$ + "2.4"
      Case #PB_OS_Linux_2_6
        About$ = About$ + "2.6"
      Default
        About$ = About$ + "Unknown Linux version"
    EndSelect
  CompilerCase #PB_OS_MacOS
    About$ = About$ + "Mac OS "
    Select OSVersion()
      Case #PB_OS_MacOSX_10_0
        About$ = About$ + "10.0"
      Case #PB_OS_MacOSX_10_1
        About$ = About$ + "10.1"
      Case #PB_OS_MacOSX_10_2
        About$ = About$ + "10.2"
      Case #PB_OS_MacOSX_10_3
        About$ = About$ + "10.3"
      Case #PB_OS_MacOSX_10_4
        About$ = About$ + "10.4"
      Case #PB_OS_MacOSX_10_5
        About$ = About$ + "10.5"
      Case #PB_OS_MacOSX_10_6
        About$ = About$ + "10.6"
      Case #PB_OS_MacOSX_10_7
        About$ = About$ + "10.7"
      Case #PB_OS_MacOSX_10_8
        About$ = About$ + "10.8"
      Case #PB_OS_MacOSX_10_9
        About$ = About$ + "10.9"
      Case #PB_OS_MacOSX_10_10
        About$ = About$ + "10.10"
      Case #PB_OS_MacOSX_10_11
        About$ = About$ + "10.11"
      Case #PB_OS_MacOSX_10_12
        About$ = About$ + "10.12"
      Case #PB_OS_MacOSX_10_13
        About$ = About$ + "10.13"
      Case #PB_OS_MacOSX_10_14
        About$ = About$ + "10.14"
      Case #PB_OS_MacOSX_10_15
        About$ = About$ + "10.15"
      Case #PB_OS_MacOSX_11
        About$ = About$ + "10.11"
      Case #PB_OS_MacOSX_12
        About$ = About$ + "10.12"
      Case #PB_OS_MacOSX_13
        About$ = About$ + "10.13"
      Case #PB_OS_MacOSX_14
        About$ = About$ + "10.14"
      Case #PB_OS_MacOSX_15
        About$ = About$ + "10.15"
      Default
        About$ = About$ + "Unknown Mac OS version"
    EndSelect
  CompilerDefault
    About$ = About$ + "Unknown OS"
CompilerEndSelect
About$ = About$ + " - " 
CompilerSelect #PB_Compiler_Processor
  CompilerCase #PB_Processor_mc68000
    About$ = About$ + "MC68000"
  CompilerCase #PB_Processor_x86
    About$ = About$ + "x86"
  CompilerCase #PB_Processor_PowerPC
    About$ = About$ + "PowerPC"
  CompilerCase #PB_Processor_x64
    About$ = About$ + "x64"
  CompilerCase #PB_Processor_JavaScript
    About$ = About$ + "JavaScript"
  CompilerCase #PB_Processor_Arm64
    About$ = About$ + "Arm64"
  CompilerCase #PB_Processor_Arm32
    About$ = About$ + "Arm32"
  CompilerDefault
    About$ = About$ + "Unknown processor"
CompilerEndSelect
About$ = About$ + ")"
About$ = About$ + #CRLF$ + "du " + FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss", #PB_Compiler_Date)
MessageRequester(#PB_Editor_ProductName + " " + #PB_Editor_ProductVersion, About$, #PB_MessageRequester_Ok + #PB_MessageRequester_Info)