-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automated wheel creation with cmake and more #604
Conversation
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.
Reviewed 27 of 27 files at r1.
Reviewable status: all files reviewed, 4 unresolved discussions (waiting on @yxlao, @takanokage, and @qianyizh)
src/Python/CMakeLists.txt, line 25 at r1 (raw file):
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. # ----------------------------------------------------------------------------
I think we are not putting the license header in CMakeLists.txt
src/Python/CMakeLists.txt, line 34 at r1 (raw file):
find_program(PYTHON_IN_PATH "python") set(PYTHON_EXECUTABLE ${PYTHON_IN_PATH}) endif()
This is great. This will resolve many python version conflicts (compiled with system Python but the output module is called with virtualenv Python) we had encountered. Just quick question. Why this lines are inside if (NOT PYTHON_EXECUTABLE) ? Can you explain bit more?
src/Python/install_pip_wheel.cmake, line 26 at r1 (raw file):
# IN THE SOFTWARE. # ----------------------------------------------------------------------------
Dropping license header?
src/Python/Package/setup.py.in, line 30 at r1 (raw file):
setup( author='IntelVCL',
Open3D team?
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.
Reviewable status: 22 of 27 files reviewed, 5 unresolved discussions (waiting on @syncle, @yxlao, @takanokage, and @qianyizh)
src/Python/CMakeLists.txt, line 22 at r1 (raw file):
PYTHON_EXECUTABLE
src/Python/CMakeLists.txt, line 25 at r1 (raw file):
Previously, syncle (Jaesik Park) wrote…
I think we are not putting the license header in CMakeLists.txt
Done.
src/Python/CMakeLists.txt, line 34 at r1 (raw file):
if (NOT PYTHON_EXECUTABLE)
if (NOT PYTHON_EXECUTABLE)
is when the user didn't specify the-DPYTHON_EXECUTABLE
. In this case, we use the python executable in the current path.
Added comments in the code as well.
src/Python/install_pip_wheel.cmake, line 26 at r1 (raw file):
Previously, syncle (Jaesik Park) wrote…
Dropping license header?
Done.
src/Python/Package/setup.py.in, line 30 at r1 (raw file):
Previously, syncle (Jaesik Park) wrote…
Open3D team?
Done.
Usage
Motivation
compiled python module. The current installation mechanism only work with one
compiled python module. Using approach in this PR, all python package files
will first be grouped in to a wheel file, then installed.
make install
installs the python module in the global user site.Therefore, it doesn't work with pip nor conda virtualenv.
(see this discord discussion)
different names is a painful manual process.
single wheel package. This is a simpler approach when we are doing the pip
packaging manually, however the wheel size is large. With the automated
process, creating wheels containing single compiled module is simple. Now
the wheel size is about 12X smaller.
installation process.
This change is