Skip to content

Commit 0ac97da

Browse files
committed
Add build files 2026-10-10-2229
1 parent dea0c59 commit 0ac97da

8 files changed

Lines changed: 191826 additions & 0 deletions

File tree

‎.github/workflows/osx.yml‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
jobs:
2+
stage_0_job_0:
3+
name: ros2-livox-ros-driver2 livox-ros-driver2
4+
runs-on: macos-15-intel
5+
strategy:
6+
fail-fast: false
7+
needs: []
8+
steps:
9+
- name: Checkout code
10+
uses: actions/checkout@v7
11+
- name: Setup pixi
12+
uses: prefix-dev/setup-pixi@v0
13+
with:
14+
pixi-version: latest
15+
cache: 'true'
16+
log-level: v
17+
frozen: 'true'
18+
- name: Build ros2-livox-ros-driver2 ros-lyrical-livox-ros-driver2
19+
env:
20+
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
21+
CURRENT_RECIPES: ros2-livox-ros-driver2 ros-lyrical-livox-ros-driver2
22+
BUILD_TARGET: osx-64
23+
run: |
24+
export CI=github
25+
export GIT_BRANCH=${GITHUB_REF_NAME}
26+
export FEEDSTOCK_NAME=${GITHUB_REPOSITORY##*/}
27+
.scripts/build_unix.sh --target $BUILD_TARGET
28+
permissions:
29+
id-token: write
30+
attestations: write
31+
name: build_osx64
32+
on:
33+
push:
34+
branches:
35+
- buildbranch_osx

‎buildorder.txt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ros2-livox-ros-driver2
2+
ros-lyrical-livox-ros-driver2
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
2+
3+
package:
4+
name: ros-lyrical-livox-ros-driver2
5+
version: 1.2.4
6+
7+
build:
8+
script: ''
9+
number: 28
10+
post_process:
11+
- files:
12+
- '*.pc'
13+
regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
14+
replacement: $$(CONDA_BUILD_SYSROOT_S)
15+
- files:
16+
- '*.cmake'
17+
regex: ([^;\s"]+/sysroot)
18+
replacement: $$ENV{CONDA_BUILD_SYSROOT}
19+
- files:
20+
- '*.cmake'
21+
regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
22+
replacement: $$ENV{CONDA_BUILD_SYSROOT}
23+
about:
24+
summary: Compatibility package for ros2-livox-ros-driver2
25+
extra:
26+
recipe-maintainers:
27+
- ros-forge
28+
29+
requirements:
30+
run:
31+
- ros2-livox-ros-driver2 ==1.2.4
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
:: Generated by vinca http://github.com/RoboStack/vinca.
2+
:: DO NOT EDIT!
3+
setlocal EnableDelayedExpansion
4+
5+
set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%"
6+
7+
:: MSVC is preferred.
8+
set CC=cl.exe
9+
set CXX=cl.exe
10+
11+
:: If defined, can use a custom CMake build directory which can be useful
12+
:: to avoid too long path problems on windows
13+
if defined VINCA_CUSTOM_CMAKE_BUILD_DIR (
14+
if not exist "%VINCA_CUSTOM_CMAKE_BUILD_DIR%\" (
15+
mkdir "%VINCA_CUSTOM_CMAKE_BUILD_DIR%"
16+
)
17+
cd /d "%VINCA_CUSTOM_CMAKE_BUILD_DIR%"
18+
)
19+
rd /s /q build
20+
mkdir build
21+
pushd build
22+
23+
:: set "CMAKE_GENERATOR=Ninja"
24+
:: We use the Visual Studio generator as a workaround for
25+
:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467
26+
:: Once those are solved, we can switch back to use Ninja
27+
set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%"
28+
29+
:: PYTHON_INSTALL_DIR should be a relative path, see
30+
:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md
31+
:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX,
32+
:: but it is not trivial to do this in Command Prompt scripting, so let's do it via
33+
:: python
34+
35+
:: This line is scary, but it basically assigns the output of the command inside (` and `)
36+
:: to the variable specified after DO SET
37+
:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...`
38+
FOR /F "tokens=* USEBACKQ" %%i IN (`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['LIBRARY_PREFIX']).replace('\\','/'))"`) DO SET PYTHON_INSTALL_DIR=%%i
39+
40+
cmake ^
41+
-G "%CMAKE_GENERATOR%" ^
42+
-DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^
43+
-DCMAKE_BUILD_TYPE=Release ^
44+
-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^
45+
-DPYTHON_EXECUTABLE=%PYTHON% ^
46+
-DPython_EXECUTABLE=%PYTHON% ^
47+
-DPython3_EXECUTABLE=%PYTHON% ^
48+
-DSETUPTOOLS_DEB_LAYOUT=OFF ^
49+
-DBUILD_SHARED_LIBS=ON ^
50+
-DBUILD_TESTING=OFF ^
51+
-DCMAKE_OBJECT_PATH_MAX=255 ^
52+
--compile-no-warning-as-error ^
53+
-DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^
54+
^
55+
%SRC_DIR%\%PKG_NAME%\src\work\
56+
if errorlevel 1 exit 1
57+
58+
:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja,
59+
:: see the comment before setting the CMAKE_GENERATOR env variable
60+
cmake --build . --config Release --parallel %CPU_COUNT% --target install
61+
if errorlevel 1 exit 1
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Generated by vinca http://github.com/RoboStack/vinca.
2+
# DO NOT EDIT!
3+
4+
set -eo pipefail
5+
6+
if [[ -n "$VINCA_CUSTOM_CMAKE_BUILD_DIR" ]]; then
7+
mkdir -p "$VINCA_CUSTOM_CMAKE_BUILD_DIR"
8+
cd "$VINCA_CUSTOM_CMAKE_BUILD_DIR"
9+
fi
10+
rm -rf build
11+
mkdir build
12+
cd build
13+
14+
# necessary for correctly linking SIP files (from python_qt_bindings)
15+
export LINK=$CXX
16+
17+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then
18+
PYTHON_EXECUTABLE=$PREFIX/bin/python
19+
PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config
20+
else
21+
PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python
22+
PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config
23+
fi
24+
25+
if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then
26+
export QT_HOST_PATH="$BUILD_PREFIX"
27+
else
28+
export QT_HOST_PATH="$PREFIX"
29+
fi
30+
31+
echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}"
32+
echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}"
33+
34+
export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"`
35+
echo "Using Python ${ROS_PYTHON_VERSION}"
36+
37+
export ROS_DISTRO="lyrical"
38+
39+
# see https://github.com/conda-forge/cross-python-feedstock/issues/24
40+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then
41+
find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true
42+
find $PREFIX/share/rosidl* -type f -exec sed -i "s~${PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true
43+
find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~${BUILD_PREFIX}/lib/python${ROS_PYTHON_VERSION}/site-packages~g" {} + || true
44+
find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true
45+
fi
46+
47+
if [[ $target_platform =~ linux.* ]]; then
48+
export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1"
49+
export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1"
50+
fi;
51+
52+
# Needed for qt-gui-cpp ..
53+
if [[ $target_platform =~ linux.* ]]; then
54+
ln -s $GCC ${BUILD_PREFIX}/bin/gcc
55+
ln -s $GXX ${BUILD_PREFIX}/bin/g++
56+
fi;
57+
58+
# PYTHON_INSTALL_DIR should be a relative path, see
59+
# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md
60+
# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX,
61+
# but it is not trivial to do this in bash scripting, so let's do it via python
62+
export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"`
63+
echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR"
64+
65+
if [[ $target_platform =~ emscripten.* ]]; then
66+
export CONDA_BUILD_CROSS_COMPILATION="1"
67+
PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER
68+
echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake
69+
echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake
70+
echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake
71+
72+
# if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then
73+
# echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake
74+
# echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -s ALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake
75+
# echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -s DEMANGLE_SUPPORT=1 -sALLOW_MEMORY_GROWTH=1 -sASYNCIFY -O3 -s ASYNCIFY_STACK_SIZE=24576 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake
76+
# else
77+
echo "set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake
78+
echo "set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS \"-s ASSERTIONS=1 -s SIDE_MODULE=1 -sWASM_BIGINT -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 \")">> $SRC_DIR/__vinca_shared_lib_patch.cmake
79+
echo "set(CMAKE_EXE_LINKER_FLAGS \"-sMAIN_MODULE=1 -sASSERTIONS=1 -fexceptions -lembind -sWASM_BIGINT -s USE_PTHREADS=0 -sALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 -L$SRC_DIR/build -L$PREFIX/lib\") # remove SIDE_MODULE from exe linker flags">> $SRC_DIR/__vinca_shared_lib_patch.cmake
80+
# fi
81+
82+
export BUILD_TYPE="Debug"
83+
export EXTRA_CMAKE_ARGS=" \
84+
-DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \
85+
-DRMW_IMPLEMENTATION=rmw_wasm_cpp \
86+
-DCMAKE_FIND_ROOT_PATH=$PREFIX \
87+
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
88+
-DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \
89+
"
90+
91+
unset -f cmake
92+
export CMAKE_GEN="emcmake cmake"
93+
export CMAKE_BLD="cmake"
94+
95+
export STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_introspection_c
96+
export STATIC_ROSIDL_TYPESUPPORT_CPP=rosidl_typesupport_introspection_cpp
97+
else
98+
export BUILD_TYPE="Release"
99+
export CMAKE_GEN="cmake"
100+
export CMAKE_BLD="cmake"
101+
fi;
102+
103+
if [ "${PKG_NAME}" == "ros2-rmw-wasm-cpp" ]; then
104+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/rmw_wasm_cpp
105+
elif [ "${PKG_NAME}" == "ros2-wasm-cpp" ]; then
106+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/wasm_cpp
107+
elif [ "${PKG_NAME}" == "ros2-dynmsg" ]; then
108+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/dynmsg
109+
else
110+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/
111+
fi;
112+
113+
$CMAKE_GEN \
114+
-G "Ninja" \
115+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
116+
-DCMAKE_INSTALL_PREFIX=$PREFIX \
117+
-DCMAKE_PREFIX_PATH=$PREFIX \
118+
-DAMENT_PREFIX_PATH=$PREFIX \
119+
-DCMAKE_INSTALL_LIBDIR=lib \
120+
-DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \
121+
-DPython_EXECUTABLE=$PYTHON_EXECUTABLE \
122+
-DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \
123+
-DPython3_FIND_STRATEGY=LOCATION \
124+
-DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \
125+
-DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \
126+
-DSETUPTOOLS_DEB_LAYOUT=OFF \
127+
-DCATKIN_SKIP_TESTING=$SKIP_TESTING \
128+
-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \
129+
-DBUILD_SHARED_LIBS=ON \
130+
-DBUILD_TESTING=OFF \
131+
-DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \
132+
-DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \
133+
--compile-no-warning-as-error \
134+
$EXTRA_CMAKE_ARGS \
135+
\
136+
$WORK_DIR
137+
138+
$CMAKE_BLD --build . --config $BUILD_TYPE --target install
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 99a8ccc..221b2c1 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -1,4 +1,6 @@
6+
# judge which cmake codes to use
7+
+set(ROS_EDITION "ROS2")
8+
+set(HUMBLE_ROS "humble")
9+
if(ROS_EDITION STREQUAL "ROS1")
10+
11+
# Copyright(c) 2019 livoxtech limited.
12+
@@ -190,6 +192,7 @@ else(ROS_EDITION STREQUAL "ROS2")
13+
14+
cmake_minimum_required(VERSION 3.14)
15+
project(livox_ros_driver2)
16+
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/package_ROS2.xml ${CMAKE_CURRENT_SOURCE_DIR}/package.xml)
17+
18+
# Default to C99
19+
if(NOT CMAKE_C_STANDARD)
20+
@@ -246,7 +249,7 @@ else(ROS_EDITION STREQUAL "ROS2")
21+
)
22+
23+
## make sure the livox_lidar_sdk_shared library is installed
24+
- find_library(LIVOX_LIDAR_SDK_LIBRARY liblivox_lidar_sdk_shared.so /usr/local/lib REQUIRED)
25+
+ find_library(LIVOX_LIDAR_SDK_LIBRARY NAMES livox_lidar_sdk_shared PATHS /usr/local/lib REQUIRED)
26+
27+
##
28+
find_path(LIVOX_LIDAR_SDK_INCLUDE_DIR

0 commit comments

Comments
 (0)