From bccee567ef15b3e84ad692878d18b1f2f9689cd0 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Fri, 17 May 2024 11:43:01 -0400 Subject: [PATCH] GP-0 Corrected dbgmodel.tlb handling for multi-platform build --- .../Debug/Debugger-agent-dbgeng/build.gradle | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/build.gradle b/Ghidra/Debug/Debugger-agent-dbgeng/build.gradle index 6299b9b1b8..005ed11231 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/build.gradle +++ b/Ghidra/Debug/Debugger-agent-dbgeng/build.gradle @@ -36,13 +36,14 @@ dependencies { testImplementation project(path: ":Debugger-gadp", configuration: 'testArtifacts') } +ext.tlb = file("build/os/win_x86_64/dbgmodel.tlb") + if ("win_x86_64".equals(getCurrentPlatformName())) { String makeName = "win_x86_64DbgmodelTlbMake" task(type: Exec, makeName) { ext.tmpBatch = file("build/buildTlb.bat") ext.idl = file("src/main/py/src/ghidradbg/dbgmodel/DbgModel.idl") - ext.tlb = file("build/os/win_x86_64/dbgmodel.tlb") inputs.file(idl) outputs.file(tlb) @@ -69,13 +70,29 @@ if ("win_x86_64".equals(getCurrentPlatformName())) { } } } -else { +else if (file(tlb).exists()) { + // required for multi-platform build tasks.assemblePyPackage { - from(rootProject.BIN_REPO + '/' + getGhidraRelativePath(project) + "/os/win_x86_64/dbgmodel.tlb") { + from(tlb) { + println "Copying existing tlb build artifact: " + tlb into("src/ghidradbg/dbgmodel/tlb") } } } +else { + def prebuiltTlb = new File(rootProject.BIN_REPO + '/' + getGhidraRelativePath(project) + "/os/win_x86_64/dbgmodel.tlb") + if (prebuiltTlb.exists()) { + println "Copying prebuilt dbgmodel.tlb" + tasks.assemblePyPackage { + from(rootProject.BIN_REPO + '/' + getGhidraRelativePath(project) + "/os/win_x86_64/dbgmodel.tlb") { + into("src/ghidradbg/dbgmodel/tlb") + } + } + } + else { + println "WARNING: dbgmodel.tlb omitted from ghidradbg python package" + } +} distributePyDep("Pybag-2.2.10-py3-none-any.whl") distributePyDep("capstone-5.0.1-py3-none-win_amd64.whl")