Skip to content
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

Drop mex and SWIG and switch to pybind11 for Python bindings #52

Merged
merged 16 commits into from
Jan 27, 2017
Merged

Conversation

rdeits
Copy link
Owner

@rdeits rdeits commented Jan 26, 2017

The C++ matlab interface has been a burden for a long time (since I don't use it and can't test it on Travis), so I'm dropping it. Fortunately, there's still a pure-Matlab implementation of IRIS included, which works just fine and imposes no burden on the build system.

Also, SWIG was a good choice when I needed Matlab and Python bindings, but that's no longer the case. Switching to pybind11 made everything much easier, especially the magical conversion of numpy<->eigen types.

This also cleans up the build substantially. IRIS is no longer a Pod, but rather just a regular CMake project. It also clears up some lingering licensing issues (although the issue with commercial use of cvxgen code remains).

This PR also adds python3 support.

@rdeits
Copy link
Owner Author

rdeits commented Jan 26, 2017

Travis is finally passing with python2 and python3. Hooray! Just have to wait for the mac build.

By the way, @liangfok I think this will fix RobotLocomotion/drake#2797 when it comes in.

@rdeits
Copy link
Owner Author

rdeits commented Jan 26, 2017

55,000 lines deleted here. About 10,000 of that is related to removing SWIG, 40,000 from some amazingly large cython files that were just wasting space, and another 5,000 of matlab code.

@rdeits rdeits changed the title Drop MATLAB and SWIG and switch to pybind11 for Python bindings Drop mex and SWIG and switch to pybind11 for Python bindings Jan 26, 2017
@rdeits
Copy link
Owner Author

rdeits commented Jan 26, 2017

Restored pure-MATLAB interface to ease integration into Drake.

This changes the way IRIS installs itself: there's no addpath_iris anymore; instead we just copy the IRIS files to install/matlab just like we would with a Python package. This replaces hundreds of lines of complicated cmake magic with one install() command.

This is a combination of 19 commits that were squashed together.
Original commit messages are below:

keep trying to get travis happy

remove deprecated code. git will remember

restore directory

try harder

set cmake mod path

cmake prefix path

why is finding eigen so hard?

fix capitalization

fix setoper include

remove manually specified matlab dir

install setoper.h manually

manually include install/include

link dirs for cdd

new license

pass pybind11 python version

fix python2 compatibility

explain where matlab went

restore pure-matlab implementation

fix license for mosek matlab code

[ci skip]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant