E.xtremely M.odular A.PI
If this is being compiled on the Bash For Windows Subsystem, make sure to first follow these steps.
This project is dependent on the libreadline-dev package and SFML (or equivalent). On Debian-based systems, or similar, use:
sudo apt-get install libreadline-dev libsfml-dev
First, clone the repo. From inside EMA/, run the command "make" (or "make linux" if not compile on the Bash For Windows Subsystem), this will build the PluginManager/Compiler, which will assist in building the rest of the game.
- Note: This will only compile with versions of gcc that support c++17.
Now that you have the compiler, you can use the help menu in that interface to learn about the various commands that you can use. In short: enable <pluginName>
for whatever plugins you want to use, save
that list so you don't have to enable all the plugins you want every time, compile
, then exit
.
Alternatively, one can create their own compile command in the structure of:
g++ -Wall -Wextra -pedantic -std=c++1y <Main/Internal Dependencies> <Plugin Dependencies> -o main
...making sure that "Compiler/pluginTypes.h" has/includes all types defined in desired plugins, for example use this file:
#ifndef SIM_PLUGIN_TYPES
#define SIM_PLUGIN_TYPES 1
#include "../Plugins/datTest/datTestTypes.h"
#endif
...with this command:
g++ -Wall -Wextra -pedantic -std=c++1y Main/main.cpp Main/dataStructure.cpp Main/Entity.cpp Plugins/datTest/datTestTypes.cpp -o main