-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[WIP] New build system. #2877
base: main
Are you sure you want to change the base?
[WIP] New build system. #2877
Conversation
echo " --target-dir, -t The target directory to install artifact to." | ||
echo " default: `pwd`/targets." | ||
echo | ||
echo " --release Build in release mode." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't look like debug or release is actually getting used any where.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by default is release. Just add --debug
should be fine.
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. All source files and headers 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.
echo " --target-dir, -t The target directory to install artifact to." | ||
echo " default: `pwd`/targets." | ||
echo | ||
echo " --release Build in release mode." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by default is release. Just add --debug
should be fine.
@@ -0,0 +1,112 @@ | |||
#!/bin/bash -e |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this file intended to be used interactively? like, configure
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eh, this one seem deprecated. scripts/make_wheel.sh is better I think? Not sure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this one uses make_wheel.sh
. I don't know if this is just for the manual interactive build.
forked in #3065. |
Rearchitecture of the the build system. A vast simplification.
Changes
make install
is called. The main library is installed into targets/lib.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.