From dc6f850e67de7fee023c7b91e23fdbd9e238e42b Mon Sep 17 00:00:00 2001 From: Matthew Woehlke Date: Wed, 13 Apr 2022 15:15:20 -0400 Subject: [PATCH] Enable MOSEK in wheel builds. --- tools/wheel/image/build-drake.sh | 1 + tools/wheel/image/build-wheel.sh | 9 ++++++++- tools/wheel/test/test-wheel.sh | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/wheel/image/build-drake.sh b/tools/wheel/image/build-drake.sh index 998d9511f855..46f549e6fb57 100755 --- a/tools/wheel/image/build-drake.sh +++ b/tools/wheel/image/build-drake.sh @@ -14,5 +14,6 @@ bazel run \ --repo_env=DRAKE_OS=manylinux \ --define NO_DRAKE_VISUALIZER=ON \ --define NO_DREAL=ON \ + --define WITH_MOSEK=ON \ --define WITH_SNOPT=ON \ //:install -- /opt/drake diff --git a/tools/wheel/image/build-wheel.sh b/tools/wheel/image/build-wheel.sh index 7befd6253ffb..428c4a7baeae 100755 --- a/tools/wheel/image/build-wheel.sh +++ b/tools/wheel/image/build-wheel.sh @@ -27,12 +27,19 @@ cp -r -t /wheel/pydrake \ /opt/drake/lib/python*/site-packages/pydrake/* cp -r -t /wheel/pydrake/lib \ - /opt/drake/lib/libdrake*.so + /opt/drake/lib/libdrake*.so \ # NOTE: build-vtk.sh also puts licenses in /opt/drake-dependencies/licenses. cp -r -t /wheel/pydrake/doc \ /opt/drake-dependencies/licenses/* +# MOSEK is "sort of" third party, but is procured as part of Drake's build and +# ends up in /opt/drake. It needs to be copied somewhere where auditwheel can +# find it. +cp -r -t /opt/drake-dependencies/lib \ + /opt/drake/lib/libmosek*.so* \ + /opt/drake/lib/libcilkrts*.so* + # TODO(mwoehlke-kitware) We need a different way of shipping non-arch files # (examples, models). cp -r -t /wheel/pydrake/share/drake \ diff --git a/tools/wheel/test/test-wheel.sh b/tools/wheel/test/test-wheel.sh index 9a2270743ce6..5aec132ef567 100755 --- a/tools/wheel/test/test-wheel.sh +++ b/tools/wheel/test/test-wheel.sh @@ -24,5 +24,6 @@ python << EOF import pydrake.all print(pydrake.getDrakePath()) print(pydrake.all.PackageMap().GetPath("drake")) +assert pydrake.all.MosekSolver().available(), "Missing MOSEK" assert pydrake.all.SnoptSolver().available(), "Missing SNOPT" EOF