Stephen Seo
e61d2724e6
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.) |
||
---|---|---|
.github/workflows | ||
doxygen | ||
src | ||
.clangd | ||
.gitignore | ||
AttributionNotice | ||
Doxyfile | ||
LICENSE | ||
README.md |
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