opencv_binding_generator/settings/
func_cfg_attr.rs1use std::collections::HashMap;
2
3use crate::func::FuncMatcher;
4use crate::SupportedModule;
5
6pub const CFG_ATTR_NOT_ON_WINDOWS: (&str, &str) = (r#"not(target_os = "windows")"#, r#"(!OCVRS_TARGET_OS_WINDOWS)"#);
7pub const CFG_ATTR_ONLY_OPENCV_5: (&str, &str) = ("ocvrs_opencv_branch_5", "(CV_VERSION_MAJOR == 5)");
8
9pub type FuncCfgAttr = FuncMatcher<'static, (&'static str, &'static str)>;
10
11pub fn func_cfg_attr_factory(module: SupportedModule) -> FuncCfgAttr {
13 match module {
14 SupportedModule::ImgProc => imgproc_factory(),
15 SupportedModule::Tracking => tracking_factory(),
16 _ => FuncCfgAttr::empty(),
17 }
18}
19
20fn imgproc_factory() -> FuncCfgAttr {
21 FuncCfgAttr::create(HashMap::from([(
22 "cv::getRotationMatrix2D_",
23 vec![(pred!(mut, ["center", "angle", "scale"]), CFG_ATTR_NOT_ON_WINDOWS)],
24 )]))
25}
26
27fn tracking_factory() -> FuncCfgAttr {
28 FuncCfgAttr::create(HashMap::from([
29 (
30 "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::TrackerAdaBoostingTargetState",
31 vec![(
32 pred!(mut, ["position", "width", "height", "foreground", "responses"]),
33 CFG_ATTR_NOT_ON_WINDOWS, )],
35 ),
36 (
37 "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::getTargetResponses",
38 vec![(
39 pred!(const, []),
40 CFG_ATTR_NOT_ON_WINDOWS, )],
42 ),
43 (
44 "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::isTargetFg",
45 vec![(
46 pred!(const, []),
47 CFG_ATTR_NOT_ON_WINDOWS, )],
49 ),
50 (
51 "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetFg",
52 vec![(
53 pred!(mut, ["foreground"]),
54 CFG_ATTR_NOT_ON_WINDOWS, )],
56 ),
57 (
58 "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetResponses",
59 vec![(
60 pred!(mut, ["responses"]),
61 CFG_ATTR_NOT_ON_WINDOWS, )],
63 ),
64 (
65 "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::TrackerMILTargetState",
66 vec![(
67 pred!(mut, ["position", "width", "height", "foreground", "features"]),
68 CFG_ATTR_NOT_ON_WINDOWS, )],
70 ),
71 (
72 "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::getFeatures",
73 vec![(
74 pred!(const, []),
75 CFG_ATTR_NOT_ON_WINDOWS, )],
77 ),
78 (
79 "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::isTargetFg",
80 vec![(
81 pred!(const, []),
82 CFG_ATTR_NOT_ON_WINDOWS, )],
84 ),
85 (
86 "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setFeatures",
87 vec![(
88 pred!(mut, ["features"]),
89 CFG_ATTR_NOT_ON_WINDOWS, )],
91 ),
92 (
93 "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setTargetFg",
94 vec![(
95 pred!(mut, ["foreground"]),
96 CFG_ATTR_NOT_ON_WINDOWS, )],
98 ),
99 ]))
100}