-
Notifications
You must be signed in to change notification settings - Fork 44
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 #554
Merged
scpeters
merged 7 commits into
gz-transport14
from
scpeters/build_python_bindings_separately
Nov 8, 2024
Merged
Permit building python bindings separately from main library #554
scpeters
merged 7 commits into
gz-transport14
from
scpeters/build_python_bindings_separately
Nov 8, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Silvio Traversaro <silvio@traversaro.it>
Signed-off-by: Silvio Traversaro <silvio@traversaro.it>
Use CMAKE_INSTALL_LIBDIR from GNUInstallDirs instead of GZ_LIB_INSTALL_DIR, which won't be available if only building python bindings. Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Also remove unneeded enable_testing() call. Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Combine similar steps for Ubuntu and macOS Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters
changed the title
Scpeters/build python bindings separately
Permit building python bindings separately from main library
Nov 8, 2024
I've tested building multiple python bindings in homebrew in osrf/homebrew-simulation#2855 a jenkins build runs successfully: |
Closed
32 tasks
azeey
approved these changes
Nov 8, 2024
https://github.com/Mergifyio backport gz-transport13 |
✅ Backports have been created
|
mergify bot
pushed a commit
that referenced
this pull request
Nov 10, 2024
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 <silvio@traversaro.it> Signed-off-by: Steve Peters <scpeters@openrobotics.org> Co-authored-by: Silvio Traversaro <silvio@traversaro.it> (cherry picked from commit 250e95f) # Conflicts: # python/CMakeLists.txt
9 tasks
scpeters
added a commit
that referenced
this pull request
Nov 15, 2024
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 <silvio@traversaro.it> Signed-off-by: Steve Peters <scpeters@openrobotics.org> Co-authored-by: Silvio Traversaro <silvio@traversaro.it> (cherry picked from commit 250e95f)
scpeters
added a commit
that referenced
this pull request
Dec 9, 2024
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 <silvio@traversaro.it> Signed-off-by: Steve Peters <scpeters@openrobotics.org> Co-authored-by: Silvio Traversaro <silvio@traversaro.it> (cherry picked from commit 250e95f)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎉 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.