Previously didn't add the source to the target if a source of the same name already existed. This was janky because these files would be considered the same: src/foo.cpp src/armv4t/bar/baz/foo.cpp, even though they really shouldn't. What should happen instead, is that the symbols of the architecture-specific code should not be overridden by the common implementation regardless of where the file is placed. This means that if the files src/foo.cpp and src/armv4t/bar.cpp contain implementations of the function foo, the armv4t implementation will be exported even though it uses a different filename from the common implementation. This commit implements this behaviour by using the way symbols are naturally resolved. Multiple smaller libraries are built for each architecture dependent code. Afterwards the libraries are linked into one, with the arch specific libraries linked first.
mtl
C++ STL replacement, intended for embedded systems. Aims to be more performant than ETL.
Description
Languages
C++
84.8%
Assembly
12.8%
CMake
2.4%