Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions Ghidra/Test/DebuggerIntegrationTest/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ dependencies {
def ghidraPath = projectDir.getParentFile().getParentFile().path.replace(File.separator, "/") + "/";

rootProject.subprojects { p ->
p.plugins.withType(JavaPlugin) {
def projectPath = p.projectDir.path.replace(File.separator, "/")
if (projectPath.startsWith(ghidraPath) && (
projectPath.contains("/Framework/") ||
projectPath.contains("/Features/") ||
projectPath.contains("/Debug/") ||
projectPath.contains("/Processors/"))) {

api p
}
}
def projectPath = p.projectDir.path.replace(File.separator, "/")
if (projectPath.startsWith(ghidraPath) && (
projectPath.contains("/Framework/") ||
projectPath.contains("/Features/") ||
projectPath.contains("/Debug/") ||
projectPath.contains("/Processors/"))) {

evaluationDependsOn(p.path)

api p
}
}

// some tests use classes in Base, FunctionGraph and PDB
Expand Down
10 changes: 8 additions & 2 deletions GhidraBuild/BuildFiles/Doclets/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ dependencies {
api "com.google.code.gson:gson:2.9.0"
}

rootProject.createJsondocs.dependsOn jar
rootProject.createPythonTypeStubs.dependsOn jar
def jsonTask = rootProject.tasks.findByName("createJsondocs") ?: rootProject.tasks.findByName("createJsonDocs")
if (jsonTask != null) {
jsonTask.dependsOn(jar)
}

def stubTask = rootProject.tasks.findByName("createPythonTypeStubs")
if (stubTask != null) {
stubTask.dependsOn(jar)
}
11 changes: 11 additions & 0 deletions GhidraBuild/MarkdownSupport/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,14 @@ dependencies {
implementation 'org.commonmark:commonmark-ext-footnotes:0.23.0'
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.23.0'
}

project.afterEvaluate {
rootProject.ext.mdDeps.clear()
configurations.runtimeClasspath.resolve().each { File f ->
rootProject.ext.mdDeps.add(f.getAbsolutePath())
}

sourceSets.main.output.files.each { File f ->
rootProject.ext.mdDeps.add(f.getAbsolutePath())
}
}
20 changes: 20 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,26 @@ else {
}
}

/*********************************************************************************
* Force all project compile classpaths to be resolved at configuration time.
*********************************************************************************/
allprojects {
afterEvaluate {
configurations.matching { it.name.endsWith("compileClasspath") }.all { cfg ->
if (cfg.canBeResolved) {
try {
cfg.files // trigger resolution safely now
} catch (ignored) { }
}
}
}
}

/*********************************************************************************
* Store :MarkdownSupport ClassPath to fix issues with Gradle 9.
*********************************************************************************/
ext.mdDeps = []

/*********************************************************************************
* Imports
* For these tasks to be available on all subprojects, this MUST be placed
Expand Down
29 changes: 14 additions & 15 deletions gradle/helpProject.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -287,28 +287,27 @@ tasks.register('indexHelp', JavaExec) {
// Task for building Markdown in src/global/docs to HTML
// - the files generated will be placed in a build directory usable during development mode
tasks.register('buildGlobalMarkdown') {
group = "private"
group = "private"
dependsOn ':MarkdownSupport:classes'

FileTree markdownFiles = this.project.fileTree('src/global/docs') {
include '*.md'
}

onlyIf ("There are no markdown files") { !markdownFiles.isEmpty() }

inputs.files markdownFiles

inputs.files markdownFiles

def markdownProject = project(':MarkdownSupport')

doFirst {
doLast {
markdownFiles.each { f ->
def htmlName = f.name[0..-3] + "html"
providers.javaexec {
classpath = markdownProject.sourceSets.main.runtimeClasspath
mainClass = 'ghidra.markdown.MarkdownToHtml'
args f
args file("build/src/global/docs/${htmlName}")
}.result.get()
def htmlFile = "build/src/global/docs/" + f.name[0..-3] + "html"
[
'java',
'-cp', project.files(rootProject.ext.mdDeps).asPath,
'ghidra.markdown.MarkdownToHtml',
f,
file(htmlFile)
].execute()
}
}
}
Expand Down
28 changes: 14 additions & 14 deletions gradle/root/distribution.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -540,29 +540,29 @@ task assembleSource (type: Copy) {

/************************************************************************************
*
* Copies a markdown file and a generaterated html file into the distribution folder.
* Copies markdown files and generaterate html files into the distribution folder.
*
************************************************************************************/
task assembleMarkdownToHtml (type: Copy) {
group = 'private'
description = "Copies a markdown file and a generaterated html file into the distribution folder"
description = "Copies markdown files and generaterate html files into the distribution folder"

dependsOn ':MarkdownSupport:classes'
outputs.upToDateWhen {false}
destinationDir = file(DISTRIBUTION_DIR.getPath() + "/" + ZIP_DIR_PREFIX)

def markdownSuppportProject = project(':MarkdownSupport')

eachFile { f ->
def htmlName = f.sourceName[0..-3] + "html"
def htmlPath = f.relativePath.replaceLastName(htmlName).pathString

providers.javaexec {
classpath = markdownSuppportProject.sourceSets.main.runtimeClasspath
mainClass = 'ghidra.markdown.MarkdownToHtml'
args f.file
args file("${destinationDir.path}/${htmlPath}")
}.result.get()
doLast {
eachFile { f ->
def htmlName = f.sourceName[0..-3] + "html"
def htmlPath = f.relativePath.replaceLastName(htmlName).pathString
[
'java',
'-cp', project.files(rootProject.ext.mdDeps).asPath,
'ghidra.markdown.MarkdownToHtml',
f.file,
file("${destinationDir.path}/${htmlPath}")
].execute()
}
}
}

Expand Down