blob: 01f06995e963da8eaa652683993cea761b87ca29 [file]
import org.gradle.crypto.checksum.Checksum
/*
* 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 'distribution'
id 'signing'
alias(libs.plugins.nebula)
alias(libs.plugins.checksum)
}
apply from: "$rootDir/buildscripts/utils.gradle"
configurations {
cppClient
cppClientHeaders
}
dependencies {
cppClient(project(path: ":platforms", configuration: "cppClient"))
cppClientHeaders(project(path: ":platforms", configuration: "cppClientHeaders"))
}
def tokens = [
PRODUCT_NAME : "ignite3-cpp-client",
LIB_DIR : "/usr/lib",
INCLUDE_DIR : "/usr/include"
]
configurations {
cppClientZip {
canBeConsumed = true
canBeResolved = false
}
}
artifacts {
cppClientZip(distZip)
}
distributions {
main {
distributionBaseName = tokens.PRODUCT_NAME
contents {
into('') {
from "$rootDir/LICENSE"
from "$rootDir/NOTICE"
}
into('lib') {
from configurations.cppClient
}
into('include') {
from configurations.cppClientHeaders
}
}
}
}
distZip {
onlyIf {
project.hasProperty('platforms.enable')
}
}
// Explicitly create task so that the resulting artifact is not added to the configuration
def signCppClientZip = tasks.register('signCppClientZip', Sign) {
sign configurations.cppClientZip
}
ospackage {
license "ASL 2.0"
packageName tokens.PRODUCT_NAME
packageGroup "Development/Libraries"
url "https://ignite.apache.org"
packageDescription "This package will install Apache Ignite 3 client library for C++"
os LINUX
release getCommitNum()
into(tokens.LIB_DIR) {
from configurations.cppClient
}
into(tokens.INCLUDE_DIR) {
from configurations.cppClientHeaders
}
}
buildRpm {
onlyIf {
project.hasProperty('platforms.enable')
}
}
buildDeb {
onlyIf {
project.hasProperty('platforms.enable')
}
}
// --- release setup --- //
def createChecksums = tasks.register('createChecksums', Checksum) {
onlyIf {
project.hasProperty('platforms.enable')
}
inputFiles.from distZip
checksumAlgorithm = Checksum.Algorithm.SHA512
}
distZip.finalizedBy(createChecksums)