-
Notifications
You must be signed in to change notification settings - Fork 789
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
Auto-install Python Package #277
Conversation
97362c6
to
1725a57
Compare
@jlblancoc I may need your help on this PR. I need to add corresponding python wrapper installation instructions in the |
Hmmm... what about a cmake script instead, so it's common to both Windows and Linux? |
I actually tried a cmake script first but running with superuser became problematic and it wouldn't work consistently. |
Okay that worked beautifully for me on Linux. Thank you @jlblancoc! |
This should be ready for review now. |
@varunagrawal have you tried installing and test on all normal configurations (Debug, Release, RelWithDebInfo)? |
I tested with Release and Debug. Testing with RelWithDebugInfo now. |
Build everything inside the build/cython{BuildType} directory directly, so we can bypass the `make install` step and introduce the `make python-install` step which allows cmake to handle all dependencies.
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.
I am now completely confused, and want to talk in person before merging. It seems a lot of work/confusion for something that was not a problem to begin with (at least for me) and will, when merged, impart confusion on existing users. I'm happy to be convinced otherwise, in person.
There seem to be a lot of unrelated changes in this PR as well (with the build suffixes etc) that make reviewing hard.
Sure thing. Yeah this PR went through a lot of different cycles due to different requirements being pushed in at different times. It wasn't a problem per se, but I have not been a fan of having to go into a separate directory just to install the wrapper to the python environment. |
- Added python-install target variable for easy updating. - Fixed/Added all dependencies so that everything is built automatically. - Removed unnecessary install commands
Long awaited fixe of some QPSolver tests Feature/lpsolver
@varunagrawal this is cython so we should either give up or put in 45.0.3. Please summarize what this PR now does. |
@varunagrawal this is the only PR left in 4.0.3 |
This should still be useful for generating packages with the new Pybind11 wrapper. Moreover, it has a good number of nice fixes to the setup.py and CMake files. |
@varunagrawal I have implemented I think this can be picked into 4.0.3 after branching out |
Please summarize what this PR now does. |
This PR
|
OK, thanks! @ProfFan this seems identical to what you did in pybind. Please confirm or tell us how it is different, and what needs to change in this PR - if anything. It should be identical - no sense in changing gears twice in a month. |
@dellaert Yes it is identical. I believe this could go into the release branch after branching out (since 4.1 will not have Cython stuff) |
@ProfFan can't we just merge into develop and then merge all recent changes from develop into the already existing 4.0.3 branch? |
@dellaert Yes |
New
make python-install
command to automatically install the python wrapper.The installation flow is as simple as
The major update is that instead of copying all the build artifacts to a 3rd party location (e.g.
/usr/loca/cython
), we instead store the build artifacts under the cmakebuild/cython
directory (with build tags getting added as postfixes by default).Running
make
now builds all the wrapper artifacts directly and in place, removing the need to runmake install
.The
make python-install
command then installs the build artifacts by running thesetup.py
making installation a one-line command. Since we no longer rely onmake install
, themake python-install
command can directly handle all the dependencies.This change is