[Gambas-user] Make executable problem with .32

Ron Onstenk ronstk at ...239...
Thu Jun 15 02:19:05 CEST 2006


Make executable problem

Using SuSE (not related) Configure --prefix=/opt/gb
Running '/opt/gb/bin/gambas2.gambas' as master

In home dir 
copy of /home/ron/src/gambas2-1.9.32/app/src/gambas2
as      /home/ron/GBapp/A__source32/gambas2mdi

src and GBapp are symlinks to /mnt/hda6/homeEX/ron/

made fresh /home/ron/gb2 (for testing during this mail)
copied the source of orginal app/src/gambas2 in it as gambas2mdi

Start gambas as created by configure/make/make install in
  /opt/gb/bin/gambas2.gambas

open project 
  /home/ron/gb2/gambas2mdi

Do menubar/project/Make executable and stay at 
  /home/ron/gb2/gambas2mdi
Correct result and delete the gambas2mdi.gambas file

Do menubar/project/Make executable and browse to 
  /home/ron/GBapp/A__source32/gambas2mdi

But Gambas see the symlink and goes to
  /mnt/hda6/homeEX/ron/GBapp/A__source32/gambas2mdi

Then I click on save but no gambas2mdi.gambas created at destination.
I found it at /home/ron/gb2/gambas2mdi

Looks gambas does not respect the chosen path in the file/dir browser.


Restart orginal gambas2 and select now project at 
  /home/ron/GBapp/A__source32/gambas2mdi

Do menubar/project/Make executable and browse to 
  /home/ron/GBapp/A__source32/gambas2mdi
gambas change path to 
  /mnt/hda6/homeEX/ron/GBapp/A__source32/gambas2mdi

Then I click on save but no gambas2mdi.gambas created at destination.
Found it at nowhere. Also not in /home/ron/gb2/gambas2mdi from previous.

To get the executable I need to rename gambas2mdi.gambas to gambas2mdi2.gambas
in the filename box. 
At least it seams to me the name part should be different to the directory name.
But changes made in source and try to create again executable needs any time
a new name. never overwrites the old one.

It did work till and including version .29 (100%).
the .30 version never used and with .31 I worked also.

For version .32 it is the first time I found this problem.
In fact the .29 still works correct.
I just try with the .29 engine to make executable of the .32 IDE.
Beside warning about the missing gb.form.mdi it creaeded the 
gambas2mdi.gambas and in 
  /mnt/hda6/homeEX/ron/GBapp/A__source32/gambas2mdi/ !!!

Using gba2 (v .32) in /home/ron/GBapp/A__source32/gambas2mdi works correct.

The 'IF NOT Exist(Dialog.Path) THEN' before 3--> does not work on symlinks ???
Make executable in '/mnt/hda6/homeEX/ron/GBapp/A__source32/gambas2mdi' (ExecPath)
did it in '/home/ron/gb2/gambas2mdi' (sPath)
instead of the wished place '/home/ron/GBapp/A__source32/gambas2mdi/'

See s.v.p. the #--> marks

Greets Ron

from project.module:

if in 4--> the file.ext (help say: Returns the extension of a file name. )
then ExecPath <> sPath is always true
Looks to me ExecPath is/should be the executable path/name without .gambas
sPath is as in 1--> Project.Dir &/ Project.Name & ".gambas"

ExecPath was the chosen place by me for the result in popup
for selecting that place ?? This is with symlink the real path of it.
  path:/mnt/hda6/homeEX/ron/GBapp/A__source32/gambas2mdi/ !!!
  fullname:gambas2mdi (without .gambas by 4-->??)

sPath however was the path of the same project but the symlink was not
expanded to real path during open project.
  path:/home/ron/GBapp/A__source32/gambas2mdi
  fullname:gambas2mdi.gambas

Question is what is supposed to happen with 4--> ???



PUBLIC FUNCTION MakeExecutable(OPTIONAL bDoNotIncVersion AS Boolean, OPTIONAL bSilent AS Boolean) AS Boolean

  DIM sExec AS String
  DIM sPath AS String

  IF CheckStartupClass() THEN RETURN TRUE

1-->  sPath = Project.Dir &/ Project.Name & ".gambas"

  IF NOT bSilent THEN
    Dialog.Title = ("Make executable")
2-->    Dialog.Path = ExecPath
    Dialog.Filter = [("Gambas executable files") & " (*.gambas)", ("All files") & " (*)"]
    IF NOT Exist(Dialog.Path) THEN
3-->      Dialog.Path = sPath
    ENDIF
    IF Dialog.SaveFile() THEN RETURN TRUE
4-->    ExecPath = File.Ext(Dialog.Path, "gambas")
  ENDIF

  EXEC ["rm", "-rf", Project.Dir &/ ".gambas.save"]
  TRY MOVE Project.Dir &/ ".gambas" TO Project.Dir &/ ".gambas.save"

  IF Compile(TRUE, NOT KeepDebugInfo) THEN RETURN TRUE

  SetMessage(("Making executable..."))

  sExec = System.Path &/ "bin/gba" & System.Version & " " & Quote(Project.Dir) & " > " & OUTPUT_FILE & " 2>&1"

  'PRINT sExec

  SHELL sExec WAIT
5-->  IF ExecPath <> sPath THEN
    TRY KILL ExecPath
    TRY MOVE sPath TO ExecPath
  ENDIF

  'Stat(OUTPUT_FILE)
  SetMessage(("OK"))
  

  'Compile(TRUE, FALSE)
  EXEC ["rm", "-rf", Project.Dir &/ ".gambas"]
  TRY MOVE Project.Dir &/ ".gambas.save" TO Project.Dir &/ ".gambas"

  IF NOT bDoNotIncVersion THEN INC ReleaseVersion
  WriteProject(TRUE)

END




More information about the User mailing list