<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Module_hierarchy</title><link>https://sourceforge.net/p/hpg-projects/wiki/Module_hierarchy/</link><description>Recent changes to Module_hierarchy</description><atom:link href="https://sourceforge.net/p/hpg-projects/wiki/Module_hierarchy/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 20 Jan 2023 12:17:51 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/hpg-projects/wiki/Module_hierarchy/feed" rel="self" type="application/rss+xml"/><item><title>Module_hierarchy modified by Hugh Greene</title><link>https://sourceforge.net/p/hpg-projects/wiki/Module_hierarchy/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;To allow compiling on multiple platforms without a separate&lt;br/&gt;
configuration for each, ENIGMA's compilation process is described by a&lt;br/&gt;
network of settings files. These files are rooted first and foremost on&lt;br/&gt;
the currently running operating system, which must be &lt;a class="" href="/p/hpg-projects/wiki/Mac_OS_X/" title="wikilink"&gt;Mac OS&lt;br/&gt;
X&lt;/a&gt;, &lt;a class="" href="../Windows" title="wikilink"&gt;Windows&lt;/a&gt;, or&lt;br/&gt;
&lt;a class="" href="/p/hpg-projects/wiki/Linux/" title="wikilink"&gt;Linux&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Each of these platforms has the capacity to compile for numerous&lt;br/&gt;
devices, so we begin by enumerating viable compilers (and thus, if we&lt;br/&gt;
assume that each compiler can only compile for one target, viable target&lt;br/&gt;
platforms). These could include compilers for different computer&lt;br/&gt;
operating systems, or tools for building games for mobile devices and&lt;br/&gt;
actual game consoles.&lt;/p&gt;
&lt;p&gt;From there, the potential processes are broken into supported&lt;br/&gt;
platform-wide APIs, which include &lt;a class="" href="../Cocoa" title="wikilink"&gt;Cocoa&lt;/a&gt;,&lt;br/&gt;
&lt;a class="" href="../X11" title="wikilink"&gt;X11&lt;/a&gt;, and &lt;a class="" href="../Win32API" title="wikilink"&gt;Win32API&lt;/a&gt;. These are&lt;br/&gt;
available based on the target compiler/platform selected above. For&lt;br/&gt;
example, if the user is running Linux, and chooses the Android compiler,&lt;br/&gt;
only the Android API will be available for selection.&lt;/p&gt;
&lt;p&gt;Finally, subsystems such as graphics and audio show up in the hierarchy.&lt;br/&gt;
These are made available for selection based on information from all&lt;br/&gt;
three aforementioned items. As explained further in the&lt;br/&gt;
&lt;a class="" href="/p/hpg-projects/wiki/About.ey/" title="wikilink"&gt;About.ey&lt;/a&gt; documentation, sound systems can specify&lt;br/&gt;
platforms on which they function, and graphics systems can specify&lt;br/&gt;
platform APIs with which they function.&lt;/p&gt;
&lt;h2 id="interdependence"&gt;Interdependence&lt;/h2&gt;
&lt;p&gt;A simplified layout of the network of settings files is as follows,&lt;br/&gt;
showing example snippets of &lt;a class="" href="/p/hpg-projects/wiki/About.ey/" title="wikilink"&gt;About.ey&lt;/a&gt; files from&lt;br/&gt;
such directories as &lt;a class="" href="../Compilers/" title="wikilink"&gt;Compilers/&lt;/a&gt; (at the root&lt;br/&gt;
level; the most important folder), &lt;a class="" href="../Platforms/" title="wikilink"&gt;Platforms/&lt;/a&gt;&lt;br/&gt;
(the next most important, in&lt;br/&gt;
&lt;a class="" href="../ENIGMAsystem/" title="wikilink"&gt;ENIGMAsystem/&lt;/a&gt;&lt;a class="" href="../SHELL/" title="wikilink"&gt;SHELL/&lt;/a&gt;),&lt;br/&gt;
and&lt;br/&gt;
&lt;a class="" href="../Graphics_Systems/" title="wikilink"&gt;Graphics_Systems/&lt;/a&gt;/&lt;a class="" href="../Audio_Systems/" title="wikilink"&gt;Audio_Systems/&lt;/a&gt;&lt;br/&gt;
(in the same folder as Platforms/, but the two are less crucial).&lt;/p&gt;
&lt;p&gt;&lt;img alt="CompilerHierarchy.svg" src="../CompilerHierarchy.svg" title="CompilerHierarchy.svg"/&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hugh Greene</dc:creator><pubDate>Fri, 20 Jan 2023 12:17:51 -0000</pubDate><guid>https://sourceforge.netbed33bdfe4c0cc7b6d3f1a8017cc4f42dea806a6</guid></item></channel></rss>