/libecs-cpp

Entity Component System library for C++

Primary LanguageC++OtherNOASSERTION

libecs-cpp - Entity Component System for C++

See src/example.cpp for a minimal example.

Build environment setup

The build system and its dependencies are designed around Linux, if you want to build on Windows you will need to use Windows Subsystem for Linux.

  • Install base packages
sudo apt install build-essential libtool pkg-config curl git gawk
  • Install wine and Windows dev packages
sudo su -
dpkg --add-architecture i386
apt update
apt install libz-mingw-w64-dev mingw-w64-x86-64-dev binutils-mingw-w64-x86-64 \
g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 wine wine32 wine64 wixl osslsigncode \
mingw-w64-tools
exit
  • Download std::thread implementation for mingw
sudo su -

curl -o /usr/x86_64-w64-mingw32/include/mingw.thread.h \
https://raw.githubusercontent.com/meganz/mingw-std-threads/master/mingw.thread.h

curl -o /usr/x86_64-w64-mingw32/include/mingw.invoke.h \
https://raw.githubusercontent.com/meganz/mingw-std-threads/master/mingw.invoke.h

curl -o  /usr/x86_64-w64-mingw32/include/mingw.mutex.h \
https://raw.githubusercontent.com/meganz/mingw-std-threads/master/mingw.mutex.h

exit

Build library

  • Build and install libecs-cpp
cd libecs-cpp
./autogen.sh
./configure
make
sudo make install
  • Test
./src/example

Build library for Windows

  • Build and install libecs-cpp
export PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig/
cd libecs-cpp
./autogen.sh
make distclean
./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32
make
sudo make install
unset PKG_CONFIG_PATH
  • Test
export MING_LIB=`ls  /usr/lib/gcc/x86_64-w64-mingw32/|grep posix|head -n1`
WINEPATH="/usr/lib/gcc/x86_64-w64-mingw32/${MING_LIB};/usr/x86_64-w64-mingw32/lib" wine64 src/example.exe