mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-02-16 15:40:14 +00:00
81 lines
3.2 KiB
Groovy
81 lines
3.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/distributableGhidraModule.gradle"
|
|
apply from: "$rootProject.projectDir/gradle/javaProject.gradle"
|
|
apply from: "$rootProject.projectDir/gradle/helpProject.gradle"
|
|
apply from: "$rootProject.projectDir/gradle/jacocoProject.gradle"
|
|
apply from: "$rootProject.projectDir/gradle/javaTestProject.gradle"
|
|
apply from: "$rootProject.projectDir/gradle/javadoc.gradle"
|
|
apply from: "${rootProject.projectDir}/gradle/hasPythonPackage.gradle"
|
|
apply plugin: 'eclipse'
|
|
|
|
eclipse.project.name = 'Features PyGhidra'
|
|
|
|
|
|
dependencies {
|
|
api project(':Base')
|
|
}
|
|
|
|
|
|
// NOTE: The Python package is a "Pure Python" package. Building the wheel does not
|
|
// require any dependencies except setuptools. Installing the wheel will require
|
|
// the correct os/python version of Jpype and packaging. Installing the wheel does
|
|
// not require Ghidra.
|
|
distributePyDep("JPype1-1.5.0-cp310-cp310-macosx_10_9_universal2.whl")
|
|
distributePyDep("JPype1-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp310-cp310-win_amd64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp311-cp311-macosx_10_9_universal2.whl")
|
|
distributePyDep("JPype1-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp311-cp311-win_amd64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp312-cp312-macosx_10_9_universal2.whl")
|
|
distributePyDep("JPype1-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp312-cp312-win_amd64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl")
|
|
distributePyDep("JPype1-1.5.0-cp39-cp39-win_amd64.whl")
|
|
distributePyDep("packaging-23.2-py3-none-any.whl")
|
|
distributePyDep("setuptools-68.0.0-py3-none-any.whl")
|
|
distributePyDep("wheel-0.37.1-py2.py3-none-any.whl")
|
|
|
|
// Install JPype into the development virtual environment
|
|
task installJPype(type: Exec) {
|
|
dependsOn(":createPythonVirtualEnvironment")
|
|
|
|
File depsDir = file("${DEPS_DIR}/PyGhidra")
|
|
File binRepoDir = file("${BIN_REPO}/ExternalPyWheels")
|
|
def dir = depsDir.exists() ? depsDir : binRepoDir
|
|
|
|
doFirst {
|
|
commandLine "$PYTHON3_VENV", "-m", "pip", "install", "--no-index", "-f", "$dir", "JPype1"
|
|
}
|
|
}
|
|
|
|
// Install PyGhidra in editable mode to the development virtual environment
|
|
task installEditablePyGhidra(type: Exec) {
|
|
dependsOn("installJPype")
|
|
|
|
File depsDir = file("${DEPS_DIR}/PyGhidra")
|
|
File binRepoDir = file("${BIN_REPO}/ExternalPyWheels")
|
|
def dir = depsDir.exists() ? depsDir : binRepoDir
|
|
|
|
doFirst {
|
|
commandLine "$PYTHON3_VENV", "-m", "pip", "install", "-e", "src/main/py", "--no-index", "-f", "$dir"
|
|
}
|
|
}
|
|
|
|
if (findPython3(false)) {
|
|
rootProject.prepDev.dependsOn installEditablePyGhidra
|
|
}
|