Skip to content

Files

Latest commit

626c181 · May 20, 2018

History

History

libft0cc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
May 16, 2018
May 16, 2018
Apr 27, 2018
May 17, 2018
May 1, 2018
May 20, 2018

libft0cc

Travis AppVeyor Coveralls

libft0cc comprises the core components of 0CC-FamiTracker. These components are either exclusive to 0CC-FamiTracker, or rewritten based on the original FamiTracker code, with the main objective that they work on all popular C++ compilers (GCC, Clang, Visual C++). Eventually all components that do not depend on Win32 functionality shall be moved into libft0cc.

libft0cc is dual-licensed under MPL 2.0 and GPLv2.

Building

libft0cc uses CMake to build the libraries:

$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .

libft0cc requires a fairly recent C++17 compiler, however the targeted compilers already support almost all of the C++17 features.

The 0CC-FamiTracker project does not use libft0cc's CMakeLists.txt file itself; this will change in the future. The acutal Visual Studio project used by 0CC-FamiTracker is located at the vc directory.

Testing

Building and running the unit tests requires Google Test. The CMake build file automatically fetches the repository. Tests can be run with:

$ GTEST_COLOR=1 ctest -V

There is a long way to go before integration tests can be written for libft0cc. However, as proofs of concept, many 0CC-FamiTracker source files can already be compiled directly on GCC 7. The ../fuzz directory demonstrates fuzz testing with American Fuzzy Lop, whereas the ../0ccft-ext directory compiles the Kraid's Hideout (NES) NSF on a *nix machine using 0CC-FamiTracker's NSF exporter classes.