fatal error: src/MicroCore.h: No such file or directory
I have tried absolutely everything to make this build on Ubuntu 16.04 and I cannot get it to work.

I have tried:

- Building the master branch... got pretty far but failed.
- Checking out the `devel` branch and updating `cmake` to 3.14.2.
- I made sure that the monero library was on branch `release-v0.13`.

This was the first effor on the master branch:

```
[ 62%] Building CXX object src/CMakeFiles/myxrm.dir/CurrentBlockchainStatus.cpp.o
In file included from /usr/include/x86_64-linux-gnu/c++/5/bits/c++allocator.h:33:0,
                 from /usr/include/c++/5/bits/allocator.h:46,
                 from /usr/include/c++/5/memory:63,
                 from /usr/include/boost/config/no_tr1/memory.hpp:21,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /home/moises/monero/contrib/epee/include/net/http_client.h:31,
                 from /home/moises/openmonero/src/xmregcore/src/monero_headers.h:22,
                 from /home/moises/openmonero/src/xmregcore/src/MicroCore.h:8,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.h:6,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.cpp:5:
/usr/include/c++/5/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _Args = {const std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, xmreg::ThreadRAII2<xmreg::TxSearch> >&}; _Tp = std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >]’:
/usr/include/c++/5/bits/alloc_traits.h:530:4:   required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _Args = {const std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, xmreg::ThreadRAII2<xmreg::TxSearch> >&}; _Tp = std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > > >]’
/usr/include/c++/5/bits/stl_tree.h:529:32:   required from ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, _Args&& ...) [with _Args = {const std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, xmreg::ThreadRAII2<xmreg::TxSearch> >&}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >*]’
/usr/include/c++/5/bits/stl_tree.h:546:21:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, xmreg::ThreadRAII2<xmreg::TxSearch> >&}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >*]’
/usr/include/c++/5/bits/stl_tree.h:459:62:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Alloc_node::operator()(_Arg&&) const [with _Arg = const std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >&; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >*]’
/usr/include/c++/5/bits/stl_tree.h:1509:29:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, _Arg&&, _NodeGen&) [with _Arg = const std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >&; _NodeGen = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > > >::_Alloc_node; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]’
/usr/include/c++/5/bits/stl_tree.h:1868:26:   required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = const std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >&; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >]’
/usr/include/c++/5/bits/stl_map.h:613:41:   required from ‘std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = xmreg::ThreadRAII2<xmreg::TxSearch>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, xmreg::ThreadRAII2<xmreg::TxSearch> >]’
/home/moises/openmonero/src/CurrentBlockchainStatus.cpp:804:71:   required from here
/usr/include/c++/5/ext/new_allocator.h:120:4: error: use of deleted function ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const std::__cxx11::basic_string<char>; _T2 = xmreg::ThreadRAII2<xmreg::TxSearch>]’
  { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
    ^
In file included from /usr/include/c++/5/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/5/memory:62,
                 from /usr/include/boost/config/no_tr1/memory.hpp:21,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /home/moises/monero/contrib/epee/include/net/http_client.h:31,
                 from /home/moises/openmonero/src/xmregcore/src/monero_headers.h:22,
                 from /home/moises/openmonero/src/xmregcore/src/MicroCore.h:8,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.h:6,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.cpp:5:
/usr/include/c++/5/bits/stl_pair.h:127:17: note: ‘constexpr std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const std::__cxx11::basic_string<char>; _T2 = xmreg::ThreadRAII2<xmreg::TxSearch>]’ is implicitly deleted because the default definition would be ill-formed:
       constexpr pair(const pair&) = default;
                 ^
/usr/include/c++/5/bits/stl_pair.h:127:17: error: use of deleted function ‘xmreg::ThreadRAII2<xmreg::TxSearch>::ThreadRAII2(const xmreg::ThreadRAII2<xmreg::TxSearch>&)’
In file included from /home/moises/openmonero/src/CurrentBlockchainStatus.h:12:0,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.cpp:5:
/home/moises/openmonero/src/ThreadRAII.h:35:7: note: ‘xmreg::ThreadRAII2<xmreg::TxSearch>::ThreadRAII2(const xmreg::ThreadRAII2<xmreg::TxSearch>&)’ is implicitly deleted because the default definition would be ill-formed:
 class ThreadRAII2 : public ThreadRAII
       ^
/home/moises/openmonero/src/ThreadRAII.h:35:7: error: use of deleted function ‘xmreg::ThreadRAII::ThreadRAII(const xmreg::ThreadRAII&)’
/home/moises/openmonero/src/ThreadRAII.h:15:7: note: ‘xmreg::ThreadRAII::ThreadRAII(const xmreg::ThreadRAII&)’ is implicitly declared as deleted because ‘xmreg::ThreadRAII’ declares a move constructor or move assignment operator
 class ThreadRAII
       ^
/home/moises/openmonero/src/ThreadRAII.h:35:7: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = xmreg::TxSearch; _Dp = std::default_delete<xmreg::TxSearch>]’
 class ThreadRAII2 : public ThreadRAII
       ^
In file included from /usr/include/c++/5/memory:81:0,
                 from /usr/include/boost/config/no_tr1/memory.hpp:21,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /home/moises/monero/contrib/epee/include/net/http_client.h:31,
                 from /home/moises/openmonero/src/xmregcore/src/monero_headers.h:22,
                 from /home/moises/openmonero/src/xmregcore/src/MicroCore.h:8,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.h:6,
                 from /home/moises/openmonero/src/CurrentBlockchainStatus.cpp:5:
/usr/include/c++/5/bits/unique_ptr.h:356:7: note: declared here
       unique_ptr(const unique_ptr&) = delete;
       ^
src/CMakeFiles/myxrm.dir/build.make:75: recipe for target 'src/CMakeFiles/myxrm.dir/CurrentBlockchainStatus.cpp.o' failed
make[2]: *** [src/CMakeFiles/myxrm.dir/CurrentBlockchainStatus.cpp.o] Error 1
CMakeFiles/Makefile2:241: recipe for target 'src/CMakeFiles/myxrm.dir/all' failed
make[1]: *** [src/CMakeFiles/myxrm.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
```

After quite a bit of effort, the `devel` branch gives even worse results...

```
$ make
Scanning dependencies of target myxmr
[  3%] Building CXX object src/CMakeFiles/myxmr.dir/CurrentBlockchainStatus.cpp.o
In file included from /home/moises/openmonero/src/CurrentBlockchainStatus.cpp:5:0:
/home/moises/openmonero/src/CurrentBlockchainStatus.h:6:27: fatal error: src/MicroCore.h: No such file or directory
compilation terminated.
src/CMakeFiles/myxmr.dir/build.make:75: recipe for target 'src/CMakeFiles/myxmr.dir/CurrentBlockchainStatus.cpp.o' failed
make[2]: *** [src/CMakeFiles/myxmr.dir/CurrentBlockchainStatus.cpp.o] Error 1
CMakeFiles/Makefile2:276: recipe for target 'src/CMakeFiles/myxmr.dir/all' failed
make[1]: *** [src/CMakeFiles/myxmr.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
```