| /* |
| * 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-nvml-pmem-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() |