@@ -22,7 +22,6 @@ android {
2222 }
2323 }
2424
25- targetSdk = 34
2625 setProperty(" archivesBaseName" , " ${project.name} _${versionName} " )
2726 }
2827
@@ -53,6 +52,52 @@ android {
5352 }
5453 ndkVersion = " 26.1.10909125"
5554 buildToolsVersion = " 34.0.0"
55+
56+
57+ val chewingLibraryPath: String = " ${rootDir} /libchewing-android-module/src/main/cpp/libs/libchewing"
58+
59+ tasks.register<Exec >(" prepareChewing" ) {
60+ workingDir(chewingLibraryPath)
61+ commandLine(" cmake" , " --preset" , " c99-release" , " -DBUILD_SHARED_LIBS=OFF" , " ." )
62+ }
63+
64+ val chewingDataFiles =
65+ listOf<String >(" dictionary.dat" , " index_tree.dat" , " pinyin.tab" , " swkb.dat" , " symbols.dat" )
66+
67+ tasks.register<Exec >(" buildChewingData" ) {
68+ dependsOn(" prepareChewing" )
69+ workingDir(" $chewingLibraryPath /build" )
70+ commandLine(" make" , " data" , " all_static_data" )
71+ }
72+
73+ tasks.register<Copy >(" copyChewingDataFiles" ) {
74+ dependsOn(" buildChewingData" )
75+ for (chewingDataFile in chewingDataFiles) {
76+ from(" $chewingLibraryPath /build/data/$chewingDataFile " )
77+ into(" $rootDir /libchewing-android-module/src/main/assets" )
78+ }
79+ }
80+
81+ tasks.preBuild {
82+ dependsOn(" copyChewingDataFiles" )
83+ }
84+
85+ tasks.register<Delete >(" cleanChewingDataFiles" ) {
86+ for (chewingDataFile in chewingDataFiles) {
87+ file(" $rootDir /libchewing-android-module/src/main/assets/$chewingDataFile " ).delete()
88+ }
89+ }
90+
91+ tasks.register<Exec >(" execMakeClean" ) {
92+ onlyIf { file(" $chewingLibraryPath /build/Makefile" ).exists() }
93+ workingDir(" $chewingLibraryPath /build" )
94+ commandLine(" make" , " clean" )
95+ isIgnoreExitValue = true
96+ }
97+
98+ tasks.clean {
99+ dependsOn(" cleanChewingDataFiles" , " execMakeClean" )
100+ }
56101}
57102
58103dependencies {
0 commit comments