initial version
This commit is contained in:
136
Taskfile.ros2.yml
Normal file
136
Taskfile.ros2.yml
Normal file
@@ -0,0 +1,136 @@
|
||||
# [https://taskfile.dev](https://taskfile.dev)
|
||||
|
||||
version: "3"
|
||||
|
||||
vars:
|
||||
BUILD_TYPE: '{{.BUILD_TYPE | default "Release"}}'
|
||||
VERSION: '{{.CONAN_BUILD_VERSION | default .ENV_CONAN_BUILD_VERSION | default "0.0.0-dev"}}'
|
||||
# Detect System Architecture (x86_64 or aarch64)
|
||||
SYSTEM_ARCH:
|
||||
sh: arch
|
||||
|
||||
|
||||
tasks:
|
||||
# ============================================================================
|
||||
# Core Logic (Internal)
|
||||
# ============================================================================
|
||||
|
||||
_validate_arch:
|
||||
internal: true
|
||||
silent: true
|
||||
desc: "Checks if the current system architecture supports the requested build"
|
||||
requires:
|
||||
vars: [EXPECTED_ARCH]
|
||||
cmds:
|
||||
- |
|
||||
if [ "{{.SYSTEM_ARCH}}" != "{{.EXPECTED_ARCH}}" ]; then
|
||||
echo "❌ ARCHITECTURE MISMATCH ERROR:"
|
||||
echo " - System Arch: {{.SYSTEM_ARCH}}"
|
||||
echo " - Expected Arch: {{.EXPECTED_ARCH}}"
|
||||
echo " - Task Type: Native Build"
|
||||
echo ""
|
||||
echo " You are trying to run a 'native' build for {{.EXPECTED_ARCH}} on a {{.SYSTEM_ARCH}} machine."
|
||||
echo " Please use the 'cross-...' task instead."
|
||||
exit 1
|
||||
else
|
||||
echo "✅ Architecture match: System={{.SYSTEM_ARCH}} matches Target={{.EXPECTED_ARCH}}"
|
||||
fi
|
||||
|
||||
_create:
|
||||
internal: true
|
||||
desc: "Core wrapper for conan create"
|
||||
requires:
|
||||
vars: [PROFILE_HOST, PROFILE_BUILD]
|
||||
cmds:
|
||||
- >-
|
||||
conan create .
|
||||
--profile:build {{.PROFILE_BUILD}}
|
||||
--profile:host {{.PROFILE_HOST}}
|
||||
--build=missing
|
||||
--version {{.VERSION}}
|
||||
-s build_type={{.BUILD_TYPE}}
|
||||
|
||||
# ============================================================================
|
||||
# GCC 13 (Modern)
|
||||
# ============================================================================
|
||||
|
||||
native-x64:gcc13:
|
||||
desc: "Build: Native x64 (GCC 13)"
|
||||
cmds:
|
||||
- task: _validate_arch
|
||||
vars: { EXPECTED_ARCH: "x86_64" }
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: x64_linux_gcc_13
|
||||
PROFILE_HOST: x64_linux_gcc_13
|
||||
|
||||
native-armv8:gcc13:
|
||||
desc: "Build: Native ARMv8 (GCC 13)"
|
||||
cmds:
|
||||
- task: _validate_arch
|
||||
vars: { EXPECTED_ARCH: "aarch64" }
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: armv8_linux_gcc_13
|
||||
PROFILE_HOST: armv8_linux_gcc_13
|
||||
|
||||
cross-armv8:gcc13:
|
||||
desc: "Build: Cross-Compile x64 -> ARMv8 (GCC 13)"
|
||||
cmds:
|
||||
- echo "⚠️ Cross-compiling for ARMv8 on {{.SYSTEM_ARCH}} (No arch check enforced)"
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: x64_linux_gcc_13
|
||||
PROFILE_HOST: armv8_linux_gcc_13_croco
|
||||
|
||||
# ============================================================================
|
||||
# GCC 9 (Legacy)
|
||||
# ============================================================================
|
||||
|
||||
native-x64:gcc9:
|
||||
desc: "Build: Native x64 (GCC 9)"
|
||||
cmds:
|
||||
- task: _validate_arch
|
||||
vars: { EXPECTED_ARCH: "x86_64" }
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: x64_linux_gcc_9
|
||||
PROFILE_HOST: x64_linux_gcc_9
|
||||
|
||||
native-armv8:gcc9:
|
||||
desc: "Build: Native ARMv8 (GCC 9)"
|
||||
cmds:
|
||||
- task: _validate_arch
|
||||
vars: { EXPECTED_ARCH: "aarch64" }
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: armv8_linux_gcc_9
|
||||
PROFILE_HOST: armv8_linux_gcc_9
|
||||
|
||||
cross-armv8:gcc9:
|
||||
desc: "Build: Cross-Compile x64 -> ARMv8 (GCC 9)"
|
||||
cmds:
|
||||
- echo "⚠️ Cross-compiling for ARMv8 on {{.SYSTEM_ARCH}} (No arch check enforced)"
|
||||
- task: _create
|
||||
vars:
|
||||
PROFILE_BUILD: x64_linux_gcc_9
|
||||
PROFILE_HOST: armv8_linux_gcc_9_croco
|
||||
|
||||
# ============================================================================
|
||||
# Utility Tasks
|
||||
# ============================================================================
|
||||
|
||||
clean:
|
||||
desc: "Clean build artifacts and conan cache for this package"
|
||||
cmds:
|
||||
- rm -rf build install colcon_build
|
||||
- conan remove video-to-rosbag/* -c
|
||||
|
||||
test:
|
||||
desc: "Run the converter test with sample video"
|
||||
cmds:
|
||||
- >-
|
||||
conan install --requires=video-to-rosbag/{{.VERSION}} -g VirtualRunEnv
|
||||
--profile:host x64_linux_gcc_13 --profile:build x64_linux_gcc_13
|
||||
-s build_type={{.BUILD_TYPE}}
|
||||
- source conanrun.sh && ros2 run video_to_rosbag video_to_rosbag --ros-args -p input_video:=/tmp/test.mp4 -p output_bag:=/tmp/test_bag
|
||||
Reference in New Issue
Block a user