-
Notifications
You must be signed in to change notification settings - Fork 96
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 libsdformat library (backport #1491) #1497
Conversation
…1491) This allows the src/python_pybind11/CMakeLists.txt file to be built as a top-level cmake project against an external sdformat library, with documentation added to the README. 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: Steve Peters <[email protected]> Signed-off-by: Silvio Traversaro <[email protected]> Co-authored-by: Silvio Traversaro <[email protected]> (cherry picked from commit 3dcdd55) # Conflicts: # python/CMakeLists.txt
Cherry-pick of 3dcdd55 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 |
Signed-off-by: Steve Peters <[email protected]>
set(PYTHON_LIBRARIES "${PYTHON_DEBUG_LIBRARIES}") | ||
# Detect if we are doing a standalone build of the bindings, using an external sdformat | ||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) | ||
cmake_minimum_required(VERSION 3.22.1) |
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.
Can you document this CMake version requirement?
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.
thanks for catching these!
Signed-off-by: Steve Peters <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
🎉 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 libsdformat library. The first commit (1985c90) is a patch from @traversaro used in conda, and the second commit (4644d3b) replaces theGZ_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 1985c90.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 versionI have a draft of an updated homebrew formula using this branch in osrf/homebrew-simulation#2836
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 #1491 done by [Mergify](https://mergify.com).