Skip to content

Commit 1787cfa

Browse files
committed
Add build files 2026-01-17-0013
1 parent 8d42564 commit 1787cfa

File tree

12 files changed

+922
-0
lines changed

12 files changed

+922
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
jobs:
2+
stage_0_job_0:
3+
name: mavlink mavros-msgs libmavconn
4+
runs-on: ubuntu-24.04-arm
5+
strategy:
6+
fail-fast: false
7+
needs: []
8+
steps:
9+
- name: Checkout code
10+
uses: actions/checkout@v4
11+
- name: Build ros-humble-mavlink ros-humble-mavros-msgs ros-humble-libmavconn
12+
env:
13+
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
14+
CURRENT_RECIPES: ros-humble-mavlink ros-humble-mavros-msgs ros-humble-libmavconn
15+
BUILD_TARGET: linux-aarch64
16+
run: |
17+
export CI=azure
18+
export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
19+
export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
20+
.scripts/build_unix.sh --target $BUILD_TARGET
21+
name: build_linux_aarch64
22+
on:
23+
push:
24+
branches:
25+
- buildbranch_linux_aarch64

buildorder.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ros-humble-mavlink
2+
ros-humble-mavros-msgs
3+
ros-humble-libmavconn
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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+
rd /s /q build
12+
mkdir build
13+
pushd build
14+
15+
:: set "CMAKE_GENERATOR=Ninja"
16+
:: We use the Visual Studio generator as a workaround for
17+
:: problems in Ninja when using long paths, see https://github.com/RoboStack/ros-humble/pull/229#issuecomment-2564856467
18+
:: Once those are solved, we can switch back to use Ninja
19+
set "CMAKE_GENERATOR=Visual Studio %VS_MAJOR% %VS_YEAR%"
20+
21+
:: PYTHON_INSTALL_DIR should be a relative path, see
22+
:: https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md
23+
:: So we compute the relative path of %SP_DIR% w.r.t. to LIBRARY_PREFIX,
24+
:: but it is not trivial to do this in Command Prompt scripting, so let's do it via
25+
:: python
26+
27+
:: This line is scary, but it basically assigns the output of the command inside (` and `)
28+
:: to the variable specified after DO SET
29+
:: The equivalent in bash is PYTHON_INSTALL_DIR=`python -c ...`
30+
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
31+
32+
cmake ^
33+
-G "%CMAKE_GENERATOR%" ^
34+
-DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^
35+
-DCMAKE_BUILD_TYPE=Release ^
36+
-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^
37+
-DPYTHON_EXECUTABLE=%PYTHON% ^
38+
-DPython_EXECUTABLE=%PYTHON% ^
39+
-DPython3_EXECUTABLE=%PYTHON% ^
40+
-DSETUPTOOLS_DEB_LAYOUT=OFF ^
41+
-DBUILD_SHARED_LIBS=ON ^
42+
-DBUILD_TESTING=OFF ^
43+
-DCMAKE_OBJECT_PATH_MAX=255 ^
44+
--compile-no-warning-as-error ^
45+
-DPYTHON_INSTALL_DIR=%PYTHON_INSTALL_DIR% ^
46+
^
47+
%SRC_DIR%\%PKG_NAME%\src\work\
48+
if errorlevel 1 exit 1
49+
50+
:: We explicitly pass %CPU_COUNT% to cmake --build as we are not using Ninja,
51+
:: see the comment before setting the CMAKE_GENERATOR env variable
52+
cmake --build . --config Release --parallel %CPU_COUNT% --target install
53+
if errorlevel 1 exit 1
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Generated by vinca http://github.com/RoboStack/vinca.
2+
# DO NOT EDIT!
3+
4+
set -eo pipefail
5+
6+
rm -rf build
7+
mkdir build
8+
cd build
9+
10+
# necessary for correctly linking SIP files (from python_qt_bindings)
11+
export LINK=$CXX
12+
13+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then
14+
PYTHON_EXECUTABLE=$PREFIX/bin/python
15+
PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config
16+
OSX_DEPLOYMENT_TARGET="10.15"
17+
else
18+
PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python
19+
PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config
20+
OSX_DEPLOYMENT_TARGET="11.0"
21+
fi
22+
23+
if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then
24+
export QT_HOST_PATH="$BUILD_PREFIX"
25+
else
26+
export QT_HOST_PATH="$PREFIX"
27+
fi
28+
29+
echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}"
30+
echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}"
31+
32+
export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"`
33+
echo "Using Python ${ROS_PYTHON_VERSION}"
34+
35+
# see https://github.com/conda-forge/cross-python-feedstock/issues/24
36+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then
37+
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
38+
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
39+
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
40+
find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true
41+
fi
42+
43+
if [[ $target_platform =~ linux.* ]]; then
44+
export CFLAGS="${CFLAGS} -D__STDC_FORMAT_MACROS=1"
45+
export CXXFLAGS="${CXXFLAGS} -D__STDC_FORMAT_MACROS=1"
46+
fi;
47+
48+
# Needed for qt-gui-cpp ..
49+
if [[ $target_platform =~ linux.* ]]; then
50+
ln -s $GCC ${BUILD_PREFIX}/bin/gcc
51+
ln -s $GXX ${BUILD_PREFIX}/bin/g++
52+
fi;
53+
54+
# PYTHON_INSTALL_DIR should be a relative path, see
55+
# https://github.com/ament/ament_cmake/blob/2.3.2/ament_cmake_python/README.md
56+
# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX,
57+
# but it is not trivial to do this in bash scripting, so let's do it via python
58+
export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"`
59+
echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR"
60+
61+
if [[ $target_platform =~ emscripten.* ]]; then
62+
export CONDA_BUILD_CROSS_COMPILATION="1"
63+
PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python$PY_VER
64+
echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake
65+
echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake
66+
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
67+
68+
# if [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-publisher" ] || [ "${PKG_NAME}" == "ros-humble-examples-rclcpp-minimal-subscriber" ] || [ "${PKG_NAME}" == "ros-humble-rclcpp-components" ]; then
69+
# 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
70+
# 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
71+
# 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
72+
# else
73+
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
74+
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
75+
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
76+
# fi
77+
78+
export BUILD_TYPE="Debug"
79+
export EXTRA_CMAKE_ARGS=" \
80+
-DPYTHON_SOABI="cpython-${ROS_PYTHON_VERSION//./}-wasm32-emscripten" \
81+
-DRMW_IMPLEMENTATION=rmw_wasm_cpp \
82+
-DCMAKE_FIND_ROOT_PATH=$PREFIX \
83+
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
84+
-DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \
85+
"
86+
87+
unset -f cmake
88+
export CMAKE_GEN="emcmake cmake"
89+
export CMAKE_BLD="cmake"
90+
91+
export STATIC_ROSIDL_TYPESUPPORT_C=rosidl_typesupport_introspection_c
92+
export STATIC_ROSIDL_TYPESUPPORT_CPP=rosidl_typesupport_introspection_cpp
93+
else
94+
export BUILD_TYPE="Release"
95+
export CMAKE_GEN="cmake"
96+
export CMAKE_BLD="cmake"
97+
fi;
98+
99+
if [ "${PKG_NAME}" == "ros-humble-rmw-wasm-cpp" ]; then
100+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/rmw_wasm_cpp
101+
elif [ "${PKG_NAME}" == "ros-humble-wasm-cpp" ]; then
102+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/wasm_cpp
103+
elif [ "${PKG_NAME}" == "dynmsg" ]; then
104+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/dynmsg
105+
else
106+
WORK_DIR=$SRC_DIR/$PKG_NAME/src/work/
107+
fi;
108+
109+
$CMAKE_GEN \
110+
-G "Ninja" \
111+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
112+
-DCMAKE_INSTALL_PREFIX=$PREFIX \
113+
-DCMAKE_PREFIX_PATH=$PREFIX \
114+
-DAMENT_PREFIX_PATH=$PREFIX \
115+
-DCMAKE_INSTALL_LIBDIR=lib \
116+
-DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \
117+
-DPython_EXECUTABLE=$PYTHON_EXECUTABLE \
118+
-DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \
119+
-DPython3_FIND_STRATEGY=LOCATION \
120+
-DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \
121+
-DPYTHON_INSTALL_DIR=$PYTHON_INSTALL_DIR \
122+
-DSETUPTOOLS_DEB_LAYOUT=OFF \
123+
-DCATKIN_SKIP_TESTING=$SKIP_TESTING \
124+
-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \
125+
-DBUILD_SHARED_LIBS=ON \
126+
-DBUILD_TESTING=OFF \
127+
-DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \
128+
-DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \
129+
--compile-no-warning-as-error \
130+
$EXTRA_CMAKE_ARGS \
131+
\
132+
$WORK_DIR
133+
134+
$CMAKE_BLD --build . --config $BUILD_TYPE --target install
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
2+
3+
package:
4+
name: ros-humble-libmavconn
5+
version: 2.10.1
6+
source:
7+
git: https://github.com/ros2-gbp/mavros-release.git
8+
tag: release/humble/libmavconn/2.10.1-1
9+
target_directory: ros-humble-libmavconn/src/work
10+
11+
build:
12+
script: ${{ '$RECIPE_DIR/build_ament_cmake.sh' if unix or wasm32 else '%RECIPE_DIR%\\bld_ament_cmake.bat' }}
13+
number: 14
14+
post_process:
15+
- files:
16+
- '*.pc'
17+
regex: (?:-L|-I)?"?([^;\s]+/sysroot/)
18+
replacement: $$(CONDA_BUILD_SYSROOT_S)
19+
- files:
20+
- '*.cmake'
21+
regex: ([^;\s"]+/sysroot)
22+
replacement: $$ENV{CONDA_BUILD_SYSROOT}
23+
- files:
24+
- '*.cmake'
25+
regex: ([^;\s"]+/MacOSX\d*\.?\d*\.sdk)
26+
replacement: $$ENV{CONDA_BUILD_SYSROOT}
27+
about:
28+
homepage: http://wiki.ros.org/mavros
29+
repository: https://github.com/mavlink/mavros.git
30+
license: GPL-3.0-only OR LGPL-3.0-only OR BSD-3-Clause
31+
summary: MAVLink communication library. This library provide unified connection handling classes and URL to connection object mapper. This library can be used in standalone programs.
32+
extra:
33+
recipe-maintainers:
34+
- ros-forge
35+
36+
requirements:
37+
build:
38+
- ${{ compiler('cxx') }}
39+
- ${{ compiler('c') }}
40+
- if: target_platform!='emscripten-wasm32'
41+
then:
42+
- ${{ stdlib('c') }}
43+
- ninja
44+
- python
45+
- setuptools
46+
- git
47+
- git-lfs
48+
- if: unix
49+
then:
50+
- patch
51+
- make
52+
- coreutils
53+
- if: win
54+
then:
55+
- m2-patch
56+
- if: osx
57+
then:
58+
- tapi
59+
- if: build_platform != target_platform
60+
then:
61+
- pkg-config
62+
- cmake
63+
- cython
64+
- if: build_platform != target_platform
65+
then:
66+
- python
67+
- cross-python_${{ target_platform }}
68+
- numpy
69+
host:
70+
- asio
71+
- if: build_platform == target_platform
72+
then:
73+
- pkg-config
74+
- console_bridge
75+
- empy
76+
- numpy
77+
- pip
78+
- python
79+
- ros-humble-ament-cmake
80+
- ros-humble-ament-cmake-gtest
81+
- ros-humble-ament-lint-auto
82+
- ros-humble-ament-lint-common
83+
- ros-humble-mavlink
84+
- ros-humble-ros-environment
85+
- ros-humble-ros-workspace
86+
- ros2-distro-mutex 0.7.* humble_*
87+
run:
88+
- asio
89+
- console_bridge
90+
- python
91+
- ros-humble-mavlink
92+
- ros-humble-ros-workspace
93+
- ros2-distro-mutex 0.7.* humble_*
94+
- if: osx and x86_64
95+
then:
96+
- __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
:: Generated by vinca http://github.com/RoboStack/vinca.
2+
:: DO NOT EDIT!
3+
setlocal
4+
set "PYTHONPATH=%LIBRARY_PREFIX%\lib\site-packages;%SP_DIR%"
5+
6+
:: MSVC is preferred.
7+
set CC=cl.exe
8+
set CXX=cl.exe
9+
10+
:: ROS_BUILD_SHARED_LIBS is always defined in CMake by catkin
11+
:: if ROS (1) is build as shared library . However, some packages are not
12+
:: passing compilation flags from CMake to other build systems (such as qmake),
13+
:: so we enable it explicitly via the CL environment variable, see
14+
:: https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170
15+
set CL=/DROS_BUILD_SHARED_LIBS=1 /DNOGDI=1
16+
17+
set "CATKIN_BUILD_BINARY_PACKAGE_ARGS=-DCATKIN_BUILD_BINARY_PACKAGE=1"
18+
if "%PKG_NAME%" == "ros-humble-catkin" (
19+
:: create catkin cookie to make it is a catkin workspace
20+
type NUL > %LIBRARY_PREFIX%\.catkin
21+
:: keep the workspace activation scripts (e.g., local_setup.bat)
22+
set CATKIN_BUILD_BINARY_PACKAGE_ARGS=
23+
)
24+
25+
rd /s /q build
26+
mkdir build
27+
pushd build
28+
29+
set SKIP_TESTING=ON
30+
31+
cmake ^
32+
-G "Ninja" ^
33+
--compile-no-warning-as-error ^
34+
-DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^
35+
-DCMAKE_BUILD_TYPE=Release ^
36+
-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON ^
37+
-DBUILD_SHARED_LIBS=ON ^
38+
-DPYTHON_EXECUTABLE=%PYTHON% ^
39+
-DPython_EXECUTABLE=%PYTHON% ^
40+
-DPython3_EXECUTABLE=%PYTHON% ^
41+
-DSETUPTOOLS_DEB_LAYOUT=OFF ^
42+
-DBoost_USE_STATIC_LIBS=OFF ^
43+
%CATKIN_BUILD_BINARY_PACKAGE_ARGS% ^
44+
-DCATKIN_SKIP_TESTING=%SKIP_TESTING% ^
45+
^
46+
%SRC_DIR%\%PKG_NAME%\src\work\
47+
if errorlevel 1 exit 1
48+
49+
if "%PKG_NAME%" == "ros-humble-eigenpy" (
50+
cmake --build . --config Release --target all --parallel 1
51+
if errorlevel 1 exit 1
52+
) else (
53+
cmake --build . --config Release --target all
54+
if errorlevel 1 exit 1
55+
)
56+
57+
if "%SKIP_TESTING%" == "OFF" (
58+
cmake --build . --config Release --target run_tests
59+
if errorlevel 1 exit 1
60+
)
61+
62+
cmake --build . --config Release --target install
63+
if errorlevel 1 exit 1
64+
65+
if "%PKG_NAME%" == "ros-humble-catkin" (
66+
:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d.
67+
:: This will allow them to be run on environment activation.
68+
for %%F in (activate deactivate) DO (
69+
if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d
70+
copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat
71+
)
72+
)
73+
74+
if "%PKG_NAME%" == "ros-humble-ros-workspace" (
75+
:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d.
76+
:: This will allow them to be run on environment activation.
77+
for %%F in (activate deactivate) DO (
78+
if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d
79+
copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat
80+
copy %RECIPE_DIR%\%%F.ps1 %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.ps1
81+
)
82+
)

0 commit comments

Comments
 (0)