1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-26 17:10:38 +00:00

Save executable with source (Mac, probably Linux too)

This commit is contained in:
Fellippe Heitor 2016-06-21 11:59:37 -03:00
parent a9607ff2c6
commit 5e7e37ea0b
3 changed files with 48 additions and 33 deletions

View file

@ -3,5 +3,5 @@ DIM SHARED BuildNum AS STRING
Version$ = "1.000"
'BuildNum format is YYYYMMDD/id, where id is a ever-increasing
'integer. If you make a change, update the date and increase the id!
BuildNum$ = "20160621/21"
BuildNum$ = "20160621/22"

View file

@ -250,14 +250,14 @@ IF idelaunched = 0 THEN
menu$(m, i) = "#Start F5": i = i + 1
menu$(m, i) = "Modify #COMMAND$...": i = i + 1
menu$(m, i) = "-": i = i + 1
IF INSTR(_OS$, "WIN") THEN
RunMenuSaveExeWithSource = i
menu$(m, i) = "Save EXE in the source #folder": i = i + 1
IF SaveExeWithSource THEN
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + menu$(RunMenuID, RunMenuSaveExeWithSource)
ENDIF
menu$(m, i) = "-": i = i + 1
END IF
RunMenuSaveExeWithSource = i
menu$(m, i) = "Save EXE in the source #folder": i = i + 1
IF SaveExeWithSource THEN
menu$(RunMenuID, RunMenuSaveExeWithSource) = CHR$(7) + menu$(RunMenuID, RunMenuSaveExeWithSource)
ENDIF
menu$(m, i) = "-": i = i + 1
menu$(m, i) = "Start (#Detached) Ctrl+F5": i = i + 1
IF os$ = "LNX" THEN
menu$(m, i) = "Make E#xecutable Only F11": i = i + 1
@ -640,16 +640,18 @@ IF skipdisplay = 0 THEN
PRINT "Executable file created";
ELSE
PRINT ".EXE file created";
IF SaveExeWithSource THEN
LOCATE idewy - 2, 2
PRINT "Location: ";
COLOR 11, 1
IF path.exe$ = "" THEN path.exe$ = _STARTDIR$ + pathsep$
IF POS(0) + LEN(path.exe$) > idewx THEN
PRINT "..."; RIGHT$(path.exe$, idewx - 15);
ELSE
PRINT path.exe$;
END IF
END IF
IF SaveExeWithSource THEN
LOCATE idewy - 2, 2
PRINT "Location: ";
COLOR 11, 1
IF path.exe$ = "" THEN path.exe$ = getfilepath$(COMMAND$(0))
IF RIGHT$(path.exe$, 1) <> pathsep$ THEN path.exe$ = path.exe$ + pathsep$
IF POS(0) + LEN(path.exe$) > idewx THEN
PRINT "..."; RIGHT$(path.exe$, idewx - 15);
ELSE
PRINT path.exe$;
END IF
END IF
END IF
@ -1267,7 +1269,13 @@ DO
IF mX >= 2 AND mX <= idewx AND mY >= idewy - 3 AND mY <= idewy - 1 THEN
IF SCREEN(mY, mX, 1) = 11 + 1 * 16 THEN
IF idefocusline THEN idecx = 1: AddQuickNavHistory idecy: idecy = idefocusline: ideselect = 0: GOTO specialchar
SHELL _DONTWAIT "EXPLORER " + QuotedFilename$(path.exe$)
IF INSTR(_OS$, "WIN") THEN
SHELL _DONTWAIT "explorer " + QuotedFilename$(path.exe$)
ELSEIF INSTR(_OS$, "MAC") THEN
SHELL _DONTWAIT "open " + QuotedFilename$(path.exe$)
ELSE
SHELL _DONTWAIT "xdg-open " + QuotedFilename$(path.exe$)
END IF
END IF
END IF
END IF

View file

