@@ -21,49 +21,73 @@ readme = "README.md"
21
21
repository = " https://github.com/rerun-io/cpp-example-opencv-eigen"
22
22
version = " 0.1.0"
23
23
24
+ # The following activation scripts make the tasks portable cross-platform.
25
+ #
26
+ # They define:
27
+ # - CMAKE_GENERATOR
28
+ # - BUILD_FOLDER
29
+ # - EXE_PATH
30
+ #
31
+ # In particular, BUILD_FOLDER will be set to either:
32
+ # - build_fetchcontent
33
+ # - build_findpackage
34
+ # depending on the feature being used.
35
+ [activation ]
36
+ scripts = [" pixi/env.sh" ]
37
+
38
+ [target .win-64 .activation ]
39
+ scripts = [" pixi/env.bat" ]
40
+
41
+ # ###############################################################################
42
+ # Common Tasks
43
+ # ###############################################################################
24
44
25
45
[tasks ]
26
- # Note: extra CLI argument after `pixi run TASK` are passed to the task cmd.
27
- clean = { cmd = " rm -rf build bin CMakeFiles/" }
28
- print-env = { cmd = " echo $PATH" }
29
46
30
- [target .win-64 .tasks ]
31
- prepare = " cmake -G 'Visual Studio 17 2022' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DRERUN_FIND_PACKAGE:BOOL=OFF"
32
- build = { cmd = " cmake --build build --config RelWithDebInfo" , depends_on = [
33
- " prepare" ,
34
- ] }
35
- example = { cmd = " build/RelWithDebInfo/rerun_ext_example.exe" , depends_on = [
36
- " build" ,
37
- ] }
47
+ print-env = { cmd = " echo $PATH" }
38
48
39
49
[target .unix .tasks ]
40
- prepare = " cmake -G 'Ninja' -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DRERUN_FIND_PACKAGE:BOOL=OFF"
41
- build = { cmd = " cmake --build build --config RelWithDebInfo --target all" , depends_on = [
42
- " prepare" ,
43
- ] }
44
- example = { cmd = " build/rerun_ext_example" , depends_on = [" build" ] }
50
+ # This task only runs propertly Unix systems.
45
51
format = { cmd = " clang-format -i src/*" }
46
52
47
- [ feature . rerunfindpackage . target . win-64 . tasks ]
48
- prepare = " cmake -G 'Visual Studio 17 2022' -B buildrerunfindpackage -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DRERUN_FIND_PACKAGE:BOOL=ON "
49
- build = { cmd = " cmake --build buildrerunfindpackage --config RelWithDebInfo " , depends_on = [
50
- " prepare " ,
51
- ] }
52
- example = { cmd = " buildrerunfindpackage/RelWithDebInfo/rerun_ext_example.exe " , depends_on = [
53
- " build " ,
54
- ] }
53
+ # ###############################################################################
54
+ # Building against Rerun using the default of FetchContent.
55
+ #
56
+ # The rerun-cpp source will be downloaded and built as part of the build.
57
+ # ###############################################################################
58
+ [ feature . fetchcontent . tasks ]
59
+
60
+ prepare-fetchcontent = " cmake -B $BUILD_FOLDER -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo "
55
61
56
- [feature .rerunfindpackage .target .unix .tasks ]
57
- prepare = " cmake -G 'Ninja' -B buildrerunfindpackage -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DRERUN_FIND_PACKAGE:BOOL=ON"
58
- build = { cmd = " cmake --build buildrerunfindpackage --config RelWithDebInfo --target all" , depends_on = [
59
- " prepare" ,
62
+ build-fetchcontent = { cmd = " cmake --build $BUILD_FOLDER --config RelWithDebInfo" , depends_on = [
63
+ " prepare-fetchcontent" ,
60
64
] }
61
- example = { cmd = " buildrerunfindpackage/rerun_ext_example" , depends_on = [
62
- " build" ,
65
+
66
+ example = { cmd = " $EXE_PATH" , depends_on = [" build-fetchcontent" ] }
67
+
68
+ clean = { cmd = " rm -rf $BUILD_FOLDER bin CMakeFiles/" }
69
+
70
+ # ###############################################################################
71
+ # Alternatively, build by locating Rerun via find_package
72
+ #
73
+ # In this case rerun is provided by the `librerun-sdk` package in the
74
+ # conda environment.
75
+ # ###############################################################################
76
+ [feature .findpackage .tasks ]
77
+
78
+ prepare-findpackage = " cmake -B $BUILD_FOLDER -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DRERUN_FIND_PACKAGE:BOOL=ON"
79
+
80
+ build-findpackage = { cmd = " cmake --build $BUILD_FOLDER --config RelWithDebInfo" , depends_on = [
81
+ " prepare-findpackage" ,
63
82
] }
64
- format = { cmd = " clang-format -i src/*" }
65
83
84
+ example-findpackage = { cmd = " $EXE_PATH" , depends_on = [" build-findpackage" ] }
85
+
86
+ clean = { cmd = " rm -rf $BUILD_FOLDER bin CMakeFiles/" }
66
87
88
+ # ###############################################################################
89
+ # Dependencies
90
+ # ###############################################################################
67
91
[dependencies ]
68
92
# Build tools:
69
93
clang-tools = " >=15,<16" # clang-format
@@ -84,11 +108,10 @@ ninja = "1.11.1"
84
108
# Build tools:
85
109
vs2022_win-64 = " 19.37.32822"
86
110
87
- [feature .rerunfindpackage .dependencies ]
111
+ [feature .findpackage .dependencies ]
88
112
librerun-sdk = " 0.17.0.*"
89
113
90
114
[environments ]
91
115
default = { solve-group = " defaultgroup" }
92
- rerunfindpackage = { features = [
93
- " rerunfindpackage" ,
94
- ], solve-group = " defaultgroup" }
116
+ fetchcontent = { features = [" fetchcontent" ], solve-group = " defaultgroup" }
117
+ findpackage = { features = [" findpackage" ], solve-group = " defaultgroup" }
0 commit comments