mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Gradle Build
This adds gradle support for building wpilibj and wpilibc. At this point, both of these libraries should be fully ready to go. Gradle should give us a number of improvements, including less dependencies for getting building up and running, and MUCH faster build times. I'm noticing significantly faster build times already compared to Maven, with neither system building the plugins. The changes here should be pretty straight forward. The basic command for gradle is './gradlew'. This is the gradle wrapper, and it will find and download the correct gradle executable for your system. There is no need to install anything yourself. To see every task available, run './gradlew tasks'. The important tasks for us are listed under the WPILib header when the tasks command is run. To generate unit test binaries, the fRCUserProgramExecutable command will create the C++ tester, and the wpilibjIntegrationTestJar command will create the Java tester. The Jenkins deploy scripts have been modified to know the difference between maven generated and gradle generated jars with an environment variable. Creating the eclipse plugins still requires Maven, but gradle will handle calling it correctly and generating the proper dependencies for it. Create the plugins by calling ./gradlew eclipsePlugins. Jenkins can now be modified to support the new build system. Unit tests are run with ./gradlew test. Generating the integration tests uses the above two commands, and then process proceeds exactly as it did before. For publishing documentation, a new task has been created, ./gradlew publishDocs, which handles putting the documentation where Jenkins expects for publishing. Change-Id: I9a260d391984f98ef9170993efe933e4026161dc
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,6 +17,7 @@ wpilibj/wpilibJavaJNI/nivision/*_arm.ini
|
||||
wpilibj/wpilibJavaJNI/nivision/*.java
|
||||
wpilibj/wpilibJavaJNI/nivision/nivision_funcs.txt
|
||||
wpilibj/wpilibJavaJNI/nivision/imaqdx_funcs.txt
|
||||
doxygen.log
|
||||
|
||||
# Created by the jenkins test script
|
||||
test-reports
|
||||
|
||||
186
build.gradle
Normal file
186
build.gradle
Normal file
@@ -0,0 +1,186 @@
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
|
||||
// This regex matches either a Windows or Unix style file separator, then the lib part of the library,
|
||||
// then the name of the library itself, and finally the .so extension at the end. The name of the library
|
||||
// is in the libName capture group, which is extracted and used for the linker flags
|
||||
def libPattern = /.*((\\/|\\).*)+lib(?<libName>.+).so$/
|
||||
def niLibraryArgs = []
|
||||
def wpiLibraryArgs = []
|
||||
def niLibraryPath = file('ni-libraries').path
|
||||
|
||||
// The NI Library tree includes all non-wpi libraries, which is everything that doesn't have libwpi in the name
|
||||
def niLibraryTree = fileTree(niLibraryPath)
|
||||
niLibraryTree.include '*.so'
|
||||
niLibraryTree.exclude '*libwpi*.so'
|
||||
|
||||
// This adds all linker flags to the list of ni library linker flags
|
||||
niLibraryTree.each { lib ->
|
||||
def nameMatcher = (lib.path =~ libPattern)
|
||||
if (nameMatcher[0].size() > 1) {
|
||||
def name = nameMatcher.group('libName')
|
||||
niLibraryArgs << '-l' + name
|
||||
}
|
||||
}
|
||||
|
||||
// The WPI libraries are libraries in the ni-libraries folder that have libwpi in their names
|
||||
def wpiLibraryTree = fileTree(niLibraryPath)
|
||||
wpiLibraryTree.include '*libwpi*.so'
|
||||
|
||||
// This adds all linker flags to the list of wpi library linker flags
|
||||
wpiLibraryTree.each { lib ->
|
||||
def nameMatcher = (lib.path =~ libPattern)
|
||||
if (nameMatcher[0].size() > 1) {
|
||||
def name = nameMatcher[0][1]
|
||||
wpiLibraryArgs << '-l' + name
|
||||
}
|
||||
}
|
||||
|
||||
// Shells out to maven for generates the eclipse plugins.
|
||||
// TODO: Get gradle to build this natively, rather than relying on maven. A plugin exists to do this, called Wuff, but this needs more investigation
|
||||
// https://github.com/akhikhl/wuff
|
||||
task eclipsePlugins(type: Exec) {
|
||||
description = 'Executes the maven build of the eclipse plugins'
|
||||
group = 'WPILib'
|
||||
workingDir 'eclipse-plugins'
|
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
executable 'mvn.bat'
|
||||
} else {
|
||||
executable 'mvn'
|
||||
}
|
||||
args 'package'
|
||||
}
|
||||
|
||||
// Rather than a normal clean, which executes whenever the clean task is run, this must be manually invoked. This
|
||||
// is because the maven processes is very verbose and takes a long time, checking all of the eclipse repositories
|
||||
task cleanEclipsePlugins(type: Exec) {
|
||||
description = 'Cleans the maven build of the eclipse plugins'
|
||||
group = 'WPILib'
|
||||
workingDir 'eclipse-plugins'
|
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||
executable 'mvn.bat'
|
||||
} else {
|
||||
executable 'mvn'
|
||||
}
|
||||
args 'clean'
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'idea'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
}
|
||||
|
||||
// Disables doclint in java 8.
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
allprojects {
|
||||
tasks.withType(Javadoc) {
|
||||
options.addStringOption('Xdoclint:none', '-quiet')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure that all maven publishing routines are run before the maven process starts
|
||||
plugins.withType(MavenPublishPlugin).whenPluginAdded {
|
||||
eclipsePlugins.dependsOn publishToMavenLocal
|
||||
}
|
||||
|
||||
plugins.withType(CppPlugin).whenPluginAdded {
|
||||
model {
|
||||
buildTypes {
|
||||
debug
|
||||
}
|
||||
// Adds a custom toolchain for our compiler prefix and options
|
||||
toolChains {
|
||||
gcc(Gcc) {
|
||||
target('arm') {
|
||||
// We use a custom-built cross compiler with the prefix arm-frc-linux-gnueabi-<util name>
|
||||
// If this ever changes, the prefix will need to be changed here
|
||||
def compilerPrefix = 'arm-frc-linux-gnueabi-'
|
||||
cppCompiler.executable = compilerPrefix + cppCompiler.executable
|
||||
linker.executable = compilerPrefix + linker.executable
|
||||
assembler.executable = compilerPrefix + assembler.executable
|
||||
// Gradle auto-adds the -m32 argument to the linker and compiler. Our compiler only supports
|
||||
// arm, and doesn't understand this flag, so it is removed from both
|
||||
cppCompiler.withArguments { args ->
|
||||
args << '-std=c++1y' << '-Wformat=2' << '-Wall' << '-Wextra' << '-Werror' << '-pedantic'
|
||||
args << '-Wno-psabi' << '-Wno-unused-parameter' << '-fPIC' << '-O0' << '-g3' << '-rdynamic'
|
||||
args.remove('-m32')
|
||||
}
|
||||
linker.withArguments { args ->
|
||||
args << '-rdynamic'
|
||||
args.remove('-m32')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The only platform is arm linux
|
||||
platforms {
|
||||
arm {
|
||||
architecture 'arm'
|
||||
operatingSystem 'linux'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This task adds the appropriate linker flags for the NI libraries
|
||||
task addNiLibraryLinks() {
|
||||
description = 'Adds the linker flags for the NI libraries in the ni-library folders'
|
||||
group = 'WPILib'
|
||||
doLast {
|
||||
binaries.all {
|
||||
tasks.withType(CppCompile) {
|
||||
linker.args << '-L' + niLibraryPath
|
||||
linker.args.addAll(niLibraryArgs)
|
||||
}
|
||||
}
|
||||
model {
|
||||
repositories {
|
||||
libs(PrebuiltLibraries) { libs ->
|
||||
// Loops through all .so files (except files matching *libwpi*.so) in ../ni-libraries
|
||||
// and includes them for linking
|
||||
niLibraryTree.each { niLib ->
|
||||
libs.create(niLib) {
|
||||
binaries.withType(SharedLibraryBinary) {
|
||||
sharedLibraryFile = file(niLib.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This task adds the appropriate linker flags for the WPI libraries
|
||||
task addWpiLibraryLinks() {
|
||||
description = 'Adds the linker flags for the WPI libraries in the ni-library folders'
|
||||
group = 'WPILib'
|
||||
doLast {
|
||||
binaries.all {
|
||||
linker.args.addAll(wpiLibraryArgs)
|
||||
}
|
||||
model {
|
||||
repositories {
|
||||
libs(PrebuiltLibraries) { libs ->
|
||||
// Loops through all libwpi*.so files in ../ni-libraries and includes them for linking
|
||||
wpiLibraryTree.each { niLib ->
|
||||
libs.create(niLib) {
|
||||
binaries.withType(SharedLibraryBinary) {
|
||||
sharedLibraryFile = file(niLib.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Whenever we add the WPI library links, we'll also need the ni libraries, so set up that dependency
|
||||
addWpiLibraryLinks.dependsOn addNiLibraryLinks
|
||||
}
|
||||
}
|
||||
|
||||
4
driver-station/build.gradle
Normal file
4
driver-station/build.gradle
Normal file
@@ -0,0 +1,4 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'application'
|
||||
|
||||
mainClassName = 'edu.wpi.first.driverstation.DriverStation'
|
||||
@@ -1,15 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.core.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.core.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,232 +1,233 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.core</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.core</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<tools-zip>${project.build.directory}/tools-zip</tools-zip>
|
||||
</properties>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>WPILib Maven Repository</id>
|
||||
<url>http://first.wpi.edu/FRC/roborio/maven/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<tools-zip>${project.build.directory}/tools-zip</tools-zip>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-tools-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/tools-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
|
||||
<!-- Fetch the dependencies needed to build the jar.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>RobotBuilder</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>RobotBuilder.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>SmartDashboard</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>SmartDashboard.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>sfx</artifactId>
|
||||
<type>zip</type>
|
||||
<classifier>zip</classifier>
|
||||
<outputDirectory>${tools-zip}/../</outputDirectory>
|
||||
<destFileName>sfx.zip</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables</groupId>
|
||||
<artifactId>OutlineViewer</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>OutlineViewer.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>java-installer</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>java-installer.jar</destFileName>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>WPILib Maven Repository</id>
|
||||
<url>http://first.wpi.edu/FRC/roborio/maven/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-jar-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${tools-zip}/../sfx.zip" dest="${tools-zip}"/>
|
||||
<zip destfile="${project.build.directory}/classes/resources/tools.zip"
|
||||
basedir="${tools-zip}"
|
||||
update="true" />
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-dependency-plugin
|
||||
</artifactId>
|
||||
<versionRange>[2.8,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore/>
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-tools-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/tools-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
|
||||
<dependencies>
|
||||
<!-- Add fake dependencies to inform Maven of the correct
|
||||
order it should build projects in during a multi-module build.
|
||||
|
||||
This list should match the list in the invocation of
|
||||
maven-dependency-plugin:copy above.
|
||||
|
||||
It may be possible to avoid this duplication by using the
|
||||
maven-assembly-plugin instead.-->
|
||||
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>RobotBuilder</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>SmartDashboard</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>sfx</artifactId>
|
||||
<type>zip</type>
|
||||
<version>LATEST</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables</groupId>
|
||||
<artifactId>OutlineViewer</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<!-- Fetch the dependencies needed to build the jar.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>RobotBuilder</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>RobotBuilder.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>SmartDashboard</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>SmartDashboard.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>sfx</artifactId>
|
||||
<type>zip</type>
|
||||
<classifier>zip</classifier>
|
||||
<outputDirectory>${tools-zip}/../</outputDirectory>
|
||||
<destFileName>sfx.zip</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables</groupId>
|
||||
<artifactId>OutlineViewer</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>OutlineViewer.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>java-installer</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<outputDirectory>${tools-zip}</outputDirectory>
|
||||
<destFileName>java-installer.jar</destFileName>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-jar-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${tools-zip}/../sfx.zip" dest="${tools-zip}"/>
|
||||
<zip destfile="${project.build.directory}/classes/resources/tools.zip"
|
||||
basedir="${tools-zip}"
|
||||
update="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-dependency-plugin
|
||||
</artifactId>
|
||||
<versionRange>[2.8,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore/>
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Add fake dependencies to inform Maven of the correct
|
||||
order it should build projects in during a multi-module build.
|
||||
|
||||
This list should match the list in the invocation of
|
||||
maven-dependency-plugin:copy above.
|
||||
|
||||
It may be possible to avoid this duplication by using the
|
||||
maven-assembly-plugin instead.-->
|
||||
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>RobotBuilder</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>SmartDashboard</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib</groupId>
|
||||
<artifactId>sfx</artifactId>
|
||||
<type>zip</type>
|
||||
<version>LATEST</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables</groupId>
|
||||
<artifactId>OutlineViewer</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.cpp.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.cpp.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,210 +1,212 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.cpp</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<cpp-zip>${project.build.directory}/cpp-zip</cpp-zip>
|
||||
</properties>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-cpp-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${cpp-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/cpp-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
<!-- Fetch the dependencies needed to build the cpp.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-cpp-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.cmake</groupId>
|
||||
<artifactId>cpp-root</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<type>zip</type>
|
||||
<destFileName>cpp-root.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibc.simulation</groupId>
|
||||
<artifactId>WPILibCSim</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<type>zip</type>
|
||||
<destFileName>sim-include.zip</destFileName>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
<prependGroupId>true</prependGroupId>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.cpp</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<cpp-zip>${project.build.directory}/cpp-zip</cpp-zip>
|
||||
</properties>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-cpp-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${cpp-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/cpp-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
<!-- Fetch the dependencies needed to build the cpp.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-cpp-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.cmake</groupId>
|
||||
<artifactId>cpp-root</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<type>zip</type>
|
||||
<destFileName>cpp-root.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibc.simulation</groupId>
|
||||
<artifactId>WPILibCSim</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<type>zip</type>
|
||||
<destFileName>sim-include.zip</destFileName>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
<prependGroupId>true</prependGroupId>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Simulation -->
|
||||
<execution>
|
||||
<id>fetch-sim-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${cpp-zip}/sim/lib</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput-platform</artifactId>
|
||||
<version>2.0.5</version>
|
||||
<classifier>natives-linux</classifier>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<id>fetch-sim-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${cpp-zip}/sim/lib</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj.simulation</groupId>
|
||||
<artifactId>SimDS</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<destFileName>SimDS.jar</destFileName>
|
||||
<outputDirectory>${cpp-zip}/sim/tools</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput-platform</artifactId>
|
||||
<version>2.0.5</version>
|
||||
<classifier>natives-linux</classifier>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj.simulation</groupId>
|
||||
<artifactId>SimDS</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<destFileName>SimDS.jar</destFileName>
|
||||
<outputDirectory>${cpp-zip}/sim/tools</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip the include files for cpp.zip. -->
|
||||
<execution>
|
||||
<id>unzip-cpp-includes</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip dest="${cpp-zip}">
|
||||
<fileset dir="${project.build.directory}">
|
||||
<include name="cpp-root.jar"/>
|
||||
<include name="sim-include.zip"/>
|
||||
</fileset>
|
||||
</unzip>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip the include files for cpp.zip. -->
|
||||
<execution>
|
||||
<id>unzip-cpp-includes</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip dest="${cpp-zip}">
|
||||
<fileset dir="${project.build.directory}">
|
||||
<include name="cpp-root.jar"/>
|
||||
<include name="sim-include.zip"/>
|
||||
</fileset>
|
||||
</unzip>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip jinput *.so's -->
|
||||
<execution>
|
||||
<id>unzip-jinput-libs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${cpp-zip}/sim/lib/jinput-platform-2.0.5-natives-linux.jar"
|
||||
dest="${cpp-zip}/sim/lib"
|
||||
overwrite="true" />
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-cpp-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<zip destfile="${project.build.directory}/classes/resources/cpp.zip" basedir="${cpp-zip}" update="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.cmake</groupId>
|
||||
<artifactId>cpp-root</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibc.simulation</groupId>
|
||||
<artifactId>WPILibCSim</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<execution>
|
||||
<id>unzip-jinput-libs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${cpp-zip}/sim/lib/jinput-platform-2.0.5-natives-linux.jar"
|
||||
dest="${cpp-zip}/sim/lib"
|
||||
overwrite="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-cpp-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<zip destfile="${project.build.directory}/classes/resources/cpp.zip"
|
||||
basedir="${cpp-zip}" update="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.cmake</groupId>
|
||||
<artifactId>cpp-root</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibc.simulation</groupId>
|
||||
<artifactId>WPILibCSim</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.java.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.java.feature</artifactId>
|
||||
<packaging>eclipse-feature</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,383 +1,378 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.java</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.java</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<java-zip>${project.build.directory}/java-zip</java-zip>
|
||||
</properties>
|
||||
<properties>
|
||||
<build-number>DEVELOPMENT</build-number>
|
||||
<java-zip>${project.build.directory}/java-zip</java-zip>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-java-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${java-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/java-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
|
||||
<!-- Fetch the dependencies needed to build the jar.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<!-- Libraries needed to link against for WPILib on the Athena -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<destFileName>NetworkTables.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<destFileName>WPILib.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
</artifactItem>
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
<destFileName>NetworkTables-sources.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
<destFileName>WPILib-sources.jar</destFileName>
|
||||
</artifactItem>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>.</directory>
|
||||
<includes>
|
||||
<include>resources/configuration.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-ant-resources-to-java-zip</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${java-zip}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/java-zip</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<executions>
|
||||
|
||||
<!-- Javadoc -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>javadoc</type>
|
||||
<outputDirectory>${java-zip}/javadoc-jar</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
<!-- Fetch the dependencies needed to build the jar.zip file. -->
|
||||
<execution>
|
||||
<id>fetch-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<!-- Libraries needed to link against for WPILib on the Athena -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<destFileName>NetworkTables.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<destFileName>WPILib.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
</artifactItem>
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
<destFileName>NetworkTables-sources.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
<outputDirectory>${java-zip}/lib</outputDirectory>
|
||||
<destFileName>WPILib-sources.jar</destFileName>
|
||||
</artifactItem>
|
||||
|
||||
<!-- Simulation -->
|
||||
<execution>
|
||||
<id>fetch-sim-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${java-zip}/sim/lib</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.gazebosim</groupId>
|
||||
<artifactId>JavaGazebo</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJava</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaSim</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</artifactItem>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput</artifactId>
|
||||
<version>2.0.5</version>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput-platform</artifactId>
|
||||
<version>2.0.5</version>
|
||||
<classifier>natives-linux</classifier>
|
||||
<!-- Javadoc -->
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>javadoc</type>
|
||||
<outputDirectory>${java-zip}/javadoc-jar</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Simulation -->
|
||||
<execution>
|
||||
<id>fetch-sim-jar-zip-dependencies</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${java-zip}/sim/lib</outputDirectory>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.gazebosim</groupId>
|
||||
<artifactId>JavaGazebo</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaSim</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</artifactItem>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput</artifactId>
|
||||
<version>2.0.5</version>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jinput</groupId>
|
||||
<artifactId>jinput-platform</artifactId>
|
||||
<version>2.0.5</version>
|
||||
<classifier>natives-linux</classifier>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jutils</groupId>
|
||||
<artifactId>jutils</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</artifactItem>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>2.5.0</version>
|
||||
</artifactItem>
|
||||
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj.simulation</groupId>
|
||||
<artifactId>SimDS</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<destFileName>SimDS.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/sim/tools</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip the javadocs files for java.zip. -->
|
||||
<execution>
|
||||
<id>unzip-javadocs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip dest="${java-zip}/javadoc">
|
||||
<fileset dir="${java-zip}/javadoc-jar">
|
||||
<include name="*.jar"/>
|
||||
</fileset>
|
||||
</unzip>
|
||||
<delete dir="${java-zip}/javadoc-jar"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip jinput *.so's -->
|
||||
<execution>
|
||||
<id>unzip-jinput-libs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${java-zip}/sim/lib/jinput-platform-2.0.5-natives-linux.jar"
|
||||
dest="${java-zip}/sim/lib"
|
||||
overwrite="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-jar-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<zip destfile="${project.build.directory}/classes/resources/java.zip"
|
||||
basedir="${java-zip}"
|
||||
update="true"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-dependency-plugin
|
||||
</artifactId>
|
||||
<versionRange>[2.8,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore/>
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Add fake dependencies to inform Maven of the correct
|
||||
order it should build projects in during a multi-module build.
|
||||
|
||||
This list should match the list in the invocation of
|
||||
maven-dependency-plugin:copy above.
|
||||
|
||||
It may be possible to avoid this duplication by using the
|
||||
maven-assembly-plugin instead.-->
|
||||
<!-- Libraries needed to link against for WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaSim</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<!-- dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<type>jar</type>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>net.java.jutils</groupId>
|
||||
<artifactId>jutils</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</artifactItem>
|
||||
</dependency-->
|
||||
<!-- dependency>
|
||||
<groupId>com.nativelibs4java</groupId>
|
||||
<artifactId>jnaerator-runtime</artifactId>
|
||||
<version>0.12-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency-->
|
||||
|
||||
<artifactItem>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>2.5.0</version>
|
||||
</artifactItem>
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<!--<dependency>-->
|
||||
<!--<groupId>edu.wpi.first.wpilibj</groupId>-->
|
||||
<!--<artifactId>wpilibJava</artifactId>-->
|
||||
<!--<version>0.1.0-SNAPSHOT</version>-->
|
||||
<!--</dependency>-->
|
||||
<!--<dependency>-->
|
||||
<!--<groupId>edu.wpi.first.wpilibj</groupId>-->
|
||||
<!--<artifactId>wpilibJavaDevices</artifactId>-->
|
||||
<!--<version>0.1.0-SNAPSHOT</version>-->
|
||||
<!--</dependency>-->
|
||||
|
||||
<artifactItem>
|
||||
<groupId>edu.wpi.first.wpilibj.simulation</groupId>
|
||||
<artifactId>SimDS</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<destFileName>SimDS.jar</destFileName>
|
||||
<outputDirectory>${java-zip}/sim/tools</outputDirectory>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
|
||||
<!-- Set time stamp and version properties. -->
|
||||
<execution>
|
||||
<id>set-version-info</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<tstamp>
|
||||
<format property="timestamp" pattern="yyyy/MM/dd HH:mm:ss z"/>
|
||||
</tstamp>
|
||||
<tstamp>
|
||||
<format property="version-info" pattern="yyyy.MM.dd.HH.mm.ss"/>
|
||||
</tstamp>
|
||||
<property name="version" value="${version-info}.${build-number}"/>
|
||||
</target>
|
||||
<exportAntProperties>true</exportAntProperties>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip the javadocs files for java.zip. -->
|
||||
<execution>
|
||||
<id>unzip-javadocs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip dest="${java-zip}/javadoc">
|
||||
<fileset dir="${java-zip}/javadoc-jar">
|
||||
<include name="*.jar"/>
|
||||
</fileset>
|
||||
</unzip>
|
||||
<delete dir="${java-zip}/javadoc-jar"/>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Unzip jinput *.so's -->
|
||||
<execution>
|
||||
<id>unzip-jinput-libs</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<unzip src="${java-zip}/sim/lib/jinput-platform-2.0.5-natives-linux.jar"
|
||||
dest="${java-zip}/sim/lib"
|
||||
overwrite="true" />
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Generate zip file to unzip for the user. -->
|
||||
<execution>
|
||||
<id>generate-jar-zip</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<zip destfile="${project.build.directory}/classes/resources/java.zip"
|
||||
basedir="${java-zip}"
|
||||
update="true" />
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-dependency-plugin
|
||||
</artifactId>
|
||||
<versionRange>[2.8,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore/>
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Add fake dependencies to inform Maven of the correct
|
||||
order it should build projects in during a multi-module build.
|
||||
|
||||
This list should match the list in the invocation of
|
||||
maven-dependency-plugin:copy above.
|
||||
|
||||
It may be possible to avoid this duplication by using the
|
||||
maven-assembly-plugin instead.-->
|
||||
<!-- Libraries needed to link against for WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaSim</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaFinal</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<!-- dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>4.0.0</version>
|
||||
<type>jar</type>
|
||||
</dependency-->
|
||||
<!-- dependency>
|
||||
<groupId>com.nativelibs4java</groupId>
|
||||
<artifactId>jnaerator-runtime</artifactId>
|
||||
<version>0.12-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
</dependency-->
|
||||
|
||||
<!-- Library sources for debugging WPILib on the Athena -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilib.networktables.java</groupId>
|
||||
<artifactId>NetworkTables</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJava</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaDevices</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Javadoc -->
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJava</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>javadoc</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>edu.wpi.first.wpilibj</groupId>
|
||||
<artifactId>wpilibJavaDevices</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<type>javadoc</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<!-- Javadoc -->
|
||||
<!--<dependency>-->
|
||||
<!--<groupId>edu.wpi.first.wpilibj</groupId>-->
|
||||
<!--<artifactId>wpilibJava</artifactId>-->
|
||||
<!--<version>0.1.0-SNAPSHOT</version>-->
|
||||
<!--<type>javadoc</type>-->
|
||||
<!--</dependency>-->
|
||||
<!--<dependency>-->
|
||||
<!--<groupId>edu.wpi.first.wpilibj</groupId>-->
|
||||
<!--<artifactId>wpilibJavaDevices</artifactId>-->
|
||||
<!--<version>0.1.0-SNAPSHOT</version>-->
|
||||
<!--<type>javadoc</type>-->
|
||||
<!--</dependency>-->
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.riolog</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.riolog</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.updatesite</artifactId>
|
||||
<packaging>eclipse-update-site</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins.updatesite</artifactId>
|
||||
<packaging>eclipse-update-site</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<parent>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
</project>
|
||||
|
||||
@@ -1,98 +1,99 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<packaging>pom</packaging>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>edu.wpi.first.wpilib.plugins</groupId>
|
||||
<artifactId>edu.wpi.first.wpilib.plugins</artifactId>
|
||||
<version>0.1.0.qualifier</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
<module>edu.wpi.first.wpilib.plugins.core</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.core.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.cpp</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.cpp.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.java</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.java.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.riolog</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.updatesite</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<!-- local-repository>C:/Users/wpilibj-buildmaster/maven-repository</local-repository-->
|
||||
<tycho-version>0.21.0</tycho-version>
|
||||
</properties>
|
||||
<modules>
|
||||
<module>edu.wpi.first.wpilib.plugins.core</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.core.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.cpp</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.cpp.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.java</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.java.feature</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.riolog</module>
|
||||
<module>edu.wpi.first.wpilib.plugins.updatesite</module>
|
||||
</modules>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>juno</id>
|
||||
<layout>p2</layout>
|
||||
<url>http://download.eclipse.org/releases/luna</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>FRC Binaries</id>
|
||||
<url>http://first.wpi.edu/FRC/c/maven/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-maven-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<extensions>true</extensions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<properties>
|
||||
<!-- local-repository>C:/Users/wpilibj-buildmaster/maven-repository</local-repository-->
|
||||
<tycho-version>0.21.0</tycho-version>
|
||||
</properties>
|
||||
|
||||
<profiles>
|
||||
<!-- TODO: Sign the jars for verification. -->
|
||||
<!-- Currently disabled since eclipse runs out of memory verifying the -->
|
||||
<!-- signatures of the toolchains. -->
|
||||
<!-- <profile> -->
|
||||
<!-- <id>sign</id> -->
|
||||
<!-- <activation> -->
|
||||
<!-- <property> -->
|
||||
<!-- <name>jarsigner.alias</name> -->
|
||||
<!-- </property> -->
|
||||
<!-- </activation> -->
|
||||
<!-- <build> -->
|
||||
<!-- <plugins> -->
|
||||
<!-- <plugin> -->
|
||||
<!-- <groupId>org.apache.maven.plugins</groupId> -->
|
||||
<!-- <artifactId>maven-jarsigner-plugin</artifactId> -->
|
||||
<!-- <version>1.2</version> -->
|
||||
<!-- <executions> -->
|
||||
<!-- <execution> -->
|
||||
<!-- <id>sign</id> -->
|
||||
<!-- <goals> -->
|
||||
<!-- <goal>sign</goal> -->
|
||||
<!-- </goals> -->
|
||||
<!-- </execution> -->
|
||||
<!-- </executions> -->
|
||||
<!-- </plugin> -->
|
||||
<!-- </plugins> -->
|
||||
<!-- </build> -->
|
||||
<!-- </profile> -->
|
||||
<profile>
|
||||
<id>docline-java8-disable</id>
|
||||
<activation>
|
||||
<jdk>[1.8,</jdk>
|
||||
</activation>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>juno</id>
|
||||
<layout>p2</layout>
|
||||
<url>http://download.eclipse.org/releases/luna</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>FRC Binaries</id>
|
||||
<url>http://first.wpi.edu/FRC/c/maven/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.tycho</groupId>
|
||||
<artifactId>tycho-maven-plugin</artifactId>
|
||||
<version>${tycho-version}</version>
|
||||
<extensions>true</extensions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</profiles>
|
||||
<profiles>
|
||||
<!-- TODO: Sign the jars for verification. -->
|
||||
<!-- Currently disabled since eclipse runs out of memory verifying the -->
|
||||
<!-- signatures of the toolchains. -->
|
||||
<!-- <profile> -->
|
||||
<!-- <id>sign</id> -->
|
||||
<!-- <activation> -->
|
||||
<!-- <property> -->
|
||||
<!-- <name>jarsigner.alias</name> -->
|
||||
<!-- </property> -->
|
||||
<!-- </activation> -->
|
||||
<!-- <build> -->
|
||||
<!-- <plugins> -->
|
||||
<!-- <plugin> -->
|
||||
<!-- <groupId>org.apache.maven.plugins</groupId> -->
|
||||
<!-- <artifactId>maven-jarsigner-plugin</artifactId> -->
|
||||
<!-- <version>1.2</version> -->
|
||||
<!-- <executions> -->
|
||||
<!-- <execution> -->
|
||||
<!-- <id>sign</id> -->
|
||||
<!-- <goals> -->
|
||||
<!-- <goal>sign</goal> -->
|
||||
<!-- </goals> -->
|
||||
<!-- </execution> -->
|
||||
<!-- </executions> -->
|
||||
<!-- </plugin> -->
|
||||
<!-- </plugins> -->
|
||||
<!-- </build> -->
|
||||
<!-- </profile> -->
|
||||
<profile>
|
||||
<id>docline-java8-disable</id>
|
||||
<activation>
|
||||
<jdk>[1.8,</jdk>
|
||||
</activation>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#Tue May 05 10:43:11 EDT 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
|
||||
164
gradlew
vendored
Executable file
164
gradlew
vendored
Executable file
@@ -0,0 +1,164 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||
if $cygwin ; then
|
||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >&-
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >&-
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
||||
90
gradlew.bat
vendored
Normal file
90
gradlew.bat
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
23
hal/build.gradle
Normal file
23
hal/build.gradle
Normal file
@@ -0,0 +1,23 @@
|
||||
apply plugin: 'cpp'
|
||||
|
||||
model {
|
||||
components {
|
||||
HALAthena(NativeLibrarySpec) {
|
||||
targetPlatform 'arm'
|
||||
tasks.withType(CppCompile) {
|
||||
dependsOn addNiLibraryLinks
|
||||
}
|
||||
sources {
|
||||
cpp {
|
||||
source {
|
||||
srcDirs = ["lib/Athena", "lib/Athena/FRC_FPGA_ChipObject"]
|
||||
includes = ["**/*.cpp"]
|
||||
}
|
||||
exportedHeaders {
|
||||
srcDirs = ["include", "lib/Athena", "lib/Athena/FRC_FPGA_ChipObject"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
31
jenkins/build.gradle
Normal file
31
jenkins/build.gradle
Normal file
@@ -0,0 +1,31 @@
|
||||
evaluationDependsOn(':wpilibj')
|
||||
evaluationDependsOn(':wpilibc')
|
||||
|
||||
task publishJavadoc(type: Copy) {
|
||||
description = 'Publishes the generated javadoc to the docs/site/java folder'
|
||||
group = 'WPILib'
|
||||
def javadoc = project(':wpilibj').javadoc
|
||||
dependsOn javadoc
|
||||
from javadoc.destinationDir
|
||||
destinationDir file('docs/site/java')
|
||||
}
|
||||
|
||||
task publishDoxygen(type: Copy) {
|
||||
description = 'Publishes the generated doxygen to the docs/site/cpp folder'
|
||||
group = 'WPILib'
|
||||
def doxygen = project(':wpilibc').doxygen
|
||||
dependsOn doxygen
|
||||
from doxygen.outputDir
|
||||
destinationDir file('docs/site/cpp')
|
||||
}
|
||||
|
||||
task publishDocs() {
|
||||
description = 'Publishes the generated javadoc and doxygen to the docs/site/<language> folder'
|
||||
group = 'WPILib'
|
||||
dependsOn publishJavadoc
|
||||
dependsOn publishDoxygen
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
delete 'docs/site'
|
||||
}
|
||||
@@ -1,24 +1,39 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'application'
|
||||
apply plugin: 'com.github.johnrengelman.shadow'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
group = "edu.wpi.frc.wpilib"
|
||||
version = "2.0"
|
||||
|
||||
sourceCompatibility = 1.7
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs = ["src"]
|
||||
}
|
||||
}
|
||||
buildscript {
|
||||
repositories { jcenter() }
|
||||
dependencies {
|
||||
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.1'
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
mainClassName = 'edu.wpi.first.tableviewer.TableViewer'
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
artifact(shadowJar) {
|
||||
classifier null
|
||||
}
|
||||
groupId 'edu.wpi.first.wpilib.networktables'
|
||||
artifactId 'OutlineViewer'
|
||||
version '1.0.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs = ["src"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile project(":java")
|
||||
compile project(":networktables:java")
|
||||
compile 'uk.gov.nationalarchives.thirdparty.netbeans:org-netbeans-swing-outline:7.2'
|
||||
}
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
apply plugin: 'cpp'
|
||||
|
||||
libraries {
|
||||
main {}
|
||||
model {
|
||||
components {
|
||||
NetworkTables(NativeLibrarySpec) {
|
||||
targetPlatform 'arm'
|
||||
sources {
|
||||
cpp {
|
||||
source {
|
||||
srcDirs = ["lib/share", "lib/Athena"]
|
||||
includes = ["**/*.cpp"]
|
||||
}
|
||||
exportedHeaders {
|
||||
srcDirs = ["include"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sources {
|
||||
main {
|
||||
cpp {
|
||||
source {
|
||||
srcDirs = ["lib/share", "lib/Athena"]
|
||||
// includes = "**/*.cpp"
|
||||
}
|
||||
exportedHeaders {
|
||||
srcDirs = ["include"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +1,68 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
group = "edu.wpi.frc.wpilib"
|
||||
version = "2.0"
|
||||
archivesBaseName = 'NetworkTables'
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
from components.java
|
||||
artifact (networktablesSource) {
|
||||
classifier = 'sources'
|
||||
}
|
||||
artifact (networktablesJavadoc) {
|
||||
classifier = 'javadoc'
|
||||
}
|
||||
|
||||
groupId 'edu.wpi.first.wpilib.networktables.java'
|
||||
artifactId 'NetworkTables'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
url "file://${System.properties['user.home']}/releases/maven"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs = ["src/main/java", "Athena/src/main/java"]
|
||||
}
|
||||
}
|
||||
test {
|
||||
java {
|
||||
srcDirs = ["Athena/src/test/java"]
|
||||
excludes = ["edu/wpi/first/wpilibj/networktables2/system/SystemTest.java"]
|
||||
}
|
||||
}
|
||||
main {
|
||||
java {
|
||||
srcDirs = ["src/main/java", "Athena/src/main/java"]
|
||||
}
|
||||
}
|
||||
test {
|
||||
java {
|
||||
srcDirs = ["src/test/java"]
|
||||
excludes = ["edu/wpi/first/wpilibj/networktables2/system/SystemTest.java"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task networktablesSource(type: Jar, dependsOn: classes) {
|
||||
description = 'Generates the source jar for NetworktTables java'
|
||||
group = 'WPILib'
|
||||
classifier = 'classes'
|
||||
from sourceSets.main.allJava
|
||||
}
|
||||
|
||||
task networktablesJavadoc(type: Jar, dependsOn: javadoc) {
|
||||
description = 'Generates the javadoc jar for NetworkTables java'
|
||||
group = 'WPILib'
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testCompile group: 'junit', name: 'junit', version: '4.+'
|
||||
testCompile group: 'org.jmock', name: 'jmock-junit4', version: '2.6.0'
|
||||
testCompile group: 'org.jmock', name: 'jmock-legacy', version: '2.6.0'
|
||||
testCompile group: 'junit', name: 'junit', version: '4.+'
|
||||
testCompile group: 'org.jmock', name: 'jmock-junit4', version: '2.6.0'
|
||||
testCompile group: 'org.jmock', name: 'jmock-legacy', version: '2.6.0'
|
||||
}
|
||||
|
||||
uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
repository(url: "file://localhost/tmp/myRepo/")
|
||||
pom.artifactId = 'networktables'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
include "java", "java-table-viewer"
|
||||
10
settings.gradle
Normal file
10
settings.gradle
Normal file
@@ -0,0 +1,10 @@
|
||||
include 'networktables:java',
|
||||
'networktables:cpp',
|
||||
'networktables:OutlineViewer',
|
||||
'hal',
|
||||
'wpilibj',
|
||||
'wpilibc',
|
||||
'simulation:JavaGazebo',
|
||||
'simulation:SimDS',
|
||||
'jenkins',
|
||||
'driver-station'
|
||||
17
simulation/JavaGazebo/build.gradle
Normal file
17
simulation/JavaGazebo/build.gradle
Normal file
@@ -0,0 +1,17 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
artifact jar
|
||||
groupId 'org.gazebosim'
|
||||
artifactId 'JavaGazebo'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.google.protobuf:protobuf-java:2.5.0'
|
||||
}
|
||||
53
simulation/SimDS/build.gradle
Normal file
53
simulation/SimDS/build.gradle
Normal file
@@ -0,0 +1,53 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'application'
|
||||
apply plugin: 'com.github.johnrengelman.shadow'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
// Adds the dependency for the shadow plugin, which creates an uberjar with all dependencies
|
||||
buildscript {
|
||||
repositories { jcenter() }
|
||||
dependencies {
|
||||
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.1'
|
||||
}
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
artifact(shadowJar) {
|
||||
// The shadow plugin has the 'all' classifier. We don't want this, so use null instead
|
||||
classifier null
|
||||
}
|
||||
artifact(simDsSources) {
|
||||
classifier 'sources'
|
||||
}
|
||||
artifact(simDsJavadoc) {
|
||||
classifier 'javadoc'
|
||||
}
|
||||
groupId 'edu.wpi.first.wpilibj.simulation'
|
||||
artifactId 'SimDS'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mainClassName = 'edu.wpi.first.wpilibj.simulation.ds.Main'
|
||||
|
||||
dependencies {
|
||||
compile 'net.java.jinput:jinput:2.0.5'
|
||||
compile project(':simulation:JavaGazebo')
|
||||
}
|
||||
|
||||
task simDsSources(type: Jar, dependsOn: classes) {
|
||||
description = 'Creates the sources jar for the SimDS'
|
||||
group = 'WPILib'
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allJava
|
||||
}
|
||||
|
||||
task simDsJavadoc(type: Jar, dependsOn: javadoc) {
|
||||
description = 'Creates the javadoc jar for the SimDS'
|
||||
group = 'WPILib'
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
@@ -10,7 +10,6 @@
|
||||
# so that test results are not commited to the repo
|
||||
DEFAULT_LOCAL_TEST_RESULTS_DIR=../test-reports
|
||||
|
||||
|
||||
ROBOT_ADDRESS=admin@roboRIO-190.local
|
||||
DEFAULT_LOCAL_RUN_TEST_SCRIPT="run-tests-on-robot.sh"
|
||||
|
||||
@@ -21,7 +20,12 @@ DEFAULT_DESTINATION_TEST_RESULTS_DIR=${DEFAULT_DESTINATION_DIR}/testResults
|
||||
# C++ test variables
|
||||
DEFAULT_CPP_TEST_NAME=FRCUserProgram
|
||||
DEFAULT_CPP_TEST_ARGS="--gtest_color=yes"
|
||||
DEFAULT_LOCAL_CPP_TEST_FILE=../cmake/target/cmake/wpilibc/wpilibC++IntegrationTests/FRCUserProgram
|
||||
if [ "$GRADLE" ]; then
|
||||
DEFAULT_LOCAL_CPP_TEST_FILE=../wpilibc/build/binaries/fRCUserProgramExecutable/FRCUserProgram
|
||||
else
|
||||
DEFAULT_LOCAL_CPP_TEST_FILE=../cmake/target/cmake/wpilibc/wpilibC++IntegrationTests/FRCUserProgram
|
||||
fi
|
||||
|
||||
CPP_REPORT=cppreport.xml
|
||||
DEFAULT_LOCAL_CPP_TEST_RESULT=${DEFAULT_LOCAL_TEST_RESULTS_DIR}/${CPP_REPORT}
|
||||
DEFAULT_DESTINATION_CPP_TEST_RESULTS=${DEFAULT_DESTINATION_TEST_RESULTS_DIR}/${CPP_REPORT}
|
||||
@@ -29,7 +33,13 @@ DEFAULT_DESTINATION_CPP_TEST_RESULTS=${DEFAULT_DESTINATION_TEST_RESULTS_DIR}/${C
|
||||
# Java test variables
|
||||
DEFAULT_JAVA_TEST_NAME=FRCUserProgram.jar
|
||||
DEFAULT_JAVA_TEST_ARGS=""
|
||||
DEFAULT_LOCAL_JAVA_TEST_FILE=../wpilibj/wpilibJavaIntegrationTests/target/wpilibJavaIntegrationTests-0.1.0-SNAPSHOT.jar
|
||||
|
||||
if [ "$GRADLE" ]; then
|
||||
DEFAULT_LOCAL_JAVA_TEST_FILE=../wpilibj/build/libs/wpilibJavaIntegrationTests-0.1.0-SNAPSHOT.jar
|
||||
else
|
||||
DEFAULT_LOCAL_JAVA_TEST_FILE=../wpilibj/wpilibJavaIntegrationTests/target/wpilibJavaIntegrationTests-0.1.0-SNAPSHOT.jar
|
||||
fi
|
||||
|
||||
JAVA_REPORT=javareport.xml
|
||||
DEFAULT_LOCAL_JAVA_TEST_RESULT=${DEFAULT_LOCAL_TEST_RESULTS_DIR}/${JAVA_REPORT}
|
||||
DEFAULT_DESTINATION_JAVA_TEST_RESULTS=${DEFAULT_DESTINATION_TEST_RESULTS_DIR}/AntReports/TEST-edu.wpi.first.wpilibj.test.TestSuite.xml
|
||||
|
||||
233
wpilibc/build.gradle
Normal file
233
wpilibc/build.gradle
Normal file
@@ -0,0 +1,233 @@
|
||||
apply plugin: 'cpp'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin : 'org.ysb33r.doxygen'
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'org.ysb33r.gradle:doxygen:0.2'
|
||||
}
|
||||
}
|
||||
|
||||
def shared = 'wpilibC++'
|
||||
def devices = 'wpilibC++Devices'
|
||||
def sim = 'wpilibC++Sim'
|
||||
|
||||
// Ensure that both hal and networktables are evaluated, so that they have the binaries property. We need this to
|
||||
// properly copy their archives into the final zip
|
||||
evaluationDependsOn(':hal')
|
||||
evaluationDependsOn(':networktables:cpp')
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
artifact wpilibcZip
|
||||
groupId 'edu.wpi.first.wpilib.cmake'
|
||||
artifactId 'cpp-root'
|
||||
version '1.0.0'
|
||||
}
|
||||
mavenSim(MavenPublication) {
|
||||
artifact wpilibcSimZip
|
||||
groupId 'edu.wpi.first.wpilibc.simulation'
|
||||
artifactId 'WPILibCSim'
|
||||
version '0.1.0'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
model {
|
||||
components {
|
||||
wpilib_nonshared(NativeLibrarySpec) {
|
||||
targetPlatform 'arm'
|
||||
binaries.all {
|
||||
tasks.withType(CppCompile) {
|
||||
dependsOn addNiLibraryLinks
|
||||
}
|
||||
}
|
||||
sources {
|
||||
cpp {
|
||||
source {
|
||||
srcDirs = ["${shared}/src", "${devices}/src"]
|
||||
includes = ['**/*.cpp']
|
||||
}
|
||||
exportedHeaders {
|
||||
srcDirs = ["${shared}/include", "${devices}/include"]
|
||||
includes = ['**/*.h']
|
||||
}
|
||||
lib project: ':hal', library: 'HALAthena', linkage: 'static'
|
||||
lib project: ':networktables:cpp', library: 'NetworkTables', linkage: 'static'
|
||||
}
|
||||
}
|
||||
}
|
||||
FRCUserProgram(NativeExecutableSpec) {
|
||||
targetPlatform 'arm'
|
||||
binaries.all {
|
||||
tasks.withType(CppCompile) {
|
||||
dependsOn addNiLibraryLinks
|
||||
}
|
||||
|
||||
cppCompiler.args '-pthread'
|
||||
linker.args '-pthread'
|
||||
cppCompiler.args '-Wno-unused-variable'
|
||||
linker.args '-Wno-unused-variable'
|
||||
linker.args '-Wl,-rpath,/opt/GenICam_v2_3/bin/Linux_armv7-a'
|
||||
}
|
||||
sources {
|
||||
cpp {
|
||||
def dir = 'wpilibC++IntegrationTests'
|
||||
source {
|
||||
srcDir "${dir}/src"
|
||||
include '*.cpp'
|
||||
}
|
||||
source {
|
||||
srcDir "${dir}/src/gtest/src"
|
||||
include 'gtest-all.cc', 'gtest_main.cc'
|
||||
}
|
||||
exportedHeaders {
|
||||
srcDirs = ["${dir}/include", "${dir}/src/gtest", "${dir}/src/gtest/include", "${devices}/include", "${shared}/include", '../hal/include/HAL', '../networktables/cpp/include']
|
||||
include '**/*.h'
|
||||
}
|
||||
|
||||
lib library: 'wpilib_nonshared', linkage: 'static'
|
||||
lib project: ':networktables:cpp', library: 'NetworkTables', linkage: 'static'
|
||||
lib project: ':hal', library: 'HALAthena', linkage: 'static'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doxygen {
|
||||
source file("${shared}/src")
|
||||
source file("${shared}/include")
|
||||
source file("${devices}/src")
|
||||
source file("${devices}/include")
|
||||
def netTablesLoc = '../networktables/cpp'
|
||||
source file("${netTablesLoc}/include")
|
||||
source file("${netTablesLoc}/lib/Athena")
|
||||
source file("${netTablesLoc}/lib/share")
|
||||
template file('cpp.doxy')
|
||||
exclude 'pcre.h'
|
||||
exclude 'nivision.h'
|
||||
}
|
||||
|
||||
task wpilibcZip(type: Zip) {
|
||||
description = 'Zips all of the libraries for wpilibc'
|
||||
group = 'WPILib'
|
||||
baseName = 'wpilibc'
|
||||
destinationDir = project.buildDir
|
||||
|
||||
// If doxygen is available on this computer, then include the output zip
|
||||
if (checkDoxygen()) {
|
||||
from(doxygen.outputDir) {
|
||||
into 'docs'
|
||||
}
|
||||
}
|
||||
|
||||
// Include the static library file and header files from this project
|
||||
binaries.withType(StaticLibraryBinarySpec) { spec ->
|
||||
spec.headerDirs.each {
|
||||
from(it) {
|
||||
into 'include'
|
||||
}
|
||||
}
|
||||
from(spec.staticLibraryFile) {
|
||||
into 'libs'
|
||||
}
|
||||
}
|
||||
|
||||
// Include the static library file and header files from the networktables project
|
||||
def netTables = project(':networktables:cpp')
|
||||
netTables.binaries.withType(StaticLibraryBinarySpec) { spec ->
|
||||
spec.headerDirs.each {
|
||||
from(it) {
|
||||
into 'include'
|
||||
}
|
||||
}
|
||||
from(spec.staticLibraryFile) {
|
||||
into 'libs'
|
||||
}
|
||||
}
|
||||
|
||||
// Include the static library file and shared library object from hal project
|
||||
def hal = project(':hal')
|
||||
hal.binaries.withType(StaticLibraryBinarySpec) { spec ->
|
||||
spec.headerDirs.each {
|
||||
from(it) {
|
||||
into 'include'
|
||||
// We don't want to include any of the .cpp files that are in some of the header directories
|
||||
exclude '**/*.cpp'
|
||||
}
|
||||
}
|
||||
from(spec.staticLibraryFile) {
|
||||
into 'libs'
|
||||
}
|
||||
}
|
||||
hal.binaries.withType(SharedLibraryBinarySpec) { spec ->
|
||||
from(spec.sharedLibraryFile) {
|
||||
into 'libs'
|
||||
}
|
||||
}
|
||||
|
||||
// We rename the libHALAthena.so object to libHALAthena_shared.so
|
||||
rename('(libHALAthena)(.so)', '$1_shared$2')
|
||||
|
||||
// Finally, include all of the shared library objects from the ni directory
|
||||
from(project.file('../ni-libraries')) {
|
||||
into 'libs'
|
||||
exclude 'genlinks'
|
||||
}
|
||||
}
|
||||
|
||||
task wpilibcSimZip(type: Zip) {
|
||||
description 'Creates the include zip file for wpilibc'
|
||||
group 'wpilib'
|
||||
baseName 'WPILibCSim'
|
||||
destinationDir = project.buildDir
|
||||
into 'sim/include'
|
||||
from "${sim}/include"
|
||||
from "${shared}/include"
|
||||
from '../networktables/cpp/include'
|
||||
from '../hal/include'
|
||||
}
|
||||
|
||||
// Add the dependency on the wpilib_nonsharedStaticLibrary task to the wpilibc task. Because of the gradle lifecycle,
|
||||
// this cannot be done purely with dependsOn in the task, as the static library task doesn't exist yet. Same goes for
|
||||
// the networkTablesStaticLibrary task and the two HAL tasks below
|
||||
tasks.whenTaskAdded { task ->
|
||||
if (task.name == 'wpilib_nonsharedStaticLibrary') {
|
||||
wpilibcZip.dependsOn task
|
||||
}
|
||||
}
|
||||
|
||||
// Add the networktables static library as a dependency
|
||||
project(':networktables:cpp').tasks.whenTaskAdded { task ->
|
||||
if (task.name == 'networkTablesStaticLibrary') {
|
||||
wpilibcZip.dependsOn task
|
||||
}
|
||||
}
|
||||
|
||||
// Add the hal static and shared libraries as a dependency
|
||||
project(':hal').tasks.whenTaskAdded { task ->
|
||||
if (task.name == 'hALAthenaStaticLibrary' || task.name == 'hALAthenaSharedLibrary') {
|
||||
wpilibcZip.dependsOn task
|
||||
}
|
||||
}
|
||||
|
||||
// If doxygen exists on the command line, then add the doxygen task as dependency of the wpilibcZip task
|
||||
if (checkDoxygen()) {
|
||||
wpilibcZip.dependsOn doxygen
|
||||
}
|
||||
|
||||
// Attempts to execute the doxygen command. If there is no exception, doxygen exists, so return true. If there's
|
||||
// an IOException, it doesn't exist, so return false
|
||||
boolean checkDoxygen() {
|
||||
try {
|
||||
'doxygen'.execute()
|
||||
true
|
||||
} catch (IOException e) {
|
||||
false
|
||||
}
|
||||
}
|
||||
2303
wpilibc/cpp.doxy
Normal file
2303
wpilibc/cpp.doxy
Normal file
File diff suppressed because it is too large
Load Diff
279
wpilibj/build.gradle
Normal file
279
wpilibj/build.gradle
Normal file
@@ -0,0 +1,279 @@
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'cpp'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
// We need this so we can get the networktables javadoc for the javadoc task
|
||||
evaluationDependsOn(':networktables:java')
|
||||
|
||||
def jdkDownloadSite = 'http://www.oracle.com/technetwork/java/javase/downloads/jdk8-arm-downloads-2187472.html'
|
||||
def jdkFolder = 'jdk-linux-arm-vfp-sflt'
|
||||
def jdkVersion = 'jdk1.8.0_33'
|
||||
def jdkLocation = System.getProperty("user.home") + File.separator + jdkFolder + File.separator + jdkVersion
|
||||
def generatedJNIHeaderLoc = 'wpilibJavaJNI/build/include'
|
||||
|
||||
// Maven publishing configuration
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
artifact wpilibjJar
|
||||
artifact(wpilibjSources) {
|
||||
classifier 'sources'
|
||||
}
|
||||
artifact(wpilibjJavadoc) {
|
||||
classifier 'javadoc'
|
||||
}
|
||||
|
||||
groupId 'edu.wpi.first.wpilibj'
|
||||
artifactId 'wpilibJavaFinal'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
}
|
||||
mavenSim(MavenPublication) {
|
||||
artifact wpilibjSimJar
|
||||
artifact(wpilibjSimSources) {
|
||||
classifier 'sources'
|
||||
}
|
||||
artifact(wpilibjSimJavadoc) {
|
||||
classifier 'javadoc'
|
||||
}
|
||||
|
||||
groupId 'edu.wpi.first.wpilibj'
|
||||
artifactId 'wpilibJavaSim'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration for the HAL bindings
|
||||
model {
|
||||
components {
|
||||
wpilibJavaJNI(NativeLibrarySpec) {
|
||||
targetPlatform 'arm'
|
||||
binaries.all {
|
||||
tasks.withType(CppCompile) {
|
||||
dependsOn verifyJre
|
||||
dependsOn jniHeaders
|
||||
dependsOn addNiLibraryLinks
|
||||
}
|
||||
}
|
||||
sources {
|
||||
cpp {
|
||||
source {
|
||||
srcDirs = ['wpilibJavaJNI/lib']
|
||||
includes = ['**/*.cpp']
|
||||
}
|
||||
exportedHeaders {
|
||||
// JDK is included for jni.h. We also need the arm-linux specific headers. This does not need to change
|
||||
// when compiling on Windows
|
||||
// The JNI headers are put into the build/include directory by the jniHeaders task on wpilibJavaDevices
|
||||
def includeLocation = jdkLocation + File.separator + 'include'
|
||||
srcDirs = ["wpilibJavaJNI/include", includeLocation, includeLocation + File.separator + "linux"]
|
||||
jniHeaders.outputs.files.each { file ->
|
||||
srcDirs file.getPath()
|
||||
}
|
||||
}
|
||||
lib project: ':hal', library: 'HALAthena', linkage: 'static'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration for the Java project, which pulls sources from the wpilibJava and wpilibJavaDevices folders
|
||||
sourceSets {
|
||||
// This is the sourceset for RoboRIO-specific code
|
||||
main {
|
||||
java {
|
||||
srcDirs 'wpilibJavaDevices/src/main/java'
|
||||
}
|
||||
}
|
||||
// Unit tests. These run on any platform
|
||||
test {
|
||||
java {
|
||||
srcDirs 'wpilibJava/src/test/java', 'wpilibJavaDevices/src/test/java'
|
||||
}
|
||||
}
|
||||
// This is the shared code between the RoboRIO and simulation
|
||||
shared {
|
||||
java {
|
||||
srcDirs 'wpilibJava/src/main/java'
|
||||
}
|
||||
}
|
||||
// Integration tests run on the WPI test stand
|
||||
integrationTest {
|
||||
java {
|
||||
srcDirs 'wpilibJavaIntegrationTests/src/main/java', 'wpilibJavaIntegrationTests/src/test/java'
|
||||
}
|
||||
resources {
|
||||
srcDir 'wpilibJavaIntegrationTests/src/main/resources'
|
||||
}
|
||||
}
|
||||
// The simulation specific code
|
||||
simulation {
|
||||
java {
|
||||
srcDirs 'wpilibJavaSim/src/main/java'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile sourceSets.shared.output
|
||||
compile project(':networktables:java')
|
||||
testCompile 'junit:junit:4.11'
|
||||
sharedCompile project(':networktables:java')
|
||||
integrationTestCompile project(':networktables:java')
|
||||
integrationTestCompile 'junit:junit:4.11'
|
||||
integrationTestCompile sourceSets.main.output
|
||||
integrationTestCompile sourceSets.shared.output
|
||||
integrationTestCompile 'com.googlecode.junit-toolbox:junit-toolbox:2.0'
|
||||
integrationTestCompile 'org.apache.ant:ant:1.9.4'
|
||||
integrationTestCompile 'org.apache.ant:ant-junit:1.9.4'
|
||||
simulationCompile sourceSets.main.output
|
||||
simulationCompile sourceSets.shared.output
|
||||
simulationCompile project(':simulation:JavaGazebo')
|
||||
simulationCompile project(':networktables:java')
|
||||
}
|
||||
|
||||
task wpilibjJar(type: Jar) {
|
||||
description = 'Creates the WPILib Java jar, with the JNI shared library in the correct place'
|
||||
group = 'WPILib'
|
||||
dependsOn { wpilibJavaJNISharedLibrary }
|
||||
dependsOn { classes }
|
||||
from files(sourceSets.main.output.classesDir)
|
||||
from files(sourceSets.shared.output.classesDir)
|
||||
binaries.withType(SharedLibraryBinarySpec) {
|
||||
from(file(it.sharedLibraryFile)) {
|
||||
into 'linux-arm'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task wpilibjSources(type: Jar, dependsOn: classes) {
|
||||
description = 'Creates the sources jar for the maven publishing routine'
|
||||
group = 'WPILib'
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allJava
|
||||
from sourceSets.shared.allJava
|
||||
}
|
||||
|
||||
task javadoc(type: Javadoc, overwrite: true) {
|
||||
def netTables = project(':networktables:java')
|
||||
source sourceSets.main.allJava, sourceSets.shared.allJava, netTables.sourceSets.main.allJava
|
||||
classpath = files([sourceSets.main.compileClasspath, sourceSets.shared.compileClasspath, netTables.sourceSets.main.compileClasspath])
|
||||
}
|
||||
|
||||
task wpilibjJavadoc(type: Jar, dependsOn: javadoc) {
|
||||
description = 'Creates the javadoc jar for the maven publishing routine'
|
||||
group = 'WPILib'
|
||||
classifier = 'javadoc'
|
||||
from javadoc.destinationDir
|
||||
}
|
||||
|
||||
task wpilibjSimJar(type: Jar, dependsOn: simulationClasses) {
|
||||
description = 'Creates the WPILibJSimulation Jar'
|
||||
group = 'WPILib'
|
||||
from sourceSets.simulation.output.classesDir
|
||||
from sourceSets.shared.output.classesDir
|
||||
baseName 'wpilibjSimulation'
|
||||
}
|
||||
|
||||
task wpilibjSimSources(type: Jar, dependsOn: simulationClasses) {
|
||||
description = 'Creates the wpilibjSimulation sources jar for the maven publishing routine'
|
||||
group = 'WPILib'
|
||||
classifier = 'sources'
|
||||
from sourceSets.simulation.allJava
|
||||
from sourceSets.shared.allJava
|
||||
}
|
||||
|
||||
task simulationJavadoc(type: Javadoc) {
|
||||
description = 'Generates javadoc for the simulation components'
|
||||
group = 'WPILib'
|
||||
source sourceSets.simulation.allJava, sourceSets.shared.allJava
|
||||
classpath = files([sourceSets.simulation.compileClasspath, sourceSets.shared.compileClasspath])
|
||||
}
|
||||
|
||||
task wpilibjSimJavadoc(type: Jar, dependsOn: simulationJavadoc) {
|
||||
description = 'Creates the wpilibjSimulation javadoc jar for the maven publishing routine'
|
||||
group = 'WPILib'
|
||||
classifier = 'javadoc'
|
||||
from simulationJavadoc.destinationDir
|
||||
}
|
||||
|
||||
task wpilibjIntegrationTestJar(type: Jar) {
|
||||
description = 'Creates the wpilib integration tests jar'
|
||||
group = 'WPILib'
|
||||
dependsOn { wpilibJavaJNISharedLibrary }
|
||||
dependsOn { wpilibjJar }
|
||||
dependsOn { integrationTestClasses }
|
||||
from sourceSets.integrationTest.output.classesDir
|
||||
// Get all dependencies needed for running the jar
|
||||
configurations.integrationTestCompile.filter { it.getPath().endsWith('.jar') }.each {
|
||||
if (!it.isDirectory()) {
|
||||
from zipTree(it)
|
||||
}
|
||||
}
|
||||
wpilibjJar.outputs.files.each { from zipTree(it) }
|
||||
manifest {
|
||||
attributes 'Main-Class': 'edu.wpi.first.wpilibj.test.AntJunitLanucher'
|
||||
}
|
||||
baseName = 'wpilibJavaIntegrationTests'
|
||||
version = '0.1.0-SNAPSHOT'
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the JNI headers from the HAL package
|
||||
*/
|
||||
task jniHeaders {
|
||||
description = 'Generates JNI headers from edu.wpi.first.wpilibj.hal.*'
|
||||
group = 'WPILib'
|
||||
def outputFolder = file(generatedJNIHeaderLoc)
|
||||
inputs.files sourceSets.main.output
|
||||
outputs.file outputFolder
|
||||
doLast {
|
||||
outputFolder.mkdirs()
|
||||
exec {
|
||||
executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah')
|
||||
args '-d', outputFolder
|
||||
args '-classpath', sourceSets.main.output.classesDir
|
||||
args 'edu.wpi.first.wpilibj.can.CANJNI'
|
||||
args 'edu.wpi.first.wpilibj.communication.FRCNetworkCommunicationsLibrary'
|
||||
args 'edu.wpi.first.wpilibj.hal.HALUtil'
|
||||
args 'edu.wpi.first.wpilibj.hal.JNIWrapper'
|
||||
args 'edu.wpi.first.wpilibj.hal.AccelerometerJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.AnalogJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.CounterJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.DIOJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.EncoderJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.I2CJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.InterruptJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PWMJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.RelayJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SPIJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SolenoidJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.CompressorJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PDPJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PowerJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SerialPortJNI'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
clean {
|
||||
delete generatedJNIHeaderLoc
|
||||
}
|
||||
|
||||
// Ensures that the JNI headers have been downloaded and are in the correct location for generating the JNI build
|
||||
task verifyJre {
|
||||
description = 'Verifies that the ARM JDK is downloaded in the user directory'
|
||||
group = 'WPILib'
|
||||
def outputFolder = new File(jdkLocation)
|
||||
outputs.file outputFolder
|
||||
doLast {
|
||||
if (!outputFolder.exists() && !outputFolder.isDirectory()) {
|
||||
def errorMessage = 'The ARM JDK was not found. Please install the JDK in the following location:' +
|
||||
System.lineSeparator() + jdkLocation +
|
||||
System.lineSeparator() + 'You can download the JDK here:' +
|
||||
System.lineSeparator() + jdkDownloadSite
|
||||
throw new GradleException(errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
61
wpilibj/wpilibJavaDevices/build.gradle
Normal file
61
wpilibj/wpilibJavaDevices/build.gradle
Normal file
@@ -0,0 +1,61 @@
|
||||
apply plugin: 'java'
|
||||
|
||||
if (JavaVersion.current().isJava8Compatible()) {
|
||||
tasks.withType(Javadoc) {
|
||||
// disable the crazy super-strict doclint tool in Java 8
|
||||
//noinspection SpellCheckingInspection
|
||||
options.addStringOption('Xdoclint:none', '-quiet')
|
||||
}
|
||||
}
|
||||
|
||||
task jniHeaders {
|
||||
def outputFolder = new File('../wpilibJavaJNI/build/include')
|
||||
inputs.files sourceSets.main.output
|
||||
outputs.file outputFolder
|
||||
doLast {
|
||||
outputFolder.mkdirs()
|
||||
exec {
|
||||
executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah')
|
||||
args '-d', outputFolder
|
||||
args '-classpath', sourceSets.main.output.classesDir
|
||||
args 'edu.wpi.first.wpilibj.can.CANJNI'
|
||||
args 'edu.wpi.first.wpilibj.communication.FRCNetworkCommunicationsLibrary'
|
||||
args 'edu.wpi.first.wpilibj.hal.HALUtil'
|
||||
args 'edu.wpi.first.wpilibj.hal.JNIWrapper'
|
||||
args 'edu.wpi.first.wpilibj.hal.AccelerometerJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.AnalogJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.CounterJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.DIOJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.EncoderJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.I2CJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.InterruptJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PWMJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.RelayJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SPIJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SolenoidJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.CompressorJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PDPJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.PowerJNI'
|
||||
args 'edu.wpi.first.wpilibj.hal.SerialPortJNI'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jniHeaders.dependsOn classes
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
excludes = ['edu/wpi/first/wpilibj/camera/']
|
||||
}
|
||||
javadoc {
|
||||
excludes = ['edu/wpi/first/wpilibj/camera/']
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'junit:junit:4.11'
|
||||
compile project(':networktables:java')
|
||||
compile project(':wpilibj:wpilibJava')
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
# "handlers" specifies a comma separated list of log Handler
|
||||
# classes. These handlers will be installed during VM startup.
|
||||
# By default we only configure a ConsoleHandler, which will only
|
||||
# show messages at the INFO and above levels.
|
||||
handlers = java.util.logging.ConsoleHandler
|
||||
|
||||
|
||||
# Default global logging level.
|
||||
# This specifies which kinds of events are logged across
|
||||
# all loggers. For any given facility this global level
|
||||
# can be overriden by a facility specific level
|
||||
# Note that the ConsoleHandler also has a separate level
|
||||
# setting to limit messages printed to the console.
|
||||
#.level= INFO
|
||||
.level= INFO
|
||||
|
||||
############################################################
|
||||
# Handler specific properties.
|
||||
# Describes specific configuration info for Handlers.
|
||||
############################################################
|
||||
java.util.logging.ConsoleHandler.level=FINER
|
||||
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
|
||||
|
||||
############################################################
|
||||
# Facility specific properties.
|
||||
# Provides extra control for each logger.
|
||||
############################################################
|
||||
edu.wpi.first.wpilibj.level=INFO
|
||||
edu.wpi.first.wpilibj.command.level=INFO
|
||||
|
||||
|
||||
|
||||
646
wpilibj/wpilibJavaJNI/include/NIIMAQdx.h
Normal file
646
wpilibj/wpilibJavaJNI/include/NIIMAQdx.h
Normal file
@@ -0,0 +1,646 @@
|
||||
//==============================================================================
|
||||
//
|
||||
// Title : NIIMAQdx.h
|
||||
// Created : 1403685834 seconds after 1/1/1970 12:00:00 UTC
|
||||
// Copyright : © Copyright 2006, National Instruments Corporation, All rights reserved
|
||||
// Purpose : Include file for NI-IMAQdx library support.
|
||||
//
|
||||
//==============================================================================
|
||||
#ifndef ___niimaqdx_h___
|
||||
#define ___niimaqdx_h___
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(niimaqdx_types)
|
||||
#define niimaqdx_types
|
||||
|
||||
#ifdef _CVI_
|
||||
#pragma EnableLibraryRuntimeChecking
|
||||
#endif
|
||||
|
||||
//==============================================================================
|
||||
// Typedefs
|
||||
//==============================================================================
|
||||
#ifndef _NI_uInt8_DEFINED_
|
||||
#define _NI_uInt8_DEFINED_
|
||||
typedef unsigned char uInt8;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_uInt16_DEFINED_
|
||||
#define _NI_uInt16_DEFINED_
|
||||
typedef unsigned short int uInt16;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_uInt32_DEFINED_
|
||||
#define _NI_uInt32_DEFINED_
|
||||
#if defined(_MSC_VER)
|
||||
typedef unsigned long uInt32;
|
||||
#elif __GNUC__
|
||||
#if __x86_64__
|
||||
typedef unsigned int uInt32;
|
||||
#else
|
||||
typedef unsigned long uInt32;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NI_uInt64_DEFINED_
|
||||
#define _NI_uInt64_DEFINED_
|
||||
#if defined(_MSC_VER) || _CVI_ >= 700
|
||||
typedef unsigned __int64 uInt64;
|
||||
#elif __GNUC__
|
||||
typedef unsigned long long uInt64;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NI_Int8_DEFINED_
|
||||
#define _NI_Int8_DEFINED_
|
||||
typedef char Int8;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_Int16_DEFINED_
|
||||
#define _NI_Int16_DEFINED_
|
||||
typedef short int Int16;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_Int32_DEFINED_
|
||||
#define _NI_Int32_DEFINED_
|
||||
#if defined(_MSC_VER)
|
||||
typedef long Int32;
|
||||
#elif __GNUC__
|
||||
#if __x86_64__
|
||||
typedef int Int32;
|
||||
#else
|
||||
typedef long Int32;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NI_Int64_DEFINED_
|
||||
#define _NI_Int64_DEFINED_
|
||||
#if defined(_MSC_VER) || _CVI_ >= 700
|
||||
typedef __int64 Int64;
|
||||
#elif __GNUC__
|
||||
typedef long long int Int64;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NI_float32_DEFINED_
|
||||
#define _NI_float32_DEFINED_
|
||||
typedef float float32;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_float64_DEFINED_
|
||||
#define _NI_float64_DEFINED_
|
||||
typedef double float64;
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE (1L)
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE (0L)
|
||||
#endif
|
||||
|
||||
#ifndef _NI_GUIDHNDL_DEFINED
|
||||
typedef uInt32 GUIHNDL;
|
||||
#endif
|
||||
|
||||
#if (defined(_MSC_VER) || defined(_CVI_))
|
||||
#ifndef _NI_FUNC_DEFINED
|
||||
#define NI_FUNC __stdcall
|
||||
#endif
|
||||
|
||||
#ifndef _NI_FUNCC_DEFINED
|
||||
#define NI_FUNCC __cdecl
|
||||
#endif
|
||||
#elif defined(__GNUC__)
|
||||
#ifndef _NI_FUNC_DEFINED
|
||||
#define NI_FUNC
|
||||
#endif
|
||||
|
||||
#ifndef _NI_FUNCC_DEFINED
|
||||
#define NI_FUNCC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NI_bool32_DEFINED_
|
||||
#define _NI_bool32_DEFINED_
|
||||
typedef uInt32 bool32;
|
||||
#endif
|
||||
|
||||
#ifndef _NI_IMAQdxSession_DEFINED_
|
||||
#define _NI_IMAQdxSession_DEFINED_
|
||||
typedef uInt32 IMAQdxSession;
|
||||
#endif
|
||||
|
||||
#define IMAQDX_MAX_API_STRING_LENGTH 512
|
||||
|
||||
//==============================================================================
|
||||
// Forward Declare Data Structures
|
||||
//==============================================================================
|
||||
typedef struct Image_struct Image;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Error Codes Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxError_enum {
|
||||
IMAQdxErrorSuccess = 0x0, // Success
|
||||
IMAQdxErrorSystemMemoryFull = 0xBFF69000, // Not enough memory
|
||||
IMAQdxErrorInternal, // Internal error
|
||||
IMAQdxErrorInvalidParameter, // Invalid parameter
|
||||
IMAQdxErrorInvalidPointer, // Invalid pointer
|
||||
IMAQdxErrorInvalidInterface, // Invalid camera session
|
||||
IMAQdxErrorInvalidRegistryKey, // Invalid registry key
|
||||
IMAQdxErrorInvalidAddress, // Invalid address
|
||||
IMAQdxErrorInvalidDeviceType, // Invalid device type
|
||||
IMAQdxErrorNotImplemented, // Not implemented
|
||||
IMAQdxErrorCameraNotFound, // Camera not found
|
||||
IMAQdxErrorCameraInUse, // Camera is already in use.
|
||||
IMAQdxErrorCameraNotInitialized, // Camera is not initialized.
|
||||
IMAQdxErrorCameraRemoved, // Camera has been removed.
|
||||
IMAQdxErrorCameraRunning, // Acquisition in progress.
|
||||
IMAQdxErrorCameraNotRunning, // No acquisition in progress.
|
||||
IMAQdxErrorAttributeNotSupported, // Attribute not supported by the camera.
|
||||
IMAQdxErrorAttributeNotSettable, // Unable to set attribute.
|
||||
IMAQdxErrorAttributeNotReadable, // Unable to get attribute.
|
||||
IMAQdxErrorAttributeOutOfRange, // Attribute value is out of range.
|
||||
IMAQdxErrorBufferNotAvailable, // Requested buffer is unavailable.
|
||||
IMAQdxErrorBufferListEmpty, // Buffer list is empty. Add one or more buffers.
|
||||
IMAQdxErrorBufferListLocked, // Buffer list is already locked. Reconfigure acquisition and try again.
|
||||
IMAQdxErrorBufferListNotLocked, // No buffer list. Reconfigure acquisition and try again.
|
||||
IMAQdxErrorResourcesAllocated, // Transfer engine resources already allocated. Reconfigure acquisition and try again.
|
||||
IMAQdxErrorResourcesUnavailable, // Insufficient transfer engine resources.
|
||||
IMAQdxErrorAsyncWrite, // Unable to perform asychronous register write.
|
||||
IMAQdxErrorAsyncRead, // Unable to perform asychronous register read.
|
||||
IMAQdxErrorTimeout, // Timeout.
|
||||
IMAQdxErrorBusReset, // Bus reset occurred during a transaction.
|
||||
IMAQdxErrorInvalidXML, // Unable to load camera's XML file.
|
||||
IMAQdxErrorFileAccess, // Unable to read/write to file.
|
||||
IMAQdxErrorInvalidCameraURLString, // Camera has malformed URL string.
|
||||
IMAQdxErrorInvalidCameraFile, // Invalid camera file.
|
||||
IMAQdxErrorGenICamError, // Unknown Genicam error.
|
||||
IMAQdxErrorFormat7Parameters, // For format 7: The combination of speed, image position, image size, and color coding is incorrect.
|
||||
IMAQdxErrorInvalidAttributeType, // The attribute type is not compatible with the passed variable type.
|
||||
IMAQdxErrorDLLNotFound, // The DLL could not be found.
|
||||
IMAQdxErrorFunctionNotFound, // The function could not be found.
|
||||
IMAQdxErrorLicenseNotActivated, // License not activated.
|
||||
IMAQdxErrorCameraNotConfiguredForListener, // The camera is not configured properly to support a listener.
|
||||
IMAQdxErrorCameraMulticastNotAvailable, // Unable to configure the system for multicast support.
|
||||
IMAQdxErrorBufferHasLostPackets, // The requested buffer has lost packets and the user requested an error to be generated.
|
||||
IMAQdxErrorGiGEVisionError, // Unknown GiGE Vision error.
|
||||
IMAQdxErrorNetworkError, // Unknown network error.
|
||||
IMAQdxErrorCameraUnreachable, // Unable to connect to the camera.
|
||||
IMAQdxErrorHighPerformanceNotSupported, // High performance acquisition is not supported on the specified network interface. Connect the camera to a network interface running the high performance driver.
|
||||
IMAQdxErrorInterfaceNotRenamed, // Unable to rename interface. Invalid or duplicate name specified.
|
||||
IMAQdxErrorNoSupportedVideoModes, // The camera does not have any video modes which are supported.
|
||||
IMAQdxErrorSoftwareTriggerOverrun, // Software trigger overrun.
|
||||
IMAQdxErrorTestPacketNotReceived, // The system did not receive a test packet from the camera. The packet size may be too large for the network configuration or a firewall may be enabled.
|
||||
IMAQdxErrorCorruptedImageReceived, // The camera returned a corrupted image.
|
||||
IMAQdxErrorCameraConfigurationHasChanged, // The camera did not return an image of the correct type it was configured for previously.
|
||||
IMAQdxErrorCameraInvalidAuthentication, // The camera is configured with password authentication and either the user name and password were not configured or they are incorrect.
|
||||
IMAQdxErrorUnknownHTTPError, // The camera returned an unknown HTTP error.
|
||||
IMAQdxErrorKernelDriverUnavailable, // Unable to attach to the kernel mode driver.
|
||||
IMAQdxErrorPixelFormatDecoderUnavailable, // No decoder available for selected pixel format.
|
||||
IMAQdxErrorFirmwareUpdateNeeded, // The acquisition hardware needs a firmware update before it can be used.
|
||||
IMAQdxErrorFirmwareUpdateRebootNeeded, // The firmware on the acquisition hardware has been updated and the system must be rebooted before use.
|
||||
IMAQdxErrorLightingCurrentOutOfRange, // The requested current level from the lighting controller is not possible.
|
||||
IMAQdxErrorUSB3VisionError, // Unknown USB3 Vision error.
|
||||
IMAQdxErrorInvalidU3VUSBDescriptor, // The camera has a USB descriptor that is incompatible with the USB3 Vision specification.
|
||||
IMAQdxErrorU3VInvalidControlInterface, // The USB3 Vision control interface is not implemented or is invalid on this camera.
|
||||
IMAQdxErrorU3VControlInterfaceError, // There was an error from the control interface of the USB3 Vision camera.
|
||||
IMAQdxErrorU3VInvalidEventInterface, // The USB3 Vision event interface is not implemented or is invalid on this camera.
|
||||
IMAQdxErrorU3VEventInterfaceError, // There was an error from the event interface of the USB3 Vision camera.
|
||||
IMAQdxErrorU3VInvalidStreamInterface, // The USB3 Vision stream interface is not implemented or is invalid on this camera.
|
||||
IMAQdxErrorU3VStreamInterfaceError, // There was an error from the stream interface of the USB3 Vision camera.
|
||||
IMAQdxErrorU3VUnsupportedConnectionSpeed, // The USB connection speed is not supported by the camera. Check whether the camera is plugged into a USB 2.0 port instead of a USB 3.0 port. If so, verify that the camera supports this use case.
|
||||
IMAQdxErrorU3VInsufficientPower, // The USB3 Vision camera requires more current than can be supplied by the USB port in use.
|
||||
IMAQdxErrorU3VInvalidMaxCurrent, // The U3V_MaximumCurrentUSB20_mA registry value is not valid for the connected USB3 Vision camera.
|
||||
IMAQdxErrorBufferIncompleteData, // The requested buffer has incomplete data and the user requested an error to be generated.
|
||||
IMAQdxErrorCameraAcquisitionConfigFailed, // The camera returned an error starting the acquisition.
|
||||
IMAQdxErrorCameraClosePending, // The camera still has outstanding references and will be closed when these operations complete.
|
||||
IMAQdxErrorSoftwareFault, // An unexpected software error occurred.
|
||||
IMAQdxErrorCameraPropertyInvalid, // The value for an invalid camera property was requested.
|
||||
IMAQdxErrorJumboFramesNotEnabled, // Jumbo frames are not enabled on the host. Maximum packet size is 1500 bytes.
|
||||
IMAQdxErrorBayerPixelFormatNotSelected, // This operation requires that the camera has a Bayer pixel format selected.
|
||||
IMAQdxErrorGuard = 0xFFFFFFFF,
|
||||
} IMAQdxError;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Bus Type Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxBusType_enum {
|
||||
IMAQdxBusTypeFireWire = 0x31333934,
|
||||
IMAQdxBusTypeEthernet = 0x69707634,
|
||||
IMAQdxBusTypeSimulator = 0x2073696D,
|
||||
IMAQdxBusTypeDirectShow = 0x64736877,
|
||||
IMAQdxBusTypeIP = 0x4950636D,
|
||||
IMAQdxBusTypeSmartCam2 = 0x53436132,
|
||||
IMAQdxBusTypeUSB3Vision = 0x55534233,
|
||||
IMAQdxBusTypeUVC = 0x55564320,
|
||||
IMAQdxBusTypeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxBusType;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Camera Control Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxCameraControlMode_enum {
|
||||
IMAQdxCameraControlModeController,
|
||||
IMAQdxCameraControlModeListener,
|
||||
IMAQdxCameraControlModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxCameraControlMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Buffer Number Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxBufferNumberMode_enum {
|
||||
IMAQdxBufferNumberModeNext,
|
||||
IMAQdxBufferNumberModeLast,
|
||||
IMAQdxBufferNumberModeBufferNumber,
|
||||
IMAQdxBufferNumberModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxBufferNumberMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Plug n Play Event Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxPnpEvent_enum {
|
||||
IMAQdxPnpEventCameraAttached,
|
||||
IMAQdxPnpEventCameraDetached,
|
||||
IMAQdxPnpEventBusReset,
|
||||
IMAQdxPnpEventGuard = 0xFFFFFFFF,
|
||||
} IMAQdxPnpEvent;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Bayer Pattern Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxBayerPattern_enum {
|
||||
IMAQdxBayerPatternNone,
|
||||
IMAQdxBayerPatternGB,
|
||||
IMAQdxBayerPatternGR,
|
||||
IMAQdxBayerPatternBG,
|
||||
IMAQdxBayerPatternRG,
|
||||
IMAQdxBayerPatternHardware,
|
||||
IMAQdxBayerPatternGuard = 0xFFFFFFFF,
|
||||
} IMAQdxBayerPattern;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Bayer Decode Algorithm Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxBayerAlgorithm_enum {
|
||||
IMAQdxBayerAlgorithmBilinear,
|
||||
IMAQdxBayerAlgorithmVNG,
|
||||
IMAQdxBayerAlgorithmGuard = 0xFFFFFFFF,
|
||||
} IMAQdxBayerAlgorithm;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Output Image Types -- Values match Vision Development Module image types
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxOutputImageType_enum {
|
||||
IMAQdxOutputImageTypeU8 = 0,
|
||||
IMAQdxOutputImageTypeI16 = 1,
|
||||
IMAQdxOutputImageTypeU16 = 7,
|
||||
IMAQdxOutputImageTypeRGB32 = 4,
|
||||
IMAQdxOutputImageTypeRGB64 = 6,
|
||||
IMAQdxOutputImageTypeAuto = 0x7FFFFFFF,
|
||||
IMAQdxOutputImageTypeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxOutputImageType;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Controller Destination Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxDestinationMode_enum {
|
||||
IMAQdxDestinationModeUnicast,
|
||||
IMAQdxDestinationModeBroadcast,
|
||||
IMAQdxDestinationModeMulticast,
|
||||
IMAQdxDestinationModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxDestinationMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Attribute Type Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxAttributeType_enum {
|
||||
IMAQdxAttributeTypeU32,
|
||||
IMAQdxAttributeTypeI64,
|
||||
IMAQdxAttributeTypeF64,
|
||||
IMAQdxAttributeTypeString,
|
||||
IMAQdxAttributeTypeEnum,
|
||||
IMAQdxAttributeTypeBool,
|
||||
IMAQdxAttributeTypeCommand,
|
||||
IMAQdxAttributeTypeBlob,
|
||||
IMAQdxAttributeTypeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxAttributeType;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Value Type Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxValueType_enum {
|
||||
IMAQdxValueTypeU32,
|
||||
IMAQdxValueTypeI64,
|
||||
IMAQdxValueTypeF64,
|
||||
IMAQdxValueTypeString,
|
||||
IMAQdxValueTypeEnumItem,
|
||||
IMAQdxValueTypeBool,
|
||||
IMAQdxValueTypeDisposableString,
|
||||
IMAQdxValueTypeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxValueType;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Interface File Flags Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxInterfaceFileFlags_enum {
|
||||
IMAQdxInterfaceFileFlagsConnected = 0x1,
|
||||
IMAQdxInterfaceFileFlagsDirty = 0x2,
|
||||
IMAQdxInterfaceFileFlagsGuard = 0xFFFFFFFF,
|
||||
} IMAQdxInterfaceFileFlags;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Overwrite Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxOverwriteMode_enum {
|
||||
IMAQdxOverwriteModeGetOldest = 0x0,
|
||||
IMAQdxOverwriteModeFail = 0x2,
|
||||
IMAQdxOverwriteModeGetNewest = 0x3,
|
||||
IMAQdxOverwriteModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxOverwriteMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Incomplete Buffer Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxIncompleteBufferMode_enum {
|
||||
IMAQdxIncompleteBufferModeIgnore,
|
||||
IMAQdxIncompleteBufferModeFail,
|
||||
IMAQdxIncompleteBufferModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxIncompleteBufferMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Lost Packet Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxLostPacketMode_enum {
|
||||
IMAQdxLostPacketModeIgnore,
|
||||
IMAQdxLostPacketModeFail,
|
||||
IMAQdxLostPacketModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxLostPacketMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Attribute Visibility Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxAttributeVisibility_enum {
|
||||
IMAQdxAttributeVisibilitySimple = 0x00001000,
|
||||
IMAQdxAttributeVisibilityIntermediate = 0x00002000,
|
||||
IMAQdxAttributeVisibilityAdvanced = 0x00004000,
|
||||
IMAQdxAttributeVisibilityGuard = 0xFFFFFFFF,
|
||||
} IMAQdxAttributeVisibility;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Stream Channel Mode Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxStreamChannelMode_enum {
|
||||
IMAQdxStreamChannelModeAutomatic,
|
||||
IMAQdxStreamChannelModeManual,
|
||||
IMAQdxStreamChannelModeGuard = 0xFFFFFFFF,
|
||||
} IMAQdxStreamChannelMode;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Pixel Signedness Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxPixelSignedness_enum {
|
||||
IMAQdxPixelSignednessUnsigned,
|
||||
IMAQdxPixelSignednessSigned,
|
||||
IMAQdxPixelSignednessHardware,
|
||||
IMAQdxPixelSignednessGuard = 0xFFFFFFFF,
|
||||
} IMAQdxPixelSignedness;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// USB Connection Speed Enumeration
|
||||
//==============================================================================
|
||||
typedef enum IMAQdxUSBConnectionSpeed_enum {
|
||||
IMAQdxUSBConnectionSpeedLow = 1,
|
||||
IMAQdxUSBConnectionSpeedFull = 2,
|
||||
IMAQdxUSBConnectionSpeedHigh = 4,
|
||||
IMAQdxUSBConnectionSpeedSuper = 8,
|
||||
IMAQdxUSBConnectionSpeedGuard = 0xFFFFFFFF,
|
||||
} IMAQdxUSBConnectionSpeed;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// CVI Structures
|
||||
//==============================================================================
|
||||
#pragma pack(push, 4)
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Camera Information Structure
|
||||
//==============================================================================
|
||||
typedef struct IMAQdxCameraInformation_struct {
|
||||
uInt32 Type;
|
||||
uInt32 Version;
|
||||
uInt32 Flags;
|
||||
uInt32 SerialNumberHi;
|
||||
uInt32 SerialNumberLo;
|
||||
IMAQdxBusType BusType;
|
||||
char InterfaceName[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
char VendorName[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
char ModelName[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
char CameraFileName[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
char CameraAttributeURL[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
} IMAQdxCameraInformation;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Camera File Structure
|
||||
//==============================================================================
|
||||
typedef struct IMAQdxCameraFile_struct {
|
||||
uInt32 Type;
|
||||
uInt32 Version;
|
||||
char FileName[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
} IMAQdxCameraFile;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Attribute Information Structure
|
||||
//==============================================================================
|
||||
typedef struct IMAQdxAttributeInformation_struct {
|
||||
IMAQdxAttributeType Type;
|
||||
bool32 Readable;
|
||||
bool32 Writable;
|
||||
char Name[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
} IMAQdxAttributeInformation;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Enumeration Item Structure
|
||||
//==============================================================================
|
||||
typedef struct IMAQdxEnumItem_struct {
|
||||
uInt32 Value;
|
||||
uInt32 Reserved;
|
||||
char Name[IMAQDX_MAX_API_STRING_LENGTH];
|
||||
} IMAQdxEnumItem;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Camera Information Structure
|
||||
//==============================================================================
|
||||
typedef IMAQdxEnumItem IMAQdxVideoMode;
|
||||
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Callbacks
|
||||
//==============================================================================
|
||||
typedef uInt32 (NI_FUNC *FrameDoneEventCallbackPtr)(IMAQdxSession id, uInt32 bufferNumber, void* callbackData);
|
||||
typedef uInt32 (NI_FUNC *PnpEventCallbackPtr)(IMAQdxSession id, IMAQdxPnpEvent pnpEvent, void* callbackData);
|
||||
typedef void (NI_FUNC *AttributeUpdatedEventCallbackPtr)(IMAQdxSession id, const char* name, void* callbackData);
|
||||
|
||||
#endif //niimaqdx_types
|
||||
//==============================================================================
|
||||
// Attributes
|
||||
//==============================================================================
|
||||
#define IMAQdxAttributeBaseAddress "CameraInformation::BaseAddress" // Read only. Gets the base address of the camera registers.
|
||||
#define IMAQdxAttributeBusType "CameraInformation::BusType" // Read only. Gets the bus type of the camera.
|
||||
#define IMAQdxAttributeModelName "CameraInformation::ModelName" // Read only. Returns the model name.
|
||||
#define IMAQdxAttributeSerialNumberHigh "CameraInformation::SerialNumberHigh" // Read only. Gets the upper 32-bits of the camera 64-bit serial number.
|
||||
#define IMAQdxAttributeSerialNumberLow "CameraInformation::SerialNumberLow" // Read only. Gets the lower 32-bits of the camera 64-bit serial number.
|
||||
#define IMAQdxAttributeVendorName "CameraInformation::VendorName" // Read only. Returns the vendor name.
|
||||
#define IMAQdxAttributeHostIPAddress "CameraInformation::HostIPAddress" // Read only. Returns the host adapter IP address.
|
||||
#define IMAQdxAttributeIPAddress "CameraInformation::IPAddress" // Read only. Returns the IP address.
|
||||
#define IMAQdxAttributePrimaryURLString "CameraInformation::PrimaryURLString" // Read only. Gets the camera's primary URL string.
|
||||
#define IMAQdxAttributeSecondaryURLString "CameraInformation::SecondaryURLString" // Read only. Gets the camera's secondary URL string.
|
||||
#define IMAQdxAttributeAcqInProgress "StatusInformation::AcqInProgress" // Read only. Gets the current state of the acquisition. TRUE if acquiring; otherwise FALSE.
|
||||
#define IMAQdxAttributeLastBufferCount "StatusInformation::LastBufferCount" // Read only. Gets the number of transferred buffers.
|
||||
#define IMAQdxAttributeLastBufferNumber "StatusInformation::LastBufferNumber" // Read only. Gets the last cumulative buffer number transferred.
|
||||
#define IMAQdxAttributeLostBufferCount "StatusInformation::LostBufferCount" // Read only. Gets the number of lost buffers during an acquisition session.
|
||||
#define IMAQdxAttributeLostPacketCount "StatusInformation::LostPacketCount" // Read only. Gets the number of lost packets during an acquisition session.
|
||||
#define IMAQdxAttributeRequestedResendPackets "StatusInformation::RequestedResendPacketCount" // Read only. Gets the number of packets requested to be resent during an acquisition session.
|
||||
#define IMAQdxAttributeReceivedResendPackets "StatusInformation::ReceivedResendPackets" // Read only. Gets the number of packets that were requested to be resent during an acquisition session and were completed.
|
||||
#define IMAQdxAttributeHandledEventCount "StatusInformation::HandledEventCount" // Read only. Gets the number of handled events during an acquisition session.
|
||||
#define IMAQdxAttributeLostEventCount "StatusInformation::LostEventCount" // Read only. Gets the number of lost events during an acquisition session.
|
||||
#define IMAQdxAttributeBayerGainB "AcquisitionAttributes::Bayer::GainB" // Sets/gets the white balance gain for the blue component of the Bayer conversion.
|
||||
#define IMAQdxAttributeBayerGainG "AcquisitionAttributes::Bayer::GainG" // Sets/gets the white balance gain for the green component of the Bayer conversion.
|
||||
#define IMAQdxAttributeBayerGainR "AcquisitionAttributes::Bayer::GainR" // Sets/gets the white balance gain for the red component of the Bayer conversion.
|
||||
#define IMAQdxAttributeBayerPattern "AcquisitionAttributes::Bayer::Pattern" // Sets/gets the Bayer pattern to use.
|
||||
#define IMAQdxAttributeStreamChannelMode "AcquisitionAttributes::Controller::StreamChannelMode" // Gets/sets the mode for allocating a FireWire stream channel.
|
||||
#define IMAQdxAttributeDesiredStreamChannel "AcquisitionAttributes::Controller::DesiredStreamChannel" // Gets/sets the stream channel to manually allocate.
|
||||
#define IMAQdxAttributeFrameInterval "AcquisitionAttributes::FrameInterval" // Read only. Gets the duration in milliseconds between successive frames.
|
||||
#define IMAQdxAttributeIgnoreFirstFrame "AcquisitionAttributes::IgnoreFirstFrame" // Gets/sets the video delay of one frame between starting the camera and receiving the video feed.
|
||||
#define IMAQdxAttributeOffsetX "OffsetX" // Gets/sets the left offset of the image.
|
||||
#define IMAQdxAttributeOffsetY "OffsetY" // Gets/sets the top offset of the image.
|
||||
#define IMAQdxAttributeWidth "Width" // Gets/sets the width of the image.
|
||||
#define IMAQdxAttributeHeight "Height" // Gets/sets the height of the image.
|
||||
#define IMAQdxAttributePixelFormat "PixelFormat" // Gets/sets the pixel format of the source sensor.
|
||||
#define IMAQdxAttributePacketSize "PacketSize" // Gets/sets the packet size in bytes.
|
||||
#define IMAQdxAttributePayloadSize "PayloadSize" // Gets/sets the frame size in bytes.
|
||||
#define IMAQdxAttributeSpeed "AcquisitionAttributes::Speed" // Gets/sets the transfer speed in Mbps for a FireWire packet.
|
||||
#define IMAQdxAttributeShiftPixelBits "AcquisitionAttributes::ShiftPixelBits" // Gets/sets the alignment of 16-bit cameras. Downshift the pixel bits if the camera returns most significant bit-aligned data.
|
||||
#define IMAQdxAttributeSwapPixelBytes "AcquisitionAttributes::SwapPixelBytes" // Gets/sets the endianness of 16-bit cameras. Swap the pixel bytes if the camera returns little endian data.
|
||||
#define IMAQdxAttributeOverwriteMode "AcquisitionAttributes::OverwriteMode" // Gets/sets the overwrite mode, used to determine acquisition when an image transfer cannot be completed due to an overwritten internal buffer.
|
||||
#define IMAQdxAttributeTimeout "AcquisitionAttributes::Timeout" // Gets/sets the timeout value in milliseconds, used to abort an acquisition when the image transfer cannot be completed within the delay.
|
||||
#define IMAQdxAttributeVideoMode "AcquisitionAttributes::VideoMode" // Gets/sets the video mode for a camera.
|
||||
#define IMAQdxAttributeBitsPerPixel "AcquisitionAttributes::BitsPerPixel" // Gets/sets the actual bits per pixel. For 16-bit components, this represents the actual bit depth (10-, 12-, 14-, or 16-bit).
|
||||
#define IMAQdxAttributePixelSignedness "AcquisitionAttributes::PixelSignedness" // Gets/sets the signedness of the pixel. For 16-bit components, this represents the actual pixel signedness (Signed, or Unsigned).
|
||||
#define IMAQdxAttributeReserveDualPackets "AcquisitionAttributes::ReserveDualPackets" // Gets/sets if dual packets will be reserved for a very large FireWire packet.
|
||||
#define IMAQdxAttributeReceiveTimestampMode "AcquisitionAttributes::ReceiveTimestampMode" // Gets/sets the mode for timestamping images received by the driver.
|
||||
#define IMAQdxAttributeActualPeakBandwidth "AcquisitionAttributes::AdvancedEthernet::BandwidthControl::ActualPeakBandwidth" // Read only. Returns the actual maximum peak bandwidth the camera will be configured to use.
|
||||
#define IMAQdxAttributeDesiredPeakBandwidth "AcquisitionAttributes::AdvancedEthernet::BandwidthControl::DesiredPeakBandwidth" // Gets/sets the desired maximum peak bandwidth the camera should use.
|
||||
#define IMAQdxAttributeDestinationMode "AcquisitionAttributes::AdvancedEthernet::Controller::DestinationMode" // Gets/Sets where the camera is instructed to send the image stream.
|
||||
#define IMAQdxAttributeDestinationMulticastAddress "AcquisitionAttributes::AdvancedEthernet::Controller::DestinationMulticastAddress" // Gets/Sets the multicast address the camera should send data in multicast mode.
|
||||
#define IMAQdxAttributeEventsEnabled "AcquisitionAttributes::AdvancedEthernet::EventParameters::EventsEnabled" // Gets/Sets if events will be handled.
|
||||
#define IMAQdxAttributeMaxOutstandingEvents "AcquisitionAttributes::AdvancedEthernet::EventParameters::MaxOutstandingEvents" // Gets/Sets the maximum number of outstanding events to queue.
|
||||
#define IMAQdxAttributeTestPacketEnabled "AcquisitionAttributes::AdvancedEthernet::TestPacketParameters::TestPacketEnabled" // Gets/Sets whether the driver will validate the image streaming settings using test packets prior to an acquisition
|
||||
#define IMAQdxAttributeTestPacketTimeout "AcquisitionAttributes::AdvancedEthernet::TestPacketParameters::TestPacketTimeout" // Gets/Sets the timeout for validating test packet reception (if enabled)
|
||||
#define IMAQdxAttributeMaxTestPacketRetries "AcquisitionAttributes::AdvancedEthernet::TestPacketParameters::MaxTestPacketRetries" // Gets/Sets the number of retries for validating test packet reception (if enabled)
|
||||
#define IMAQdxAttributeChunkDataDecodingEnabled "AcquisitionAttributes::ChunkDataDecoding::ChunkDataDecodingEnabled" // Gets/Sets whether the driver will decode any chunk data in the image stream
|
||||
#define IMAQdxAttributeChunkDataDecodingMaxElementSize "AcquisitionAttributes::ChunkDataDecoding::MaximumChunkCopySize" // Gets/Sets the maximum size of any single chunk data element that will be made available
|
||||
#define IMAQdxAttributeLostPacketMode "AcquisitionAttributes::AdvancedEthernet::LostPacketMode" // Gets/sets the behavior when the user extracts a buffer that has missing packets.
|
||||
#define IMAQdxAttributeMemoryWindowSize "AcquisitionAttributes::AdvancedEthernet::ResendParameters::MemoryWindowSize" // Gets/sets the size of the memory window of the camera in kilobytes. Should match the camera's internal buffer size.
|
||||
#define IMAQdxAttributeResendsEnabled "AcquisitionAttributes::AdvancedEthernet::ResendParameters::ResendsEnabled" // Gets/sets if resends will be issued for missing packets.
|
||||
#define IMAQdxAttributeResendThresholdPercentage "AcquisitionAttributes::AdvancedEthernet::ResendParameters::ResendThresholdPercentage" // Gets/sets the threshold of the packet processing window that will trigger packets to be resent.
|
||||
#define IMAQdxAttributeResendBatchingPercentage "AcquisitionAttributes::AdvancedEthernet::ResendParameters::ResendBatchingPercentage" // Gets/sets the percent of the packet resend threshold that will be issued as one group past the initial threshold sent in a single request.
|
||||
#define IMAQdxAttributeMaxResendsPerPacket "AcquisitionAttributes::AdvancedEthernet::ResendParameters::MaxResendsPerPacket" // Gets/sets the maximum number of resend requests that will be issued for a missing packet.
|
||||
#define IMAQdxAttributeResendResponseTimeout "AcquisitionAttributes::AdvancedEthernet::ResendParameters::ResendResponseTimeout" // Gets/sets the time to wait for a resend request to be satisfied before sending another.
|
||||
#define IMAQdxAttributeNewPacketTimeout "AcquisitionAttributes::AdvancedEthernet::ResendParameters::NewPacketTimeout" // Gets/sets the time to wait for new packets to arrive in a partially completed image before assuming the rest of the image was lost.
|
||||
#define IMAQdxAttributeMissingPacketTimeout "AcquisitionAttributes::AdvancedEthernet::ResendParameters::MissingPacketTimeout" // Gets/sets the time to wait for a missing packet before issuing a resend.
|
||||
#define IMAQdxAttributeResendTimerResolution "AcquisitionAttributes::AdvancedEthernet::ResendParameters::ResendTimerResolution" // Gets/sets the resolution of the packet processing system that is used for all packet-related timeouts.
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Functions
|
||||
//==============================================================================
|
||||
IMAQdxError NI_FUNC IMAQdxSnap(IMAQdxSession id, Image* image);
|
||||
IMAQdxError NI_FUNC IMAQdxConfigureGrab(IMAQdxSession id);
|
||||
IMAQdxError NI_FUNC IMAQdxGrab(IMAQdxSession id, Image* image, bool32 waitForNextBuffer, uInt32* actualBufferNumber);
|
||||
IMAQdxError NI_FUNC IMAQdxSequence(IMAQdxSession id, Image* images[], uInt32 count);
|
||||
IMAQdxError NI_FUNC IMAQdxDiscoverEthernetCameras(const char* address, uInt32 timeout);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateCameras(IMAQdxCameraInformation cameraInformationArray[], uInt32* count, bool32 connectedOnly);
|
||||
IMAQdxError NI_FUNC IMAQdxResetCamera(const char* name, bool32 resetAll);
|
||||
IMAQdxError NI_FUNC IMAQdxOpenCamera(const char* name, IMAQdxCameraControlMode mode, IMAQdxSession* id);
|
||||
IMAQdxError NI_FUNC IMAQdxCloseCamera(IMAQdxSession id);
|
||||
IMAQdxError NI_FUNC IMAQdxConfigureAcquisition(IMAQdxSession id, bool32 continuous, uInt32 bufferCount);
|
||||
IMAQdxError NI_FUNC IMAQdxStartAcquisition(IMAQdxSession id);
|
||||
IMAQdxError NI_FUNC IMAQdxGetImage(IMAQdxSession id, Image* image, IMAQdxBufferNumberMode mode, uInt32 desiredBufferNumber, uInt32* actualBufferNumber);
|
||||
IMAQdxError NI_FUNC IMAQdxGetImageData(IMAQdxSession id, void* buffer, uInt32 bufferSize, IMAQdxBufferNumberMode mode, uInt32 desiredBufferNumber, uInt32* actualBufferNumber);
|
||||
IMAQdxError NI_FUNC IMAQdxStopAcquisition(IMAQdxSession id);
|
||||
IMAQdxError NI_FUNC IMAQdxUnconfigureAcquisition(IMAQdxSession id);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateVideoModes(IMAQdxSession id, IMAQdxVideoMode videoModeArray[], uInt32* count, uInt32* currentMode);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateAttributes(IMAQdxSession id, IMAQdxAttributeInformation attributeInformationArray[], uInt32* count, const char* root);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttribute(IMAQdxSession id, const char* name, IMAQdxValueType type, void* value);
|
||||
IMAQdxError NI_FUNCC IMAQdxSetAttribute(IMAQdxSession id, const char* name, IMAQdxValueType type, ...);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeMinimum(IMAQdxSession id, const char* name, IMAQdxValueType type, void* value);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeMaximum(IMAQdxSession id, const char* name, IMAQdxValueType type, void* value);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeIncrement(IMAQdxSession id, const char* name, IMAQdxValueType type, void* value);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeType(IMAQdxSession id, const char* name, IMAQdxAttributeType* type);
|
||||
IMAQdxError NI_FUNC IMAQdxIsAttributeReadable(IMAQdxSession id, const char* name, bool32* readable);
|
||||
IMAQdxError NI_FUNC IMAQdxIsAttributeWritable(IMAQdxSession id, const char* name, bool32* writable);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateAttributeValues(IMAQdxSession id, const char* name, IMAQdxEnumItem list[], uInt32* size);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeTooltip(IMAQdxSession id, const char* name, char* tooltip, uInt32 length);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeUnits(IMAQdxSession id, const char* name, char* units, uInt32 length);
|
||||
IMAQdxError NI_FUNC IMAQdxRegisterFrameDoneEvent(IMAQdxSession id, uInt32 bufferInterval, FrameDoneEventCallbackPtr callbackFunction, void* callbackData);
|
||||
IMAQdxError NI_FUNC IMAQdxRegisterPnpEvent(IMAQdxSession id, IMAQdxPnpEvent event, PnpEventCallbackPtr callbackFunction, void* callbackData);
|
||||
IMAQdxError NI_FUNC IMAQdxWriteRegister(IMAQdxSession id, uInt32 offset, uInt32 value);
|
||||
IMAQdxError NI_FUNC IMAQdxReadRegister(IMAQdxSession id, uInt32 offset, uInt32* value);
|
||||
IMAQdxError NI_FUNC IMAQdxWriteMemory(IMAQdxSession id, uInt32 offset, const char* values, uInt32 count);
|
||||
IMAQdxError NI_FUNC IMAQdxReadMemory(IMAQdxSession id, uInt32 offset, char* values, uInt32 count);
|
||||
IMAQdxError NI_FUNC IMAQdxGetErrorString(IMAQdxError error, char* message, uInt32 messageLength);
|
||||
IMAQdxError NI_FUNC IMAQdxWriteAttributes(IMAQdxSession id, const char* filename);
|
||||
IMAQdxError NI_FUNC IMAQdxReadAttributes(IMAQdxSession id, const char* filename);
|
||||
IMAQdxError NI_FUNC IMAQdxResetEthernetCameraAddress(const char* name, const char* address, const char* subnet, const char* gateway, uInt32 timeout);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateAttributes2(IMAQdxSession id, IMAQdxAttributeInformation attributeInformationArray[], uInt32* count, const char* root, IMAQdxAttributeVisibility visibility);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeVisibility(IMAQdxSession id, const char* name, IMAQdxAttributeVisibility* visibility);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeDescription(IMAQdxSession id, const char* name, char* description, uInt32 length);
|
||||
IMAQdxError NI_FUNC IMAQdxGetAttributeDisplayName(IMAQdxSession id, const char* name, char* displayName, uInt32 length);
|
||||
IMAQdxError NI_FUNC IMAQdxDispose(void* buffer);
|
||||
IMAQdxError NI_FUNC IMAQdxRegisterAttributeUpdatedEvent(IMAQdxSession id, const char* name, AttributeUpdatedEventCallbackPtr callbackFunction, void* callbackData);
|
||||
IMAQdxError NI_FUNC IMAQdxEnumerateAttributes3(IMAQdxSession id, IMAQdxAttributeInformation attributeInformationArray[], uInt32* count, const char* root, IMAQdxAttributeVisibility visibility);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif // ___niimaqdx_h___
|
||||
5345
wpilibj/wpilibJavaJNI/include/nivision.h
Normal file
5345
wpilibj/wpilibJavaJNI/include/nivision.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@
|
||||
|
||||
</pluginRepositories>
|
||||
<properties>
|
||||
<embeddedJDKHome>${user.home}${file.separator}jdk-linux-arm-vfp-sflt${file.separator}jdk1.7.0_45</embeddedJDKHome>
|
||||
<embeddedJDKHome>${user.home}${file.separator}jdk-linux-arm-vfp-sflt${file.separator}jdk1.8.0_33</embeddedJDKHome>
|
||||
<embeddedJDKIncludePath>${embeddedJDKHome}${file.separator}include</embeddedJDKIncludePath>
|
||||
</properties>
|
||||
<profiles>
|
||||
|
||||
Reference in New Issue
Block a user