Using nupic.core as bare C++ library

First of all, my background with C++ is mostly in embedded systems and small desktop apps, not big projects with complicated make files.
I am trying to experiment with pure C++ but I am having trouble with the compilation and there doesn’t seem to be documentation on it except https://github.com/numenta/nupic.core/wiki/Development-Workflow

Surely, I can build experiments as new bundled examples but that involves messing with the huge CMakeLists.txt file and then running make && make install. Beside this inconvenience, compilation is pretty inefficient because it checks for all files in nupic.core against changes.

When I tried to use the /build/release contents as external nupic library, I got:
In file included from hello.cpp:8:0: include/nupic/algorithms/SpatialPooler.hpp:35:45: fatal error: nupic/math/SparseBinaryMatrix.hpp: No such file or directory #include <nupic/math/SparseBinaryMatrix.hpp>
To me it means that the header I directly include in my hello.cpp is found, but further dependencies are not due to the way they are included?

I don’t think nupic.core is ready to be used as a stand-alone yet. See this issue:

We are close, but not quite there yet.

@rhyolight
Could you please explain me more in details why we can not use those library for building a stand-alone applications outside nupic.core-directory?
Which will be done so that we can use them as stand-alone?
Best thanks Binh

Oh, you could, but you would need to write your own encoders and anomaly likelihood algorithms.

@dorinclisu, upon successful build of nupic.core on Ubuntu 16.04, I find SparseBinaryMatrix.hpp here:

vitaly@ubuntuvm:~/localbuilds/static-core-only/nupic.core/build$ find ./ -name SparseBinaryMatrix.hpp
./release/include/nupic/math/SparseBinaryMatrix.hpp

@vkruglikov
The file is there, the problem is that it’s not visible to the compiler due to the absolute include path.
Changing #include <nupic/math/SparseBinaryMatrix.hpp> to
#include "../math/SparseBinaryMatrix.hpp" would solve this error, but it is a lengthy fix for all the files so this is why I asked for a proper solution.

OK, there was no problem with the library, I just had to use -I$NUPIC_CORE/build/release/include
It is working fine now.