Go to file
Stephen Seo e61d2724e6 Fix possible data-race with isAlive() calls
Removed isAlive() calls from functions passed to ThreadPool, and instead use an
unordered_set prior to using ThreadPool to "cache" which entities are not alive.
This is so that if a function passed to ThreadPool modifies the ECManager (e.g.
creating a new entity), then there will be no data race from also calling
isAlive(). (Note that this does not protect against "deleting" entities from the
ECManager during use of ThreadPool. It is expected for the caller to do the
"deleting" after use of stored/called functions is finished.)
2022-01-20 14:31:23 +09:00
.github/workflows Attempt to use github actions for Doxygen docs 2021-09-08 17:42:43 +09:00
doxygen Update doxygen main page to link to EC::Manager 2021-09-09 13:13:55 +09:00
src Fix possible data-race with isAlive() calls 2022-01-20 14:31:23 +09:00
.clangd Add .clangd specifying use of C++14 2021-09-07 18:17:31 +09:00
.gitignore Impl ThreadPool 2021-09-06 15:54:24 +09:00
AttributionNotice Added License and legal related requirements 2016-03-15 19:29:13 +09:00
Doxyfile Update Doxygen and README.md 2021-09-08 18:06:24 +09:00
LICENSE Update LICENSE year 2021-05-16 20:08:06 +09:00
README.md Update Doxygen and README.md 2021-09-08 18:06:24 +09:00

About

EntityComponentMetaSystem is a header-only library. However, UnitTests can be built and run using cmake (gtest is a dependency).

(Note that gtest uses the BSD 3-Clause License.)

Generated Doxygen Documentation

Check this repository's gh-pages documentation on ECMS

Compiling the UnitTests

Create a build directory.
mkdir build

Generate makefile with CMake.
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ../src

Build the project's UnitTests.
make

Run the UnitTests.
./UnitTests

Install the Header-Only Library

mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ../src

Install the project to where you want to.
make DESTDIR=install_here install

In this example, CMAKE_INSTALL_PREFIX=/usr, then invoking make DESTDIR=install_here install will install the src/EC directory to install_here/usr/include. The path to Manager.hpp will then look like install_here/usr/include/EC/Manager.hpp