Skip to content

Commit 3df45d2

Browse files
committed
Add build files 2025-09-07-1416
1 parent 78b3ee3 commit 3df45d2

File tree

9 files changed

+655
-0
lines changed

9 files changed

+655
-0
lines changed

.github/workflows/osx.yml

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: async-web-server-cpp web-video-server
4+
runs-on: macos-13
5+
strategy:
6+
fail-fast: false
7+
needs: []
8+
steps:
9+
- name: Checkout code
10+
uses: actions/checkout@v4
11+
- name: Build ros-jazzy-async-web-server-cpp ros-jazzy-web-video-server
12+
env:
13+
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
14+
CURRENT_RECIPES: ros-jazzy-async-web-server-cpp ros-jazzy-web-video-server
15+
BUILD_TARGET: osx-64
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_osx_64
22+
on:
23+
push:
24+
branches:
25+
- buildbranch_osx

buildorder.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ros-jazzy-async-web-server-cpp
2+
ros-jazzy-web-video-server
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-jazzy-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-jazzy-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-jazzy-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-jazzy-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+
)
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# Generated by vinca http://github.com/RoboStack/vinca.
2+
# DO NOT EDIT!
3+
4+
set -eo pipefail
5+
6+
CATKIN_BUILD_BINARY_PACKAGE="ON"
7+
8+
if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then
9+
# create catkin cookie to make it is a catkin workspace
10+
touch $PREFIX/.catkin
11+
# keep the workspace activation scripts (e.g., local_setup.bat)
12+
CATKIN_BUILD_BINARY_PACKAGE="OFF"
13+
fi
14+
15+
rm -rf build
16+
mkdir build
17+
cd build
18+
19+
# necessary for correctly linking SIP files (from python_qt_bindings)
20+
export LINK=$CXX
21+
22+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then
23+
PYTHON_EXECUTABLE=$PREFIX/bin/python
24+
PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config
25+
OSX_DEPLOYMENT_TARGET="10.15"
26+
else
27+
PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python
28+
PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config
29+
OSX_DEPLOYMENT_TARGET="11.0"
30+
fi
31+
32+
if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then
33+
export QT_HOST_PATH="$BUILD_PREFIX"
34+
else
35+
export QT_HOST_PATH="$PREFIX"
36+
fi
37+
38+
echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}"
39+
echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}"
40+
41+
export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"`
42+
echo "Using Python $ROS_PYTHON_VERSION"
43+
# Fix up SP_DIR which for some reason might contain a path to a wrong Python version
44+
FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/")
45+
echo "Using site-package dir ${FIXED_SP_DIR}"
46+
47+
# see https://github.com/conda-forge/cross-python-feedstock/issues/24
48+
if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then
49+
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
50+
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
51+
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
52+
find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true
53+
# way around bad CPU type issues
54+
# rm $PREFIX/bin/doxygen || echo "doxygen not found"
55+
# rm $PREFIX/bin/dia || echo "dia not found"
56+
# rm $PREFIX/bin/dot || echo "dot not found"
57+
fi
58+
59+
# NOTE: there might be undefined references occurring
60+
# in the Boost.system library, depending on the C++ versions
61+
# used to compile Boost. We can avoid them by forcing the use of
62+
# the header-only version of the library.
63+
export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY"
64+
65+
if [[ $target_platform =~ linux.* ]]; then
66+
export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1";
67+
export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1";
68+
# I am too scared to turn this on for now ...
69+
# export LDFLAGS="$LDFLAGS -lrt";
70+
# Some qt stuff uses g++ directly - fix these use cases
71+
ln -s $GXX $BUILD_PREFIX/bin/g++
72+
fi
73+
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+
86+
export SKIP_TESTING=ON
87+
88+
if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then
89+
GENERATOR="Unix Makefiles"
90+
else
91+
GENERATOR="Ninja"
92+
fi
93+
94+
cmake ${CMAKE_ARGS} --compile-no-warning-as-error \
95+
-DCMAKE_INSTALL_PREFIX=$PREFIX \
96+
-DCMAKE_PREFIX_PATH=$PREFIX \
97+
-DCMAKE_BUILD_TYPE=Release \
98+
-DCMAKE_INSTALL_LIBDIR=lib \
99+
-DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \
100+
-DCMAKE_FIND_FRAMEWORK=LAST \
101+
-DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \
102+
-DBUILD_SHARED_LIBS=ON \
103+
-DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \
104+
-DPython_EXECUTABLE=$PYTHON_EXECUTABLE \
105+
-DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \
106+
-DPython3_FIND_STRATEGY=LOCATION \
107+
-DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \
108+
-DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \
109+
-DSETUPTOOLS_DEB_LAYOUT=OFF \
110+
-DCATKIN_SKIP_TESTING=$SKIP_TESTING \
111+
-DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \
112+
-DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \
113+
$EXTRA_CMAKE_ARGS \
114+
\
115+
-G "$GENERATOR" \
116+
$SRC_DIR/$PKG_NAME/src/work/
117+
118+
cmake --build . --config Release --target all
119+
120+
if [[ "$SKIP_TESTING" == "OFF" ]]; then
121+
cmake --build . --config Release --target run_tests
122+
fi
123+
124+
cmake --build . --config Release --target install
125+
126+
if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then
127+
# Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d.
128+
# This will allow them to be run on environment activation.
129+
for CHANGE in "activate" "deactivate"
130+
do
131+
mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d"
132+
cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh"
133+
done
134+
fi
135+
136+
if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then
137+
for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh"
138+
do
139+
mkdir -p "${PREFIX}/etc/conda/activate.d"
140+
cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}"
141+
done
142+
fi
143+
144+
if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then
145+
# Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d.
146+
# This will allow them to be run on environment activation.
147+
for CHANGE in "activate" "deactivate"
148+
do
149+
mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d"
150+
cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh"
151+
done
152+
fi
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json
2+
3+
package:
4+
name: ros-jazzy-async-web-server-cpp
5+
version: 2.0.1
6+
source:
7+
git: https://github.com/ros2-gbp/async_web_server_cpp-release.git
8+
tag: release/jazzy/async_web_server_cpp/2.0.1-1
9+
target_directory: ros-jazzy-async-web-server-cpp/src/work
10+
11+
build:
12+
script: ${{ '$RECIPE_DIR/build_catkin.sh' if unix or wasm32 else '%RECIPE_DIR%\\bld_catkin.bat' }}
13+
number: 9
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: https://www.ros.org/
29+
license: BSD-3-Clause
30+
summary: |
31+
Robot Operating System
32+
33+
extra:
34+
recipe-maintainers:
35+
- ros-forge
36+
37+
requirements:
38+
build:
39+
- ${{ compiler('cxx') }}
40+
- ${{ compiler('c') }}
41+
- if: target_platform!='emscripten-wasm32'
42+
then:
43+
- ${{ stdlib('c') }}
44+
- ninja
45+
- python
46+
- setuptools
47+
- git
48+
- git-lfs
49+
- if: unix
50+
then:
51+
- patch
52+
- make
53+
- coreutils
54+
- if: win
55+
then:
56+
- m2-patch
57+
- if: osx
58+
then:
59+
- tapi
60+
- if: build_platform != target_platform
61+
then:
62+
- pkg-config
63+
- cmake
64+
- cython
65+
- if: build_platform != target_platform
66+
then:
67+
- python
68+
- cross-python_${{ target_platform }}
69+
- numpy
70+
host:
71+
- if: build_platform == target_platform
72+
then:
73+
- pkg-config
74+
- libboost-devel
75+
- libboost-python-devel
76+
- numpy
77+
- openssl
78+
- pip
79+
- python
80+
- ros-jazzy-ament-cmake-ros
81+
- ros-jazzy-launch-testing
82+
- ros-jazzy-ros-environment
83+
- ros-jazzy-ros-workspace
84+
- ros2-distro-mutex 0.10.* jazzy_*
85+
- websocket-client
86+
run:
87+
- libboost-devel
88+
- libboost-python-devel
89+
- python
90+
- ros-jazzy-ros-workspace
91+
- ros2-distro-mutex 0.10.* jazzy_*
92+
- if: osx and x86_64
93+
then:
94+
- __osx >=${{ MACOSX_DEPLOYMENT_TARGET|default('10.14') }}

0 commit comments

Comments
 (0)