-
Notifications
You must be signed in to change notification settings - Fork 43
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
Permit building python bindings separately from main library (backport #554) #555
Conversation
Cherry-pick of 250e95f has failed:
To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## gz-transport13 #555 +/- ##
==================================================
- Coverage 87.69% 87.16% -0.53%
==================================================
Files 59 58 -1
Lines 5704 5610 -94
==================================================
- Hits 5002 4890 -112
- Misses 702 720 +18 ☔ View full report in Codecov by Sentry. |
This allows the python/CMakeLists.txt file to be built as a top-level cmake project against an external gz-transport library, with documentation added to the installation tutorial. The logic for finding pybind11 is also moved from the root CMakeLists.txt to python/CMakeLists.txt to reduce code duplication. When invoked through the root CMakeLists.txt, pybind11 is treated as an optional dependency, but when invoked from the python folder, pybind11 is treated as required by setting the variable CMAKE_REQUIRE_FIND_PACKAGE_pybind11 to TRUE. Signed-off-by: Silvio Traversaro <[email protected]> Signed-off-by: Steve Peters <[email protected]> Co-authored-by: Silvio Traversaro <[email protected]> (cherry picked from commit 250e95f)
9493198
to
307c095
Compare
🎉 New feature
Part of osrf/homebrew-simulation#2834, related to gazebosim/gz-math#636
Summary
This allows the
python/CMakeLists.txt
file to be built as a top-level cmake project against an external gz-transport library.GZ_LIB_INSTALL_DIR
cmake variable withCMAKE_INSTALL_LIBDIR
(see GzPackaging.cmake:111) sinceGZ_LIB_INSTALL_DIR
is not defined with the minimal cmake project added in e6e6c6f.python/CMakeLists.txt
file.Test it
CMakeLists.txt
with using-DSKIP_PYBIND11=ON
to build and install the libsdformat library without python bindings.python/CMakeLists.txt
with-DPython_EXECUTABLE=/path/to/python
to build and install python bindings for a given python versionTODO: update homebrew formula using this branch in a draft PR
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.This is an automatic backport of pull request #554 done by [Mergify](https://mergify.com).