MNEMONIC-565: Complete the build of mnemonic-pmdk-vmem-service
Signed-off-by: Xiaojin Jiao <xj.jiao@gmail.com>
diff --git a/mnemonic-memory-services/mnemonic-pmdk-vmem-service/build.gradle b/mnemonic-memory-services/mnemonic-pmdk-vmem-service/build.gradle
index 2327cca..f450f3d 100644
--- a/mnemonic-memory-services/mnemonic-pmdk-vmem-service/build.gradle
+++ b/mnemonic-memory-services/mnemonic-pmdk-vmem-service/build.gradle
@@ -15,8 +15,49 @@
* limitations under the License.
*/
-description = 'mnemonic-pmdk-vmem-service'
-dependencies {
- testCompileOnly 'org.testng:testng'
+plugins {
+ id 'net.freudasoft.gradle-cmake-plugin'
+ id 'com.github.johnrengelman.shadow'
+ id 'com.google.osdetector'
}
+
+description = 'mnemonic-pmdk-vmem-service'
+
+
+dependencies {
+ implementation project(':mnemonic-core')
+ implementation 'org.flowcomputing.commons:commons-primitives'
+ testCompileOnly 'org.testng:testng'
+}
+
+def nativeDir = "$projectDir/src/main/native"
+
+cmake {
+ sourceFolder = file("$nativeDir")
+ workingFolder = file("$nativeDir/build")
+ buildSharedLibs = true
+ buildConfig = 'Release'
+ buildTarget = 'install'
+}
+
+task copyResources(type: Copy) {
+ from "$nativeDir/dist/native"
+ into "${buildDir}/classes/java/main/native"
+}
+
+shadowJar {
+ minimize()
+ destinationDirectory = file("$projectDir/../service-dist")
+ archiveClassifier = osdetector.classifier
+}
+
+task cleanDist(type: Delete) {
+ delete "$nativeDir/dist"
+}
+
+compileJava.dependsOn cmakeBuild
+processResources.dependsOn copyResources
+build.dependsOn shadowJar
+clean.dependsOn cmakeClean
+clean.dependsOn cleanDist
test.useTestNG()