Compilation dynamique. Optimisation du poids de l'executable

Sujets variés concernant le développement en PureBasic
jambon
Messages : 19
Inscription : lun. 23/juin/2014 16:01

Compilation dynamique. Optimisation du poids de l'executable

Message par jambon »

Bonjour, voila j'ai un projet plutôt "gros", et souvent je doit générer mon executable.
Ceci dit parfois ma clientèle n'a pas besoin de toute les fonction du programme...


Je me suis dit qu'on pourrai éventuellement gagner de la place en taille en précisant à purebasic de compiler ou non certaine partie par exemple avec une condition du type

If compilation_code = 1
;MonCode
;MonCharbaia
;MesFonction et tutui fruiti
EndIF

Je sais qu'il à déja des constantes et que ces conditions sont réalisable, ceci dit la taille reste toujours la même. (aucun gain).

Je pourrai aussi copier ma source la modifier pour avoir une deuxième version de mon programme "light".
Mais je pense/suppose que peut être PureBasic possède des outils pour réaliser ceci de la manière dont je vous la présente. (ou similaire)
Dernière modification par jambon le jeu. 08/oct./2015 11:43, modifié 1 fois.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Compilation dynamique. Optimisation du poids de l'execut

Message par microdevweb »

@Jambon,

Les commandes pour dirigé la compilation sont

Code : Tout sélectionner

CompilerIf  <expression constante>
  ...
[CompilerElseIf]
  ...
[CompilerElse]
  ...
CompilerEndIf

Mais dans le cas que tu expliques, je me demande si tu ne devrais pencher pour une programmation modulaire et utiliser des Dll (sous windows) ou So (sous Linux) que tu installe ou pas

Voir peu t’être le tuto de G-Rom
http://www.purebasic.fr/french/viewtopi ... 21&t=12960
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Compilation dynamique. Optimisation du poids de l'execut

Message par Fred »

Un 'CompilerIF' devrait resoudre ton probleme, car tout ce qui est dans le IF non compilé ne sera pas intégré dans l'executable final.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Compilation dynamique. Optimisation du poids de l'execut

Message par microdevweb »

Voici un petit exemple, bon je l'avoue ce cas je ne vois aucune différence de taille mais dans le cas d'une application plus volumineuse cela devrais le faire

Code : Tout sélectionner

Enumeration 
      #Litle
      #Medium
      #Big
EndEnumeration   
Enumeration 
      #MainForm
EndEnumeration
#Licence=#Litle
Procedure OpenMainForm()
      OpenWindow(#MainForm,0,0,800,600,"Teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
      CompilerIf #Licence=#Litle
            TextGadget(0,0,0,800,30,"Txt 1")
      CompilerEndIf
      CompilerIf #Licence=#Medium
            TextGadget(0,0,0,800,30,"Txt 1")
            TextGadget(1,0,40,800,30,"Txt 2")
            TextGadget(2,0,80,800,30,"Txt 3")
      CompilerEndIf
      CompilerIf #Licence=#Big
            TextGadget(0,0,0,800,30,"Txt 1")
            TextGadget(1,0,40,800,30,"Txt 2")
            TextGadget(2,0,80,800,30,"Txt 3")
            TextGadget(3,0,120,800,30,"Txt 1")
            TextGadget(4,0,160,800,30,"Txt 2")
            TextGadget(5,0,200,800,30,"Txt 3")
      CompilerEndIf
EndProcedure
OpenMainForm()
Repeat
      Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
jambon
Messages : 19
Inscription : lun. 23/juin/2014 16:01

Re: Compilation dynamique. Optimisation du poids de l'execut

Message par jambon »

Effectivement CompilerIF fonctionne à merveille ;)
Merci :)
Répondre