@ -955,7 +955,9 @@ IF C = 9 THEN 'run
END IF
END IF
IF path.exe$ = "" THEN path.exe$ = "..\..\"
IF path.exe$ = "" THEN
IF INSTR(_OS$, "WIN") THEN path.exe$ = "..\..\" ELSE path.exe$ = "../../"
END IF
'inform IDE of name change if necessary (IDE will respond with message 9 and corrected name)
IF i <> 1 THEN
@ -1114,10 +1116,12 @@ IF C = 9 THEN 'run
IF iderunmode = 1 THEN
IF os$ = "WIN" THEN SHELL _DONTWAIT QuotedFilename$(CHR$(34) + path.exe$ + file$ + extension$ + CHR$(34)) + ModifyCOMMAND$
IF os$ = "LNX" THEN SHELL _DONTWAIT QuotedFilename$("./" + file$ + extension$) + ModifyCOMMAND$
IF path.exe$ = "" THEN path.exe$ = "./"
IF os$ = "LNX" THEN SHELL _DONTWAIT QuotedFilename$(path.exe$ + file$ + extension$) + ModifyCOMMAND$
ELSE
IF os$ = "WIN" THEN SHELL QuotedFilename$(CHR$(34) + path.exe$ + file$ + extension$ + CHR$(34)) + ModifyCOMMAND$
IF os$ = "LNX" THEN SHELL QuotedFilename$("./" + file$ + extension$) + ModifyCOMMAND$
IF path.exe$ = "" THEN path.exe$ = "./"
IF os$ = "LNX" THEN SHELL QuotedFilename$(path.exe$ + file$ + extension$) + ModifyCOMMAND$
END IF
sendc$ = CHR$(6) 'ready
@ -1151,9 +1155,11 @@ f$ = RemoveFileExtension$(f$)
path.exe$ = ""
IF SaveExeWithSource THEN
path.exe$ = getfilepath$(sourcefile$)
IF RIGHT$(path.exe$, 1) <> pathsep$ then path.exe$ = path.exe$ + pathsep$
IF RIGHT$(path.exe$, 1) <> pathsep$ THEN path.exe$ = path.exe$ + pathsep$
END IF
IF path.exe$ = "" THEN
IF INSTR(_OS$, "WIN") THEN path.exe$ = "..\..\" ELSE path.exe$ = "../../"
END IF
IF path.exe$ = "" THEN path.exe$ = "..\..\"
FOR x = LEN(f$) TO 1 STEP -1
a$ = MID$(f$, x, 1)
@ -11779,7 +11785,7 @@ IF os$ = "WIN" THEN
PRINT #ffh, "echo Type 'quit' to exit"
PRINT #ffh, "echo (the GDB debugger has many other useful commands, this advice is for beginners)"
PRINT #ffh, "pause"
PRINT #ffh, "internal\c\c_compiler\bin\gdb.exe " + CHR$(34) + file$ + extension$ + CHR$(34)
PRINT #ffh, "internal\c\c_compiler\bin\gdb.exe " + CHR$(34) + path.exe$ + file$ + extension$ + CHR$(34)
PRINT #ffh, "pause"
CLOSE ffh
@ -11991,7 +11997,7 @@ IF os$ = "LNX" THEN
a$ = a$ + QuotedFilename$("../../" + file$ + extension$)
a$ = a$ + QuotedFilename$(path.exe$ + file$ + extension$)
IF INSTR(_OS$, "[MACOSX]") THEN
@ -12020,7 +12026,7 @@ IF os$ = "LNX" THEN
PRINT #ffh, "echo " + CHR_QUOTE + "After the debugger launches type 'run' to start your program" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "echo " + CHR_QUOTE + "After your program crashes type 'list' to find where the problem is and fix/report it" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "echo " + CHR_QUOTE + "(the GDB debugger has many other useful commands, this advice is for beginners)" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "gdb " + CHR$(34) + "../../" + file$ + extension$ + CHR$(34) + CHR$(10);
PRINT #ffh, "gdb " + CHR$(34) + path.exe$ + file$ + extension$ + CHR$(34) + CHR$(10);
PRINT #ffh, "Pause" + CHR$(10);
CLOSE ffh
SHELL _HIDE "chmod +x " + tmpdir$ + "debug_osx.command"
@ -12060,7 +12066,7 @@ IF os$ = "LNX" THEN
PRINT #ffh, "echo " + CHR_QUOTE + "After the debugger launches type 'run' to start your program" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "echo " + CHR_QUOTE + "After your program crashes type 'list' to find where the problem is and fix/report it" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "echo " + CHR_QUOTE + "(the GDB debugger has many other useful commands, this advice is for beginners)" + CHR_QUOTE + CHR$(10);
PRINT #ffh, "gdb " + CHR$(34) + "../../" + file$ + extension$ + CHR$(34) + CHR$(10);
PRINT #ffh, "gdb " + CHR$(34) + path.exe$ + file$ + extension$ + CHR$(34) + CHR$(10);
PRINT #ffh, "Pause" + CHR$(10);
CLOSE ffh
SHELL _HIDE "chmod +x " + tmpdir$ + "debug_lnx.sh"
@ -12075,7 +12081,8 @@ IF os$ = "LNX" THEN
IF INSTR(_OS$, "[MACOSX]") THEN
ff = FREEFILE
OPEN file$ + extension$ + "_start.command" FOR OUTPUT AS #ff
IF path.exe$ = "./" OR LEFT$(path.exe$, 2) = ".." THEN path.exe$ = ""
OPEN path.exe$ + file$ + extension$ + "_start.command" FOR OUTPUT AS #ff
PRINT #ff, "cd " + CHR$(34) + "$(dirname " + CHR$(34) + "$0" + CHR$(34) + ")" + CHR$(34);
PRINT #ff, CHR$(10);
PRINT #ff, "./" + file$ + extension$ + " &";
@ -12087,7 +12094,7 @@ IF os$ = "LNX" THEN
PRINT #ff, "exit";
PRINT #ff, CHR$(10);
CLOSE #ff
SHELL _HIDE "chmod +x " + file$ + extension$ + "_start.command"
SHELL _HIDE "chmod +x " + path.exe$ + file$ + extension$ + "_start.command"
END IF
END IF
@ -19819,8 +19826,8 @@ END SUB
SUB reginternal
reginternalsubfunc = 1
'$INCLUDE:'subs_functions\subs_functions.bas'
'$INCLUDE:'subs_functions\extensions\extension_list.bas'
'$INCLUDE:'subs_functions\subs_functions.bas'
'$INCLUDE:'subs_functions\extensions\extension_list.bas'
reginternalsubfunc = 0
END SUB