# Pixi is a package management tool for developers.
# Before running a task, pixi ensures that all listed dependencies are installed first.
#
# Pixi is not required for rerun, but it is a convenient way to install the
# dependencies required for this example.
#
# https://prefix.dev/docs/pixi/overview
#
# Use `pixi task list` to list the available tasks,
# and `pixi run TASK` to run it (e.g. `pixi run example`).

[project]
name = "rerun_cpp_example_opencv_eigen"
authors = ["rerun.io <opensource@rerun.io>"]
channels = ["conda-forge"]
description = "Use the Rerun C++ SDK together with Eigen and OpenCV"
homepage = "https://rerun.io"
license = "MIT OR Apache-2.0"
platforms = ["linux-64", "osx-arm64", "osx-64", "win-64"]
readme = "README.md"
repository = "https://github.com/rerun-io/cpp-example-opencv-eigen"
version = "0.1.0"


[tasks]
# Note: extra CLI argument after `pixi run TASK` are passed to the task cmd.
clean = { cmd = "rm -rf build bin CMakeFiles/" }
print-env = { cmd = "echo $PATH" }

[target.win-64.tasks]
prepare = "cmake -G 'Visual Studio 17 2022' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo"
build = { cmd = "cmake --build build --config RelWithDebInfo", depends_on = [
    "prepare",
] }
example = { cmd = "build/RelWithDebInfo/rerun_ext_example.exe", depends_on = [
    "build",
] }

[target.linux-64.tasks]
prepare = "cmake -G 'Ninja' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo"
build = { cmd = "cmake --build build --config RelWithDebInfo --target all", depends_on = [
    "prepare",
] }
example = { cmd = "build/rerun_ext_example", depends_on = ["build"] }


[target.osx-64.tasks]
prepare = "cmake -G 'Ninja' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo"
build = { cmd = "cmake --build build --config RelWithDebInfo --target all", depends_on = [
    "prepare",
] }
example = { cmd = "build/rerun_ext_example", depends_on = ["build"] }

[target.osx-arm64.tasks]
prepare = "cmake -G 'Ninja' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo"
build = { cmd = "cmake --build build --config RelWithDebInfo --target all", depends_on = [
    "prepare",
] }
example = { cmd = "build/rerun_ext_example", depends_on = ["build"] }
format = { cmd = "clang-format -i src/*" }

[dependencies]
# Build tools:
clang-tools = ">=15,<16" # clang-format
cmake = "3.27.6"
# Required by this example:
eigen = "3.4.0.*"
opencv = "4.8.1.*"
rerun-sdk = "0.10.0"

[target.linux-64.dependencies]
# Build tools:
cxx-compiler = "1.6.0.*"
ninja = "1.11.1"

[target.osx-64.dependencies]
# Build tools:
cxx-compiler = "1.6.0.*"
ninja = "1.11.1"

[target.osx-arm64.dependencies]
# Build tools:
cxx-compiler = "1.6.0.*"
ninja = "1.11.1"

[target.win-64.dependencies]
# Build tools:
vs2022_win-64 = "19.37.32822"