/* * Copyright (c) 2021 William Hubbard. All Rights Reserved. * * This module contains a program separate from both the browser and the interface. Firefox's native messaging API can * only start a process, it can't communicate with a process that is already running. That is where this module comes * in. The browser will start this module, and the interface will create a server over the localhost. When this program * is started, it connects to that server. It will then relay messages between the browser and interface, translating * between JSON and serialized Java objects as needed. */ plugins { id 'java' id 'application' // id 'regis.browser-addon' } configurations { /** * The native build artifact is used by the addon build process to ensure that it knows where the executable can be * found. This is because the addon needs to have the executable registered on install. */ nativeBuild { canBeConsumed = true canBeResolved = false } /** * The install configuration is used for when we are packaging up the intermediary program. */ install { canBeConsumed = true canBeResolved = false } } // In this section you declare where to find the dependencies of your project repositories { mavenCentral() flatDir { dirs new File(rootDir, 'libs') } } // In this section you declare the dependencies for your production and test code dependencies { implementation 'org.slf4j:slf4j-api:1.7.30' implementation 'org.apache.logging.log4j:log4j-api:2.13.3' implementation 'org.apache.logging.log4j:log4j-core:2.13.3' implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.13.3' implementation 'com.google.code.gson:gson:2.8.7' implementation 'net.harawata:appdirs:1.2.1' implementation project(":browserCommands") // Declare the dependency for your favourite test framework you want to use in your tests. // TestNG is also supported by the Gradle Test task. Just change the // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add // 'test.useTestNG()' to your build script. testImplementation 'junit:junit:4.12' } // Define the main class for the application mainClassName = defaultPackage + '.addon.Main' artifacts { nativeBuild(installDist.destinationDir) { builtBy installDist } install(distTar) } processResources { filesMatching("**/log4j2.xml") { expand(rootProject.properties) } }