mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 09:49:23 +02:00
86 lines
2.2 KiB
Groovy
86 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.
|
|
*/
|
|
configurations {
|
|
pypkgInstall
|
|
}
|
|
|
|
task assemblePyPackage(type: Copy) {
|
|
from "src/main/py"
|
|
into "build/pypkg/"
|
|
}
|
|
|
|
def getGdbPython() {
|
|
def out = new ByteArrayOutputStream()
|
|
exec {
|
|
commandLine "gdb", "--batch"
|
|
args "-ex", "python import sys"
|
|
args "-ex", "python print(f'python{sys.version_info.major}.{sys.version_info.minor}')"
|
|
standardOutput = out
|
|
}
|
|
return "$out".strip()
|
|
}
|
|
|
|
def getLldbPython() {
|
|
def out = new ByteArrayOutputStream()
|
|
exec {
|
|
commandLine "lldb", "--batch"
|
|
args "-ex", "python import sys"
|
|
args "-ex", "python print(f'python{sys.version_info.major}.{sys.version_info.minor}')"
|
|
standardOutput = out
|
|
}
|
|
return "$out".strip()
|
|
}
|
|
|
|
task configureBuildPyPackage {
|
|
doLast {
|
|
def gdbPython = getGdbPython()
|
|
buildPyPackage.commandLine gdbPython, "-m", "build"
|
|
}
|
|
}
|
|
|
|
task buildPyPackage(type: Exec) {
|
|
dependsOn(configureBuildPyPackage)
|
|
ext.dist = { file("build/pypkg/dist") }
|
|
inputs.files(assemblePyPackage)
|
|
outputs.dir(dist)
|
|
workingDir { "build/pypkg" }
|
|
}
|
|
|
|
task configureInstallPyPackage {
|
|
dependsOn(configurations.pypkgInstall)
|
|
doLast {
|
|
def gdbPython = getGdbPython()
|
|
installPyPackage.commandLine gdbPython, "-m", "pip", "install", "--force-reinstall"
|
|
installPyPackage.args configurations.pypkgInstall.filter { f -> !f.name.endsWith(".jar") }
|
|
installPyPackage.args file("build/pypkg")
|
|
}
|
|
}
|
|
|
|
task installPyPackage(type: Exec) {
|
|
dependsOn(configureInstallPyPackage)
|
|
inputs.files(assemblePyPackage)
|
|
}
|
|
|
|
task phonyJarPyPackage(type: Jar) {
|
|
dependsOn(assemblePyPackage)
|
|
}
|
|
|
|
afterEvaluate {
|
|
artifacts {
|
|
pypkgInstall file("build/pypkg")
|
|
pypkgInstall phonyJarPyPackage
|
|
}
|
|
}
|