6
6
// ignore: unused_import
7
7
import 'dart:io' ;
8
8
9
+ import 'package:dartcv4/src/hook_helpers/parse_user_define.dart' ;
9
10
import 'package:logging/logging.dart' ;
10
11
import 'package:native_assets_cli/native_assets_cli.dart' ;
11
12
import 'package:native_toolchain_cmake/native_toolchain_cmake.dart' ;
@@ -16,15 +17,23 @@ void main(List<String> args) async {
16
17
17
18
Future <void > _builder (BuildInput input, BuildOutputBuilder output) async {
18
19
final packageName = input.packageName;
19
- final packagePath = await getPackagePath (packageName);
20
- final sourceDir = Uri . directory ( packagePath) .resolve ('src/' );
20
+ final packagePath = Uri . directory ( await getPackagePath (packageName) );
21
+ final sourceDir = packagePath.resolve ('src/' );
21
22
// final outDir = Uri.directory(packagePath).resolve('build/');
22
- final logger =
23
- Logger ("" )
24
- ..level = Level .ALL
25
- ..onRecord.listen ((record) => stderr.writeln (record.message));
23
+ final logger = Logger ("" )
24
+ ..level = Level .ALL
25
+ ..onRecord.listen ((record) => stderr.writeln (record.message));
26
26
// ..onRecord.listen((record) => print(record.message));
27
27
28
+ final exModsDefault = parseUserDefinedExcludeModules (packagePath.resolve ("pubspec.yaml" ).toFilePath ());
29
+ final exModsUser =
30
+ parseUserDefinedExcludeModules (Platform .script.resolve ('../../../../pubspec.yaml' ).toFilePath ());
31
+ final exModsFinal = exModsDefault + exModsUser;
32
+
33
+ logger.info ("default exclude modules: $exModsDefault " );
34
+ logger.info ("user exclude modules: $exModsUser " );
35
+ logger.info ("final exclude modules: $exModsFinal " );
36
+
28
37
final builder = CMakeBuilder .create (
29
38
name: packageName,
30
39
sourceDir: sourceDir,
@@ -33,17 +42,19 @@ Future<void> _builder(BuildInput input, BuildOutputBuilder output) async {
33
42
targets: ['install' ],
34
43
defines: {
35
44
'CMAKE_INSTALL_PREFIX' : input.outputDirectory.resolve ('install' ).toFilePath (),
36
- 'DARTCV_WITH_CALIB3D' : "OFF" ,
37
- 'DARTCV_WITH_DNN' : 'OFF' ,
38
- 'DARTCV_WITH_FEATURES2D' : 'OFF' ,
39
- 'DARTCV_WITH_HIGHGUI' : 'OFF' ,
40
- 'DARTCV_WITH_IMGPROC' : 'ON' ,
41
- 'DARTCV_WITH_IMGCODECS' : 'OFF' ,
42
- 'DARTCV_WITH_OBJDETECT' : 'OFF' ,
43
- 'DARTCV_WITH_PHOTO' : 'OFF' ,
44
- 'DARTCV_WITH_STITCHING' : 'OFF' ,
45
- 'DARTCV_WITH_VIDEO' : 'OFF' ,
46
- 'DARTCV_WITH_VIDEOIO' : 'OFF' ,
45
+ 'DARTCV_WITH_CALIB3D' : exModsFinal.contains ('calib3d' ) ? "OFF" : "ON" ,
46
+ 'DARTCV_WITH_CONTRIB' : exModsFinal.contains ('contrib' ) ? "OFF" : "ON" ,
47
+ 'DARTCV_WITH_DNN' : exModsFinal.contains ('dnn' ) ? "OFF" : "ON" ,
48
+ 'DARTCV_WITH_FEATURES2D' : exModsFinal.contains ('features2d' ) ? "OFF" : "ON" ,
49
+ 'DARTCV_WITH_FLANN' : exModsFinal.contains ('flann' ) ? "OFF" : "ON" ,
50
+ 'DARTCV_WITH_HIGHGUI' : exModsFinal.contains ('highgui' ) ? "OFF" : "ON" ,
51
+ 'DARTCV_WITH_IMGPROC' : exModsFinal.contains ('imgproc' ) ? "OFF" : "ON" ,
52
+ 'DARTCV_WITH_IMGCODECS' : exModsFinal.contains ('imgcodecs' ) ? "OFF" : "ON" ,
53
+ 'DARTCV_WITH_OBJDETECT' : exModsFinal.contains ('objdetect' ) ? "OFF" : "ON" ,
54
+ 'DARTCV_WITH_PHOTO' : exModsFinal.contains ('photo' ) ? "OFF" : "ON" ,
55
+ 'DARTCV_WITH_STITCHING' : exModsFinal.contains ('stitching' ) ? "OFF" : "ON" ,
56
+ 'DARTCV_WITH_VIDEO' : exModsFinal.contains ('video' ) ? "OFF" : "ON" ,
57
+ 'DARTCV_WITH_VIDEOIO' : exModsFinal.contains ('videoio' ) ? "OFF" : "ON" ,
47
58
},
48
59
buildLocal: true ,
49
60
);
0 commit comments