980
edits
Line 19: | Line 19: | ||
I'm beginning to look through various parts of the Flightgear code-base to understand how the parts fit together and how supporting libraries are used in the project. I'd like to learn how aircraft data and graphics are integrated into the working program, and how, why and where Nasal scripting is used. To this end, I have | I'm beginning to look through various parts of the Flightgear code-base to understand how the parts fit together and how supporting libraries are used in the project. I'd like to learn how aircraft data and graphics are integrated into the working program, and how, why and where Nasal scripting is used. To this end, I have | ||
* Built a full debug version of the next branch | * Built a full debug version of the next branch | ||
* Installed | * Installed | ||
Line 27: | Line 26: | ||
Later I'll try QtCreator | Later I'll try QtCreator | ||
Here's my directory structure | Here's my directory structure for building | ||
*$HOME | *$HOME | ||
Line 43: | Line 42: | ||
** Each of these directories contains clones for flightgear, simgear and other projects like OSG and OpenRTI as needed. | ** Each of these directories contains clones for flightgear, simgear and other projects like OSG and OpenRTI as needed. | ||
Rather than use excessive bandwidth, when I need a fresh copy, I just run download_and_compile.sh in a folder that already has a copy of the sources. Then I copy the folder over to the one I want to refresh and remove the build folder within the new one. Then run the script again to produce the executable version I want. | Rather than use excessive bandwidth, when I need a fresh copy, I just run download_and_compile.sh in a folder that already has a copy of the sources. Then I copy the folder over to the one I want to refresh and remove the build folder within the new one. Then run the script again to produce the executable version I want. As currently structured, download_and_compile.sh requires a separate set of sources for each different version built. | ||
Here's the atom/run/debug script I use for debugging | Here's the atom/run/debug script I use for debugging | ||
Line 71: | Line 70: | ||
====The Path to "Holding Short"==== | ====The Path to "Holding Short"==== | ||
{| class="wikitable" | |||
|- | |||
! Module !! Description !! Steps | |||
|- | |||
| src/Main/bootstrap || Bootstrap provides the top level of the stack for executing either fgviewerMain or fgMainInit. | |||
| | |||
* Enable Floating Point features with InitFPE | |||
* Set locale settings specific to using C or C++ | |||
* Uninstall if requested | |||
* Initialize logging | |||
* Initialize some static objects in OSG to prevent crashes on exit | |||
* set the std:: terminate function | |||
* set the atexit function | |||
* pass control to the viewer with fgViewerMain or initialize using fgMainInit | |||
* catch throwables and other fatal error conditions, providing appropriate error messages | |||
|- | |||
| src/Main/Main || Example || Example | |||
|- | |||
| Example || Example || Example | |||
|} | |||
====Modules on the Path to Holding Short==== | ====Modules on the Path to Holding Short==== | ||
edits