Skip to content

Commit e9702a2

Browse files
committed
Add build files 2025-06-12-0132
1 parent fa2c7c8 commit e9702a2

File tree

1,951 files changed

+175680
-6
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,951 files changed

+175680
-6
lines changed

.github/workflows/linux.yml

Lines changed: 3614 additions & 0 deletions
Large diffs are not rendered by default.

build_ament_cmake.sh

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ echo "Using Python ${ROS_PYTHON_VERSION}"
3535
# see https://github.com/conda-forge/cross-python-feedstock/issues/24
3636
if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then
3737
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
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
3939
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
4040
find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true
4141
fi
@@ -56,15 +56,63 @@ fi;
5656
# So we compute the relative path of $SP_DIR w.r.t. to $PREFIX,
5757
# but it is not trivial to do this in bash scripting, so let's do it via python
5858
export PYTHON_INSTALL_DIR=`python -c "import os;print(os.path.relpath(os.environ['SP_DIR'],os.environ['PREFIX']))"`
59-
echo "Using site_packages: $PYTHON_INSTALL_DIR"
59+
echo "Using PYTHON_INSTALL_DIR: $PYTHON_INSTALL_DIR"
6060

61-
cmake \
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 \
62110
-G "Ninja" \
111+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
63112
-DCMAKE_INSTALL_PREFIX=$PREFIX \
64113
-DCMAKE_PREFIX_PATH=$PREFIX \
65114
-DAMENT_PREFIX_PATH=$PREFIX \
66115
-DCMAKE_INSTALL_LIBDIR=lib \
67-
-DCMAKE_BUILD_TYPE=Release \
68116
-DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \
69117
-DPython_EXECUTABLE=$PYTHON_EXECUTABLE \
70118
-DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \
@@ -79,6 +127,7 @@ cmake \
79127
-DCMAKE_IGNORE_PREFIX_PATH="/opt/homebrew;/usr/local/homebrew" \
80128
-DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \
81129
--compile-no-warning-as-error \
82-
$SRC_DIR/$PKG_NAME/src/work
130+
$EXTRA_CMAKE_ARGS \
131+
$WORK_DIR
83132

84-
cmake --build . --config Release --target install
133+
$CMAKE_BLD --build . --config $BUILD_TYPE --target install

build_catkin.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@ if [[ $target_platform =~ linux.* ]]; then
7171
ln -s $GXX $BUILD_PREFIX/bin/g++
7272
fi
7373

74+
if [[ $target_platform =~ emscripten.* ]]; then
75+
export CONDA_BUILD_CROSS_COMPILATION="1"
76+
echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake
77+
echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake
78+
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
79+
export EXTRA_CMAKE_ARGS=" \
80+
-DCMAKE_FIND_ROOT_PATH=$PREFIX \
81+
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
82+
-DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \
83+
"
84+
fi
85+
7486
export SKIP_TESTING=ON
7587

7688
if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then
@@ -98,6 +110,7 @@ cmake ${CMAKE_ARGS} --compile-no-warning-as-error \
98110
-DCATKIN_SKIP_TESTING=$SKIP_TESTING \
99111
-DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \
100112
-DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \
113+
$EXTRA_CMAKE_ARGS \
101114
-G "$GENERATOR" \
102115
$SRC_DIR/$PKG_NAME/src/work
103116

0 commit comments

Comments
 (0)