Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions distros/humble/patch/ros2-lely-core-libraries.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29506fe..ae05873 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,8 +8,8 @@ include(ExternalProject)
ExternalProject_Add(upstr_lely_core_libraries # Name for custom target
#--Download step--------------
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/upstream
- INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" # Installation prefix
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/build
+ INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/lely_install" # Installation prefix
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/lely
GIT_REPOSITORY https://gitlab.com/lely_industries/lely-core.git
GIT_TAG fb735b79cab5f0cdda45bc5087414d405ef8f3ab
TIMEOUT 60
@@ -19,15 +19,18 @@ ExternalProject_Add(upstr_lely_core_libraries # Name for custom target
COMMAND git apply --whitespace=fix --reject ${CMAKE_CURRENT_SOURCE_DIR}/patches/0001-Fix-dcf-tools.patch
#CONFIGURE step execute autoreconf and configure
CONFIGURE_COMMAND autoreconf -i <SOURCE_DIR>
- COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-cython --disable-doc --disable-tests --disable-static --disable-diag
+ # this lely commit predates GCC 15: C23 (GCC 15's default) removed ATOMIC_VAR_INIT, and
+ # -Wunterminated-string-initialization is new (lely builds with -Werror)
+ COMMAND ${CMAKE_COMMAND} -E env "CFLAGS=$ENV{CFLAGS} -std=gnu17 -Wno-error=unterminated-string-initialization"
+ <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-cython --disable-doc --disable-tests --disable-static --disable-diag
#BUILD STEP execute make
- BUILD_COMMAND $(MAKE) -C ${CMAKE_CURRENT_BINARY_DIR}/build
+ BUILD_COMMAND make -j
#INSTALL STEP do nothing as we install in main
- INSTALL_COMMAND ""
+ INSTALL_COMMAND make install VERBOSE=1
)

#INSTALL lely_core_libraries - execute make install
-install(CODE "execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} install VERBOSE=1 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)")
+#install(CODE "execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} install VERBOSE=1 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)")

set(lely_core_cmake_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include("cmake/lely_core_libraries-extras.cmake" NO_POLICY_SCOPE)
@@ -46,6 +49,22 @@ install(
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/
USE_SOURCE_PERMISSIONS)

+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/bin/
+ USE_SOURCE_PERMISSIONS
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
+)
+
+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/include/lely/
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/lely
+)
+
+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/lib/
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+)
+
ament_export_include_directories(include)
ament_export_libraries(lely-can lely-co lely-coapp lely-ev lely-io2 lely-libc lely-tap lely-util)
ament_package(
55 changes: 55 additions & 0 deletions shared/patch/ros2-lely-core-libraries.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2af8ddb..330cd95 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,8 +8,8 @@ include(ExternalProject)
ExternalProject_Add(upstr_lely_core_libraries # Name for custom target
#--Download step--------------
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/upstream
- INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" # Installation prefix
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/build
+ INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/lely_install" # Installation prefix
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/lely
GIT_REPOSITORY https://gitlab.com/lely_industries/lely-core.git
GIT_TAG 9e3267d26018f6f6babd50786f6ae2af89cc57ea
TIMEOUT 60
@@ -22,13 +22,13 @@ ExternalProject_Add(upstr_lely_core_libraries # Name for custom target
CONFIGURE_COMMAND autoreconf -i <SOURCE_DIR>
COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-cython --disable-doc --disable-tests --disable-static --disable-diag
#BUILD STEP execute make
- BUILD_COMMAND $(MAKE) -C ${CMAKE_CURRENT_BINARY_DIR}/build
+ BUILD_COMMAND make -j
#INSTALL STEP do nothing as we install in main
- INSTALL_COMMAND ""
+ INSTALL_COMMAND make install VERBOSE=1
)

#INSTALL lely_core_libraries - execute make install
-install(CODE "execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} install VERBOSE=1 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)")
+#install(CODE "execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} install VERBOSE=1 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)")

set(lely_core_cmake_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include("cmake/lely_core_libraries-extras.cmake" NO_POLICY_SCOPE)
@@ -47,6 +47,22 @@ install(
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/
USE_SOURCE_PERMISSIONS)

+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/bin/
+ USE_SOURCE_PERMISSIONS
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
+)
+
+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/include/lely/
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/lely
+)
+
+install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lely_install/lib/
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+)
+
ament_export_include_directories(include)
ament_export_libraries(lely-can lely-co lely-coapp lely-ev lely-io2 lely-libc lely-tap lely-util)
ament_package(
7 changes: 7 additions & 0 deletions shared/tests/ros2-lely-core-libraries.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
tests:
# Our patch installs lely from a staging directory: its libraries and headers must end up
# in the prefix.
- if: unix
then:
script:
- python -c "import glob, os; p = os.environ['PREFIX']; assert glob.glob(os.path.join(p, 'lib', 'liblely-coapp.*')), 'liblely-coapp'; assert os.path.isfile(os.path.join(p, 'include', 'lely', 'coapp', 'master.hpp')), 'lely/coapp/master.hpp'"
1 change: 1 addition & 0 deletions shared/vinca.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ packages_select_by_deps:
- avt_vimba_camera # ships some Linux .so in the repo, so it only supports linux
- camera_ros # Depends on libcamera that is only available on linux; Depends on libcamera, only available on linux
- can_dbc_parser
- canopen # macOS/Windows not tried yet; requested in https://github.com/RoboStack/ros-jazzy/pull/167
- easynav
- easynav_bonxai_maps_manager
- easynav_common
Expand Down