ghidra/Ghidra/Extensions/SymbolicSummaryZ3/build.gradle
2025-07-11 07:14:04 -04:00

69 lines
2.2 KiB
Groovy

/* ###
* IP: GHIDRA
*
* Licensed 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.
*/
apply from: "$rootProject.projectDir/gradle/javaProject.gradle"
apply from: "$rootProject.projectDir/gradle/jacocoProject.gradle"
apply from: "$rootProject.projectDir/gradle/javaTestProject.gradle"
apply from: "$rootProject.projectDir/gradle/distributableGhidraExtension.gradle"
apply plugin: 'eclipse'
eclipse.project.name = 'Xtra SymbolicSummaryZ3'
dependencies {
api project(':Debugger')
api project(':SystemEmulation')
api ":com.microsoft.z3:"
// Oof. Apparently, this doesn't work transitively....
testImplementation project(path: ':Generic', configuration: 'testArtifacts')
testImplementation project(path: ':ProposedUtils', configuration: 'testArtifacts')
testImplementation project(path: ':SystemEmulation', configuration: 'testArtifacts')
testImplementation project(path: ':Framework-TraceModeling', configuration: 'testArtifacts')
testImplementation project(path: ':Debugger', configuration: 'testArtifacts')
}
CopySpec z3LibsCopySpec = copySpec {
File depsDir = file("${DEPS_DIR}/SymbolicSummaryZ3/os")
File binRepoDir = file("${BIN_REPO}/Ghidra/Extensions/SymbolicSummaryZ3/os")
from(depsDir.exists() ? depsDir : binRepoDir) {
into("os")
}
}
task z3DevLibsCopy(type: Copy) {
description = "Unpack Z3 archives for development use"
group = "Development Preparation"
onlyIf {
// Only need to do this if using dependencies directory
file("${DEPS_DIR}/SymbolicSummaryZ3/os").exists()
}
with z3LibsCopySpec
destinationDir = file("build")
}
zipExtensions {
into(getBaseProjectName(this.project)) {
with z3LibsCopySpec
}
into(getBaseProjectName(this.project)) {
from(this.project.file(".")) {
include("README.md")
}
}
}
rootProject.prepDev.dependsOn(z3DevLibsCopy)