1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-01 16:10:39 +00:00
Commit graph

46 commits

Author SHA1 Message Date
Matthew Kilgore 2d919768ac Add C++ compiler settings dialog
The new dialogs includes 5 settings:

1. Flag to turn on Optimization (off by default)
2. Flag to strip symbols (On by default)
3. String for extra compiler flags
4. String for extra linker flags
5. Setting for max compiler processes (default of 3)

Fixes: #65
Fixes: #40
2022-05-30 23:15:04 -04:00
Matthew Kilgore 11ec9237a3 Add support for mylib$ and mylibopt$ 2022-05-12 00:21:02 -04:00
Matthew Kilgore 0930d51b9c Move some file-related functions into utilities/file.bas 2022-05-06 13:42:35 -04:00
Matthew Kilgore c165476838 Create icon.rc file on all platforms, copy ico file into temp
Previously, the creation of the icon.rc file was restricted to be
Windows only because Windows is the only platform with a use for that
file. Unfortunately, this breaks a fundimental assumption about how the
QB64 C++ generation works, because we only have one set of
`./internal/source` files from which we build all versions of QB64 for
all platforms. Due to that, the built version needs to include all files
needed by all platforms, regardless of which one is doing the building.
So to that end, all platforms should produce the icon.rc, even if it
will not be used on that platform.

Additionally, the path to the icon file in `icon.rc` is problimatic
because it is made into an absolute path. This blocks `qb64.bas` from
using `$EXEICON` because the absolute path is not predictable, as
the location we create ./internal/source will be different from the
location we build ./internal/source. Effectively this means that the
`icon.rc` file in `./internal/source` would always be wrong.

The solution is to not use an absolute path, with the other option being
to have the icon in the same directory as the resource file. This is
actually relatively easy to acomplish since icon files are not terribly
large and we can simply copy it into the temp directory.

Thus, that is what this change does - the specified icon file is copied
into the temp directory as `icon.ico`, which allows use to use
`icon.ico` in the `icon.rc` file and have it always work regardless of
directory.

