turicreate
turicreate copied to clipboard
[WIP] New build system.
Rearchitecture of the the build system. A vast simplification.
Changes
- ./configure can produce an XCode project of the Turi source code.
- deps/ can be compiled and installed out of the regular build process. Helpful for the XCode project.
- All packages in src/external/ and src/visualization compile into static libraries.
- The rest of the code base compiles into a single shared library. This means that most everything occurs in one single CMakeLists.txt file using standard cmake commands.
- All headers are installed into targets/include when
make install
is called. The main library is installed into targets/lib. - The code definitions that reflect compiler oddities (e.g. is std::hash<int128_t> defined) are dumped into a single header file, src/turi_common.h, at configure time. All source files and headers now include this file first. This allows other programs to link against this library / headers reliably.
- The python part of TuriCreate now builds through the standard setup.py method. Cython / pybind11 extensions are compiled and packaged using the standard extensions mechanisms and linking against the installed Turi headers.
WIP TODO: The python installation, deployment building.
To review: Essentially it's all in the root CMakeLists.txt file, with some changes to ./configure. Just focus on those two.
forked in #3065.