blob: 352c579d8388262eb6ba7092dd45eccb893c6666 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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-common')
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()