Skip to content

Commit 9fe4cb1

Browse files
committed
Migrate to single module
Signed-off-by: Hui-Hong You <hiroshi@ghostsinthelab.org>
1 parent f90d0b5 commit 9fe4cb1

17 files changed

Lines changed: 82 additions & 269 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
.externalNativeBuild
1414
.cxx
1515
local.properties
16-
/libchewing-android-module/src/main/assets/
16+
/app/src/main/assets/

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
path = libchewing-android-module/src/main/cpp/libs/libchewing
33
url = https://github.com/hiroshiyui/libchewing.git
44
branch = android
5+
[submodule "app/src/main/cpp/libs/libchewing"]
6+
path = app/src/main/cpp/libs/libchewing
7+
url = https://github.com/hiroshiyui/libchewing.git
8+
branch = android

.idea/gradle.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle.kts

Lines changed: 74 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,104 @@
1717
*/
1818

1919
plugins {
20-
alias(libs.plugins.android.application)
20+
alias(libs.plugins.android.library)
2121
alias(libs.plugins.jetbrains.kotlin.android)
2222
}
2323

24+
val versionName: String = "0.8.1"
25+
2426
android {
2527
namespace = "com.miyabi_hiroshi.app.libchewing_android_app_module"
2628
compileSdk = 34
2729

2830
defaultConfig {
29-
applicationId = "com.miyabi_hiroshi.app.libchewing_android_app_module"
3031
minSdk = 23
31-
targetSdk = 34
32-
versionCode = 1
33-
versionName = "1.0"
3432

3533
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
34+
consumerProguardFiles("consumer-rules.pro")
35+
externalNativeBuild {
36+
cmake {
37+
cFlags("-Wno-unused-function", "-Wno-unused-but-set-variable")
38+
cppFlags += ""
39+
targets("libchewing", "libchewing_android_module")
40+
}
41+
}
42+
43+
setProperty("archivesBaseName", "${project.name}_${versionName}")
3644
}
3745

3846
buildTypes {
3947
release {
40-
isMinifyEnabled = false
48+
isMinifyEnabled = true
4149
proguardFiles(
4250
getDefaultProguardFile("proguard-android-optimize.txt"),
4351
"proguard-rules.pro"
4452
)
4553
}
54+
debug {
55+
isMinifyEnabled = false
56+
}
57+
}
58+
externalNativeBuild {
59+
cmake {
60+
path("src/main/cpp/CMakeLists.txt")
61+
version = "3.24.0+"
62+
path = file("src/main/cpp/CMakeLists.txt")
63+
}
4664
}
4765
compileOptions {
48-
sourceCompatibility = JavaVersion.VERSION_1_8
49-
targetCompatibility = JavaVersion.VERSION_1_8
66+
sourceCompatibility = JavaVersion.VERSION_17
67+
targetCompatibility = JavaVersion.VERSION_17
5068
}
5169
kotlinOptions {
52-
jvmTarget = "1.8"
70+
jvmTarget = "17"
71+
}
72+
buildToolsVersion = "34.0.0"
73+
ndkVersion = "26.1.10909125"
74+
75+
val chewingLibraryPath: String = "${rootDir}/app/src/main/cpp/libs/libchewing"
76+
77+
tasks.register<Exec>("prepareChewing") {
78+
workingDir(chewingLibraryPath)
79+
commandLine("cmake", "--preset", "c99-release", "-DBUILD_SHARED_LIBS=OFF", ".")
80+
}
81+
82+
val chewingDataFiles =
83+
listOf<String>("dictionary.dat", "index_tree.dat", "pinyin.tab", "swkb.dat", "symbols.dat")
84+
85+
tasks.register<Exec>("buildChewingData") {
86+
dependsOn("prepareChewing")
87+
workingDir("$chewingLibraryPath/build")
88+
commandLine("make", "data", "all_static_data")
89+
}
90+
91+
tasks.register<Copy>("copyChewingDataFiles") {
92+
dependsOn("buildChewingData")
93+
for (chewingDataFile in chewingDataFiles) {
94+
from("$chewingLibraryPath/build/data/$chewingDataFile")
95+
into("$rootDir/app/src/main/assets")
96+
}
97+
}
98+
99+
tasks.preBuild {
100+
dependsOn("copyChewingDataFiles")
101+
}
102+
103+
tasks.register<Delete>("cleanChewingDataFiles") {
104+
for (chewingDataFile in chewingDataFiles) {
105+
file("$rootDir/app/src/main/assets/$chewingDataFile").delete()
106+
}
107+
}
108+
109+
tasks.register<Exec>("execMakeClean") {
110+
onlyIf { file("$chewingLibraryPath/build/Makefile").exists() }
111+
workingDir("$chewingLibraryPath/build")
112+
commandLine("make", "clean")
113+
isIgnoreExitValue = true
114+
}
115+
116+
tasks.clean {
117+
dependsOn("cleanChewingDataFiles", "execMakeClean")
53118
}
54119
}
55120

libchewing-android-module/consumer-rules.pro renamed to app/consumer-rules.pro

File renamed without changes.

libchewing-android-module/src/main/cpp/CMakeLists.txt renamed to app/src/main/cpp/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ add_subdirectory(${CMAKE_SOURCE_DIR}/libs/libchewing EXCLUDE_FROM_ALL)
3434
# used in the AndroidManifest.xml file.
3535
add_library(${CMAKE_PROJECT_NAME} SHARED
3636
# List C/C++ source files with relative paths to this CMakeLists.txt.
37-
libchewing_android_module.cpp)
37+
app.cpp)
3838

3939
# Specifies libraries CMake should link to your target library. You
4040
# can link libraries from various origins, such as libraries defined in this

libchewing-android-module/src/main/cpp/libchewing_android_module.cpp renamed to app/src/main/cpp/app.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
Chewing JNI functions
1010
*/
1111

12-
13-
1412
/* chewing_new2() */
1513
extern "C" JNIEXPORT jlong JNICALL
1614
Java_com_miyabi_1hiroshi_app_libchewing_1android_1module_Chewing_chewingNew(

libchewing-android-module/src/main/cpp/libs/libchewing renamed to app/src/main/cpp/libs/libchewing

libchewing-android-module/src/main/java/com/miyabi_hiroshi/app/libchewing_android_module/Chewing.kt renamed to app/src/main/java/com/miyabi_hiroshi/app/libchewing_android_module/Chewing.kt

File renamed without changes.

0 commit comments

Comments
 (0)