The internal logic was also cleaned up a bit. The creation of these
files is no longer Windows specific, and the $EXEICON parsing no longer
writes to the `icon.rc` file - rather, the entire thing is generated
together, with both the $VERSIONINFo and $EXEICON depending on which
were provided.
2022-05-06 13:42:35 -04:00
FellippeHeitor d0c156f876 Finishes restructure of support files. 2021-07-22 20:44:36 -03:00
FellippeHeitor 898c0ffedb Begins folder reorganization (internal/support).
For .bas/.bm/.bi files that are required at compilation time, as opposed to `source`, which is not required for normal operation.
2021-07-22 18:39:20 -03:00
FellippeHeitor 33ec83d0fb Adds Clear All Skips, Set TCP port. 2021-07-22 15:23:37 -03:00
FellippeHeitor 231e28c79b Adds method to allow closing the connection with the IDE.
In order to allow $DEBUG to work with programs that call CLEAR, the connection handle used to connect to the IDE is locked by default and cannot be CLOSEd. With this change, the debuggee itself can now unlock the handle and close the link.
2021-07-22 00:18:34 -03:00
FellippeHeitor 30348dd2db Allows a debuggee to call CLEAR while keeping connected to the IDE. 2021-07-21 23:54:30 -03:00
FellippeHeitor 2097f35a8b Implements "Run To This Line". 2021-07-20 22:28:03 -03:00
Fellippe Heitor 19d22d4c9f Renames ide to ideHost in vwatch.bm 2021-07-20 11:56:24 -03:00
FellippeHeitor 5e53786255 Implements "Skip Line"
Ctrl+P to set line to skip.
Ctrl+Line Click to set line to skip with mouse.
2021-07-20 02:50:54 -03:00
FellippeHeitor aefde3eb55 Implements Set Next Line.
Allows arbitrarily changing the execution order from the IDE.
Ctrl+G in $DEBUG mode to launch the Set Next Line dialog.
2021-07-20 01:06:30 -03:00
FellippeHeitor 655f1e3b19 Sends call stack to IDE when an error occurs. 2021-07-19 22:25:15 -03:00
FellippeHeitor 43c2dbc984 Keeps timers disabled when stepping ($DEBUG). 2021-07-19 02:30:40 -03:00
FellippeHeitor bfe081b421 Handles STOP as a regular breakpoint in $DEBUG mode. 2021-07-19 02:30:16 -03:00
FellippeHeitor 6a1ec42b4d Keep call history in the debuggee; send per request.
Unless we had two channels, one to send the stack, another for real time commands, execution would be really slowed down.
2021-07-19 01:59:49 -03:00
FellippeHeitor de236d4a5f Uses ENVIRON to set send the port number to the debuggee. Also:
- Limits sending "call" info to the IDE (not to hog the communication channel)
- Add $INCLUDE info to call stack.
2021-07-19 00:59:54 -03:00
FellippeHeitor 8d35b87fd1 Initial implementation of call stack ($DEBUG). 2021-07-18 22:02:41 -03:00
FellippeHeitor c59cef04d7 Allows sub/functions to be reported in $INCLUDEs.
Reorganizes source/utilities.
2021-07-17 17:25:48 -03:00
Fellippe Heitor ae887507c2 On error, report back to the IDE. ($DEBUG) 2021-07-16 23:18:46 -03:00
Fellippe Heitor 78fb2ff1b9 Reduces parameters in SUB_VWATCH()
Since `vwatch_linenumber` is a shared variable, it doesn't need to be 
passed to `SUB_VWATCH()`.
2021-07-16 18:51:35 -03:00
Luke Ceddia 2b86bdcef2
Add local command (broken) 2021-07-16 22:47:52 +10:00
Fellippe Heitor af2de0f24e Merge development 2021-07-16 09:25:13 -03:00
Fellippe Heitor 8109b81ef7 Adds Step Out 2021-07-16 01:09:27 -03:00
Fellippe Heitor 74d2e0853a END and SYSTEM send a 'quit' signal to the IDE 2021-07-16 00:52:06 -03:00
Fellippe Heitor 0217fa2a5e Adds F10 to clear all breakpoints
Also, visual tweaks.
2021-07-16 00:34:23 -03:00
Fellippe Heitor b748f7b209 Allows toggling breakpoints while running. 2021-07-16 00:02:56 -03:00
Fellippe Heitor f0751243ef Begins work for variable watching 2021-07-15 17:00:31 -03:00
FellippeHeitor af454940e4 Adds TIMER ON control over the debuggee. 2021-07-15 01:13:50 -03:00
FellippeHeitor ea7c90c6c0 F8 now runs a full line if there are multiple statements. Also:
Consistent coloring of breakpoints in the side bar.
Breakpoints are hidden if $DEBUG is removed.
F9 only sets breakpoints if $DEBUG is active.
2021-07-15 00:32:35 -03:00
FellippeHeitor b54de08aa3 Implements Step Over for $DEBUG mode
Using Shift+F8 when stepping line by line when on a line of code that contains a SUB/FUNCTION call, the sub-procedure lines will be run without entering the block of code, and execution will resume in the next line of code after the SUB/FUNCTION call.
2021-07-14 21:56:17 -03:00
FellippeHeitor b5cdf1590e Allows $DEBUG to be added anywhere in the code. 2021-07-14 20:34:47 -03:00
Fellippe Heitor 6fed9ea250 Improves $DEBUG mode connection and operation. 2021-07-13 18:06:32 -03:00
Fellippe Heitor 5eb034eeef Tweaks to connection between IDE and program.
Also: makes it compatible with Option _Explicit
2021-07-12 12:45:05 -03:00
Fellippe Heitor 19219dbfe5 $DEBUG mode now in working state.
F9 (or clicking a line number) will toggle a breakpoint; When running a 
program, F8 will pause/step line by line, F9 will still be usable to 
toggle breakpoints and F5 will continue execution. ESC exits $DEBUG 
mode.
2021-07-11 21:05:03 -03:00
Fellippe Heitor 7b853bf9f2 First attempt at implementing Step. 2021-07-11 12:55:49 -03:00
Fellippe Heitor 532ade2d8e Makes strings.bas $includable by option _explicit projects 2021-03-10 17:22:37 -03:00
Fellippe Heitor 346b50d80a Reduces INI-Manager to the bare minimum. 2021-02-07 23:07:56 -03:00
Fellippe Heitor eac3074e30 Incorporates INI-Manager to deal with the settings file.
Allows for multiple IDE instances using the same config file by default.
2021-02-07 22:01:53 -03:00
FellippeHeitor 07ca4e9dab Improves binary QuickBASIC 4.5 converter.
- Instead of aborting upon finding a bad token, proceed with processing;
- Adds space after line numbers.
2020-07-30 20:56:08 -03:00
John K. Harvey d031d090b8 Possible fix for qb45 converter 2020-02-24 19:28:18 -05:00
FellippeHeitor e30f19b38a Makes $COLOR constansts an external includable file. 2020-01-18 00:20:54 -03:00
FellippeHeitor e777e8a94e Fix to QB4.5 binary fomat converter:
- Enabled token 0x08c;
- PCOPY parameters no longer being inverted;
2019-01-12 10:07:37 -02:00
Emmanuel Bourg 1253c208c7 Moved the string manipulation functions into a separate source file 2018-05-25 10:47:42 +02:00
FellippeHeitor e6a265f0e4 Integrates qarnos's QB45BIN.
Upon attempting to load a binary file, the IDE will detect that the file type is a QuickBASIC 4.5 binary file and offer to convert it to plain text using qarnos's QB45BIN utility.
2017-10-01 17:51:28 -03:00