[Gambas-bugtracker] Bug #2585: Allow Structure and extern definitions to be included at compile time

bugtracker at gambaswiki.org bugtracker at gambaswiki.org
Sat Jul 9 18:32:53 CEST 2022


http://gambaswiki.org/bugtracker/edit?object=BUG.2585&from=L21haW4-

Brian G reported a new bug.

Summary
-------

Allow Structure and extern definitions to be included at compile time

Type             : Request
Priority         : Medium
Gambas version   : Master
Product          : Development Environment


Description
-----------

Right now if I use a structure or extern in a number of modules, I must redefine the structure or extern  in each module.
 
As an example if I have a number of modules or classes that use a specific message header structure and that structure is embedded into a number of specific message type structures
that same structure must be defined over and over again in each module or class which represents the specific message structure.

The compiler already knows if any structure definition in a module/class differs from the definition in any other Module/class. 

This leads to a lot of work if that structure or extern definition changes, having to revisit every file from which it is called/used.

Would it be possible to enable the #include or include directive in the ide such that it can include files from the data folder into the application source.

So in data folder I define my Structures.inc and Externals.inc files and in each of my modules or classes that use those structures I simple do an
include "Structures.inc","externals.inc"
in my source code. 

This already works well with scripts.

This would be a tremendous help when working with external functions and structures.

This is one method to solve this issue, maybe there are others. But it certainly would reduce development/maintenance error possibilities and time
a very great deal.

Thanks

Brian G


System information
------------------

[System]
Gambas=3.17.90
OperatingSystem=Linux
Kernel=5.15.0-33-generic
Architecture=x86_64
Distribution=Linux Mint 20.3 Una
Desktop=MATE
Font=Ubuntu,10
Scale=9
Theme=proxy
Language=en_US.UTF-8
Memory=13938M

[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.6.0
DBus=libdbus-1.so.3.19.11
GDK2=libgdk-x11-2.0.so.0.2400.32
GDK3=libgdk-3.so.0.2404.16
GStreamer=libgstreamer-1.0.so.0.1602.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2404.16
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.97.0.0
QT5=libQt5Core.so.5.12.8
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

[Environment]
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-bxRmyxvDkT,guid=712eb49f8f0a5bd3e736019162c9a260
DISPLAY=:50
EDITOR=/usr/bin/nano
GB_GUI=gb.qt5
GIO_LAUNCHED_DESKTOP_FILE_PID=1655662
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=:/usr/local/easysoft/access:/usr/local/easysoft/lib
LIBVIRT_DEFAULT_URI=qemu:///system
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
MOTD_SHOWN=pam
PATH=<home>/.local/bin:<home>/bin:<home>/.local/bin:<home>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PULSE_CLIENTCONFIG=<home>/.x2go/C-<user>-50-1657381467_stDMATE_dp24/.pulse-client.conf
PWD=<home>
QT_ACCESSIBILITY=1
QT_FONT_DPI=96
QT_GRAPHICSSYSTEM=native
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1646576,unix/<hostname>:/tmp/.ICE-unix/1646576
SHELL=/usr/bin/gsh
SHLVL=1
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
SSH_CLIENT=73.66.0.38 38492 22
SSH_CONNECTION=73.66.0.38 38492 192.168.250.8 22
STARTUP=/usr/bin/im-launch /usr/bin/env LD_LIBRARY_PATH=:/usr/local/easysoft/access:/usr/local/easysoft/lib mate-session
TERM=xterm
TZ=:/etc/localtime
USER=<user>
X2GO_AGENT_PID=1646225
X2GO_SESSION=<user>-50-1657381467_stDMATE_dp24
XAUTHORITY=<home>/.Xauthority
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_RUNTIME_DIR=/run/user/1000
XDG_SESSION_CLASS=user
XDG_SESSION_ID=399
XDG_SESSION_TYPE=tty
XSESSION_EXEC=mate-session




More information about the Bugtracker mailing list