Improve development experience

1. Add installation tasks
2. Export CMake symbols for clangd
This commit is contained in:
JingMatrix
2025-11-02 10:54:28 +01:00
parent 67d35caf3c
commit ad81149700
3 changed files with 91 additions and 8 deletions
+2 -2
View File
@@ -60,7 +60,7 @@ jobs:
- name: Build with Gradle
run: |
chmod +x ./gradlew
./gradlew --parallel assembleRelease assembleDebug --stacktrace
./gradlew --parallel zipRelease zipDebug --stacktrace
- name: Prepare artifact
if: success()
@@ -128,4 +128,4 @@ jobs:
if [[ "${{ job.status }}" == "success" ]]; then
echo "- **Release Artifact**: ${{ steps.prepareArtifact.outputs.releaseName }}" >> $GITHUB_STEP_SUMMARY
echo "- **Debug Artifact**: ${{ steps.prepareArtifact.outputs.debugName }}" >> $GITHUB_STEP_SUMMARY
fi
fi
+87 -6
View File
@@ -81,6 +81,7 @@ android {
externalNativeBuild {
cmake {
path = file("src/main/cpp/CMakeLists.txt")
buildStagingDirectory = layout.buildDirectory.get().asFile
version = "3.28.0+"
}
}
@@ -103,6 +104,7 @@ afterEvaluate {
val tempModuleDir = project.layout.buildDirectory.dir("tmp/module-${variantName}")
tasks.register("copyFiles${capitalized}") {
dependsOn("assemble${capitalized}")
val moduleFolder = project.rootDir.resolve("module")
val buildDir = project.layout.buildDirectory
@@ -176,13 +178,92 @@ afterEvaluate {
}
// Zip task uses the temp directory
tasks.register<Zip>("zip${capitalized}") {
dependsOn("prepareModuleFiles${capitalized}")
archiveFileName.set("Tricky-Store-OSS-$verName-$gitCommitCount-$gitCommitHash-${capitalized}.zip")
destinationDirectory.set(project.rootDir.resolve("out"))
from(tempModuleDir)
val zipTask =
tasks.register<Zip>("zip${capitalized}") {
dependsOn("prepareModuleFiles${capitalized}")
archiveFileName.set(
"TEESimulator-$verName-$gitCommitCount-$gitCommitHash-${capitalized}.zip"
)
destinationDirectory.set(project.rootDir.resolve("out"))
from(tempModuleDir)
}
val pushTask =
tasks.register<Exec>("push${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(zipTask)
commandLine(
"adb",
"push",
zipTask.get().archiveFile.get().asFile,
"/data/local/tmp",
)
description = "Pushes the $variantName module zip to the device."
}
// --- Magisk Install Tasks ---
val installMagiskTask =
tasks.register<Exec>("installMagisk${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(pushTask)
commandLine(
"adb",
"shell",
"su",
"-c",
"magisk --install-module /data/local/tmp/${zipTask.get().archiveFileName.get()}",
)
description = "Installs the $variantName module via Magisk."
}
tasks.register<Exec>("installMagiskAndReboot${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(installMagiskTask)
commandLine("adb", "reboot")
description = "Installs the $variantName module via Magisk and reboots."
}
// --- KernelSU Install Tasks ---
val installKsuTask =
tasks.register<Exec>("installKsu${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(pushTask)
commandLine(
"adb",
"shell",
"su",
"-c",
"ksud module install /data/local/tmp/${zipTask.get().archiveFileName.get()}",
)
description = "Installs the $variantName module via KernelSU."
}
tasks.register<Exec>("installKsuAndReboot${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(installKsuTask)
commandLine("adb", "reboot")
description = "Installs the $variantName module via KernelSU and reboots."
}
// --- APatch Install Tasks ---
val installApatchTask =
tasks.register<Exec>("installApatch${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(pushTask)
commandLine(
"adb",
"shell",
"su",
"-c",
"/data/adb/apd module install /data/local/tmp/${zipTask.get().archiveFileName.get()}",
)
description = "Installs the $variantName module via APatch."
}
tasks.register<Exec>("installApatchAndReboot${capitalized}") {
group = "TEESimulator Module Installation"
dependsOn(installApatchTask)
commandLine("adb", "reboot")
description = "Installs the $variantName module via APatch and reboots."
}
tasks["assemble${capitalized}"].finalizedBy("zip${capitalized}")
}
}
}
+2
View File
@@ -6,6 +6,8 @@ project(TrickyStoreOSS)
find_package(cxx REQUIRED CONFIG)
link_libraries(cxx::cxx)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_library(my_logging STATIC logging/logging.cpp)
target_include_directories(my_logging PUBLIC logging/include)
target_link_libraries(my_logging log)