mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[build] Add spotless for other files (#3007)
Adds spotless formatting for Gradle, xml, md, and gitignore files. yml linting is not performed as it requires a dependency on npm.
This commit is contained in:
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -231,7 +231,7 @@ jobs:
|
|||||||
github.ref == 'refs/heads/master'
|
github.ref == 'refs/heads/master'
|
||||||
run: cd combiner && ./gradlew publish -Pallwpilib
|
run: cd combiner && ./gradlew publish -Pallwpilib
|
||||||
env:
|
env:
|
||||||
RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE'
|
RUN_AZURE_ARTIFACTORY_RELEASE: "TRUE"
|
||||||
ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
||||||
ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
||||||
- name: Combine (Release)
|
- name: Combine (Release)
|
||||||
@@ -240,7 +240,7 @@ jobs:
|
|||||||
startsWith(github.ref, 'refs/tags/v')
|
startsWith(github.ref, 'refs/tags/v')
|
||||||
run: cd combiner && ./gradlew publish -Pallwpilib -PreleaseRepoPublish
|
run: cd combiner && ./gradlew publish -Pallwpilib -PreleaseRepoPublish
|
||||||
env:
|
env:
|
||||||
RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE'
|
RUN_AZURE_ARTIFACTORY_RELEASE: "TRUE"
|
||||||
ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
||||||
ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
## Publishing Third Party Dependencies
|
## Publishing Third Party Dependencies
|
||||||
Currently the 3rd party deps are imgui, opencv, and google test
|
Currently the 3rd party deps are imgui, opencv, and google test
|
||||||
|
|
||||||
For publishing these dependencies, the version needs to be manually updated in the publish.gradle file of their respective repository.
|
For publishing these dependencies, the version needs to be manually updated in the publish.gradle file of their respective repository.
|
||||||
Then, in the azure build for the dependency you want to build for, manually start a pipeline build (As of current, this is the `Run Pipeline` button).
|
Then, in the azure build for the dependency you want to build for, manually start a pipeline build (As of current, this is the `Run Pipeline` button).
|
||||||
A variable needs to be added called `RUN_AZURE_ARTIFACTORY_RELEASE`, with a value of `true`. Then when the pipeline gets started, the final build outputs will be updated to artifactory.
|
A variable needs to be added called `RUN_AZURE_ARTIFACTORY_RELEASE`, with a value of `true`. Then when the pipeline gets started, the final build outputs will be updated to artifactory.
|
||||||
|
|
||||||
To use newer versions of C++ dependencies, in `shared/config.gradle`, update the version related to the specific dependency.
|
To use newer versions of C++ dependencies, in `shared/config.gradle`, update the version related to the specific dependency.
|
||||||
For Java dependencies, there is likely a file related to the specific dependency in the shared folder. Update the version in there.
|
For Java dependencies, there is likely a file related to the specific dependency in the shared folder. Update the version in there.
|
||||||
|
|
||||||
Note, changing artifact locations (This includes changing the artifact year currently, I have an issue open to change this) requires updating the `native-utils` plugin
|
Note, changing artifact locations (This includes changing the artifact year currently, I have an issue open to change this) requires updating the `native-utils` plugin
|
||||||
|
|
||||||
## Publishing allwpilib
|
## Publishing allwpilib
|
||||||
allwpilib publishes to the development repo on every push to master. To publish a release build, upload a new tag, and a release will automatically be built and published.
|
allwpilib publishes to the development repo on every push to master. To publish a release build, upload a new tag, and a release will automatically be built and published.
|
||||||
|
|
||||||
## Publishing desktop tools
|
## Publishing desktop tools
|
||||||
Desktop tools publish to the development repo on every push to master. To publish a release build, upload a new tag, and a release will automatically be built and published.
|
Desktop tools publish to the development repo on every push to master. To publish a release build, upload a new tag, and a release will automatically be built and published.
|
||||||
|
|
||||||
## Publishing VS Code
|
## Publishing VS Code
|
||||||
Before publishing, make sure to update the gradlerio version in `vscode-wpilib/resources/gradle/version.txt` Also make sure the gradle wrapper version matches the wrapper required by gradlerio.
|
Before publishing, make sure to update the gradlerio version in `vscode-wpilib/resources/gradle/version.txt` Also make sure the gradle wrapper version matches the wrapper required by gradlerio.
|
||||||
Upon pushing a tag, a release will be built, and the files will be uploaded to the releases on GitHub. For publishing to the marketplace, you need a Microsoft account and to be added as a maintainer.
|
Upon pushing a tag, a release will be built, and the files will be uploaded to the releases on GitHub. For publishing to the marketplace, you need a Microsoft account and to be added as a maintainer.
|
||||||
|
|
||||||
## Publishing GradleRIO
|
## Publishing GradleRIO
|
||||||
Before publishing, make sure to update the version in build.gradle. Publishing must happen locally, using the command `./gradlew publishPlugin`. This does require your API key for publishing to be set.
|
Before publishing, make sure to update the version in build.gradle. Publishing must happen locally, using the command `./gradlew publishPlugin`. This does require your API key for publishing to be set.
|
||||||
|
|
||||||
## Building the installer
|
## Building the installer
|
||||||
Update the GradleRIO version in gradle.properties, and in the scripts folder in vscode, update the vscode extension. Then push, it will build the installer on azure.
|
Update the GradleRIO version in gradle.properties, and in the scripts folder in vscode, update the vscode extension. Then push, it will build the installer on azure.
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ The following build options are available:
|
|||||||
|
|
||||||
## Build Setup
|
## Build Setup
|
||||||
|
|
||||||
The WPILib CMake build does not allow in source builds. Because the `build` directory is used by Gradle, we recommend a `buildcmake` directory in the root. This folder is included in the gitignore.
|
The WPILib CMake build does not allow in source builds. Because the `build` directory is used by Gradle, we recommend a `build-cmake` directory in the root. This folder is included in the gitignore.
|
||||||
|
|
||||||
Once you have a build folder, run CMake configuration in that build directory with the following command.
|
Once you have a build folder, run CMake configuration in that build directory with the following command.
|
||||||
|
|
||||||
|
|||||||
@@ -4,88 +4,88 @@ trigger:
|
|||||||
batch: true
|
batch: true
|
||||||
branches:
|
branches:
|
||||||
include:
|
include:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- stage: Build
|
- stage: Build
|
||||||
jobs:
|
jobs:
|
||||||
- job: IntegrationTests
|
- job: IntegrationTests
|
||||||
displayName: Integration Tests
|
displayName: Integration Tests
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'Ubuntu 16.04'
|
vmImage: "Ubuntu 16.04"
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: wpilib/roborio-cross-ubuntu:2021-18.04
|
image: wpilib/roborio-cross-ubuntu:2021-18.04
|
||||||
|
|
||||||
timeoutInMinutes: 0
|
timeoutInMinutes: 0
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: Gradle@2
|
- task: Gradle@2
|
||||||
condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')))
|
condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/tags/v')))
|
||||||
inputs:
|
inputs:
|
||||||
workingDirectory: ''
|
workingDirectory: ""
|
||||||
gradleWrapperFile: 'gradlew'
|
gradleWrapperFile: "gradlew"
|
||||||
gradleOptions: '-Xmx3072m'
|
gradleOptions: "-Xmx3072m"
|
||||||
publishJUnitResults: false
|
publishJUnitResults: false
|
||||||
testResultsFiles: '**/TEST-*.xml'
|
testResultsFiles: "**/TEST-*.xml"
|
||||||
tasks: 'copyWpilibJIntegrationTestJarToOutput copyWpilibCTestLibrariesToOutput'
|
tasks: "copyWpilibJIntegrationTestJarToOutput copyWpilibCTestLibrariesToOutput"
|
||||||
options: '-Ponlylinuxathena -PbuildServer'
|
options: "-Ponlylinuxathena -PbuildServer"
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@0
|
- task: PublishPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'Integration Tests'
|
artifactName: "Integration Tests"
|
||||||
targetPath: 'build/integrationTestFiles'
|
targetPath: "build/integrationTestFiles"
|
||||||
|
|
||||||
- stage: TestBench
|
- stage: TestBench
|
||||||
displayName: Test Bench
|
displayName: Test Bench
|
||||||
jobs:
|
jobs:
|
||||||
- job: Cpp
|
- job: Cpp
|
||||||
displayName: C++
|
displayName: C++
|
||||||
pool: RoboRioConnections
|
pool: RoboRioConnections
|
||||||
timeoutInMinutes: 30
|
timeoutInMinutes: 30
|
||||||
workspace:
|
workspace:
|
||||||
clean: all
|
clean: all
|
||||||
steps:
|
steps:
|
||||||
- task: DownloadPipelineArtifact@0
|
- task: DownloadPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'Integration Tests'
|
artifactName: "Integration Tests"
|
||||||
targetPath: 'build/integrationTestFiles'
|
targetPath: "build/integrationTestFiles"
|
||||||
|
|
||||||
- task: ShellScript@2
|
- task: ShellScript@2
|
||||||
displayName: Run C++ Tests
|
displayName: Run C++ Tests
|
||||||
inputs:
|
inputs:
|
||||||
scriptPath: test-scripts/deploy-and-run-test-on-robot.sh
|
scriptPath: test-scripts/deploy-and-run-test-on-robot.sh
|
||||||
args: 'cpp -A "--gtest_output=xml:/home/admin/testResults/cppreport.xml"'
|
args: 'cpp -A "--gtest_output=xml:/home/admin/testResults/cppreport.xml"'
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
- task: PublishTestResults@2
|
||||||
displayName: Publish C++ Test Results
|
displayName: Publish C++ Test Results
|
||||||
inputs:
|
inputs:
|
||||||
testResultsFormat: 'JUnit'
|
testResultsFormat: "JUnit"
|
||||||
testResultsFiles: '*.xml'
|
testResultsFiles: "*.xml"
|
||||||
testRunTitle: 'C++ Test Report'
|
testRunTitle: "C++ Test Report"
|
||||||
searchFolder: '$(System.DefaultWorkingDirectory)/test-reports'
|
searchFolder: "$(System.DefaultWorkingDirectory)/test-reports"
|
||||||
|
|
||||||
- job: Java
|
- job: Java
|
||||||
pool: RoboRioConnections
|
pool: RoboRioConnections
|
||||||
timeoutInMinutes: 30
|
timeoutInMinutes: 30
|
||||||
workspace:
|
workspace:
|
||||||
clean: all
|
clean: all
|
||||||
steps:
|
steps:
|
||||||
- task: DownloadPipelineArtifact@0
|
- task: DownloadPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: 'Integration Tests'
|
artifactName: "Integration Tests"
|
||||||
targetPath: 'build/integrationTestFiles'
|
targetPath: "build/integrationTestFiles"
|
||||||
|
|
||||||
- task: ShellScript@2
|
- task: ShellScript@2
|
||||||
displayName: Run Java Tests
|
displayName: Run Java Tests
|
||||||
inputs:
|
inputs:
|
||||||
scriptPath: test-scripts/deploy-and-run-test-on-robot.sh
|
scriptPath: test-scripts/deploy-and-run-test-on-robot.sh
|
||||||
args: 'java'
|
args: "java"
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
- task: PublishTestResults@2
|
||||||
displayName: Publish Java Test Results
|
displayName: Publish Java Test Results
|
||||||
inputs:
|
inputs:
|
||||||
testResultsFormat: 'JUnit'
|
testResultsFormat: "JUnit"
|
||||||
testResultsFiles: '*.xml'
|
testResultsFiles: "*.xml"
|
||||||
testRunTitle: 'Java Test Report'
|
testRunTitle: "Java Test Report"
|
||||||
searchFolder: '$(System.DefaultWorkingDirectory)/test-reports'
|
searchFolder: "$(System.DefaultWorkingDirectory)/test-reports"
|
||||||
|
|||||||
39
build.gradle
39
build.gradle
@@ -118,8 +118,12 @@ subprojects {
|
|||||||
String path = task.getLinkedFile().getAsFile().get().getAbsolutePath()
|
String path = task.getLinkedFile().getAsFile().get().getAbsolutePath()
|
||||||
exec {
|
exec {
|
||||||
workingDir rootDir
|
workingDir rootDir
|
||||||
def args = ["sh", "-c", "codesign --force --strict --timestamp --options=runtime " +
|
def args = [
|
||||||
"--verbose -s ${project.findProperty("developerID")} ${path}"]
|
"sh",
|
||||||
|
"-c",
|
||||||
|
"codesign --force --strict --timestamp --options=runtime " +
|
||||||
|
"--verbose -s ${project.findProperty("developerID")} ${path}"
|
||||||
|
]
|
||||||
commandLine args
|
commandLine args
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -136,13 +140,42 @@ spotless {
|
|||||||
java {
|
java {
|
||||||
target fileTree('.') {
|
target fileTree('.') {
|
||||||
include '**/*.java'
|
include '**/*.java'
|
||||||
exclude '**/manualTests/**', '**/build*/**'
|
exclude '**/build/**', '**/build-*/**'
|
||||||
}
|
}
|
||||||
googleJavaFormat()
|
googleJavaFormat()
|
||||||
removeUnusedImports()
|
removeUnusedImports()
|
||||||
trimTrailingWhitespace()
|
trimTrailingWhitespace()
|
||||||
endWithNewline()
|
endWithNewline()
|
||||||
}
|
}
|
||||||
|
groovyGradle {
|
||||||
|
target fileTree('.') {
|
||||||
|
include '**/*.gradle'
|
||||||
|
exclude '**/build/**', '**/build-*/**'
|
||||||
|
}
|
||||||
|
greclipse()
|
||||||
|
indentWithSpaces(4)
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
format 'xml', {
|
||||||
|
target fileTree('.') {
|
||||||
|
include '**/*.xml'
|
||||||
|
exclude '**/build/**', '**/build-*/**'
|
||||||
|
}
|
||||||
|
eclipseWtp('xml')
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
indentWithSpaces(2)
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
format 'misc', {
|
||||||
|
target fileTree('.') {
|
||||||
|
include '**/*.md', '**/.gitignore'
|
||||||
|
exclude '**/build/**', '**/build-*/**'
|
||||||
|
}
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
indentWithSpaces(2)
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapper {
|
wrapper {
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ dependencies {
|
|||||||
|
|
||||||
ext {
|
ext {
|
||||||
sharedCvConfigs = [cameraserver : [],
|
sharedCvConfigs = [cameraserver : [],
|
||||||
cameraserverBase: [],
|
cameraserverBase: [],
|
||||||
cameraserverDev : [],
|
cameraserverDev : [],
|
||||||
cameraserverTest: []]
|
cameraserverTest: []]
|
||||||
staticCvConfigs = [:]
|
staticCvConfigs = [:]
|
||||||
useJava = true
|
useJava = true
|
||||||
useCpp = true
|
useCpp = true
|
||||||
@@ -32,14 +32,32 @@ apply from: "${rootDir}/shared/opencv.gradle"
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
cameraserver {
|
cameraserver {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ model {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
binaries.all { binary ->
|
binaries.all { binary ->
|
||||||
lib project: ':cameraserver', library: 'cameraserver', linkage: 'static'
|
lib project: ':cameraserver', library: 'cameraserver', linkage: 'static'
|
||||||
lib project: ':ntcore', library: 'ntcore', linkage: 'static'
|
lib project: ':ntcore', library: 'ntcore', linkage: 'static'
|
||||||
lib project: ':cscore', library: 'cscore', linkage: 'static'
|
lib project: ':cscore', library: 'cscore', linkage: 'static'
|
||||||
lib project: ':wpiutil', library: 'wpiutil', linkage: 'static'
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'static'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,12 +60,12 @@ model {
|
|||||||
|
|
||||||
ext {
|
ext {
|
||||||
sharedCvConfigs = [cscore : [],
|
sharedCvConfigs = [cscore : [],
|
||||||
cscoreBase: [],
|
cscoreBase: [],
|
||||||
cscoreDev : [],
|
cscoreDev : [],
|
||||||
cscoreTest: [],
|
cscoreTest: [],
|
||||||
cscoreJNIShared: []]
|
cscoreJNIShared: []]
|
||||||
staticCvConfigs = [cscoreJNI: [],
|
staticCvConfigs = [cscoreJNI: [],
|
||||||
cscoreJNICvStatic: []]
|
cscoreJNICvStatic: []]
|
||||||
useJava = true
|
useJava = true
|
||||||
useCpp = true
|
useCpp = true
|
||||||
cvStaticBuild = true
|
cvStaticBuild = true
|
||||||
@@ -127,27 +127,45 @@ def examplesMap = [:];
|
|||||||
|
|
||||||
File examplesTree = file("$projectDir/examples")
|
File examplesTree = file("$projectDir/examples")
|
||||||
examplesTree.list(new FilenameFilter() {
|
examplesTree.list(new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File current, String name) {
|
public boolean accept(File current, String name) {
|
||||||
return new File(current, name).isDirectory();
|
return new File(current, name).isDirectory();
|
||||||
}
|
}
|
||||||
}).each {
|
}).each {
|
||||||
sharedCvConfigs.put(it, [])
|
sharedCvConfigs.put(it, [])
|
||||||
examplesMap.put(it, [])
|
examplesMap.put(it, [])
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/shared/opencv.gradle"
|
apply from: "${rootDir}/shared/opencv.gradle"
|
||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
cscore {
|
cscore {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
cscoreJNI {
|
cscoreJNI {
|
||||||
x86SymbolFilter = { symbols ->
|
x86SymbolFilter = { symbols ->
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ cppProjectZips.add(project(':wpilibNewCommands').cppHeadersZip)
|
|||||||
doxygen {
|
doxygen {
|
||||||
executables {
|
executables {
|
||||||
doxygen version : '1.8.18',
|
doxygen version : '1.8.18',
|
||||||
baseURI : 'https://frcmaven.wpi.edu/artifactory/generic-release-mirror/doxygen'
|
baseURI : 'https://frcmaven.wpi.edu/artifactory/generic-release-mirror/doxygen'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,32 @@ if (!project.hasProperty('onlylinuxathena') && !project.hasProperty('onlylinuxra
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
glass {
|
glass {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,10 +29,14 @@ model {
|
|||||||
// Get path to binary.
|
// Get path to binary.
|
||||||
exec {
|
exec {
|
||||||
workingDir rootDir
|
workingDir rootDir
|
||||||
def args = ["sh", "-c", "codesign --force --strict --deep " +
|
def args = [
|
||||||
"--timestamp --options=runtime " +
|
"sh",
|
||||||
"--verbose -s ${project.findProperty("developerID")} " +
|
"-c",
|
||||||
"$project.buildDir/outputs/bundles/Glass.app/"]
|
"codesign --force --strict --deep " +
|
||||||
|
"--timestamp --options=runtime " +
|
||||||
|
"--verbose -s ${project.findProperty("developerID")} " +
|
||||||
|
"$project.buildDir/outputs/bundles/Glass.app/"
|
||||||
|
]
|
||||||
commandLine args
|
commandLine args
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,14 +129,32 @@ cppHeadersZip {
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
hal {
|
hal {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
halJNI {
|
halJNI {
|
||||||
x86SymbolFilter = { symbols ->
|
x86SymbolFilter = { symbols ->
|
||||||
@@ -152,9 +170,9 @@ model {
|
|||||||
binaries {
|
binaries {
|
||||||
all {
|
all {
|
||||||
if (!(it instanceof NativeBinarySpec)) return
|
if (!(it instanceof NativeBinarySpec)) return
|
||||||
if (it.component.name != 'hal' && it.component.name != 'halBase') return
|
if (it.component.name != 'hal' && it.component.name != 'halBase') return
|
||||||
if (it.targetPlatform.name != nativeUtils.wpi.platforms.roborio) return
|
if (it.targetPlatform.name != nativeUtils.wpi.platforms.roborio) return
|
||||||
nativeUtils.useRequiredLibrary(it, 'netcomm_shared', 'chipobject_shared', 'visa_shared')
|
nativeUtils.useRequiredLibrary(it, 'netcomm_shared', 'chipobject_shared', 'visa_shared')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,91 +1,91 @@
|
|||||||
import org.gradle.nativeplatform.toolchain.internal.msvcpp.VisualStudioLocator
|
import org.gradle.nativeplatform.toolchain.internal.msvcpp.VisualStudioLocator
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
import org.gradle.util.VersionNumber
|
import org.gradle.util.VersionNumber
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'cpp'
|
id 'cpp'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OperatingSystem.current().isWindows()) {
|
if (OperatingSystem.current().isWindows()) {
|
||||||
def outputsFolder = file("$buildDir/outputs")
|
def outputsFolder = file("$buildDir/outputs")
|
||||||
|
|
||||||
def baseArtifactId = 'runtime'
|
def baseArtifactId = 'runtime'
|
||||||
def artifactGroupId = "edu.wpi.first.msvc"
|
def artifactGroupId = "edu.wpi.first.msvc"
|
||||||
def zipBaseName = "_GROUP_edu_wpi_first_msvc_ID_runtime_CLS"
|
def zipBaseName = "_GROUP_edu_wpi_first_msvc_ID_runtime_CLS"
|
||||||
|
|
||||||
def vsLocator = gradle.services.get(VisualStudioLocator)
|
def vsLocator = gradle.services.get(VisualStudioLocator)
|
||||||
|
|
||||||
def vsLocation = vsLocator.locateAllComponents().first()
|
def vsLocation = vsLocator.locateAllComponents().first()
|
||||||
|
|
||||||
def visualCppVersion = vsLocation.visualCpp.version
|
def visualCppVersion = vsLocation.visualCpp.version
|
||||||
|
|
||||||
def vsDirectory = vsLocation.visualStudioDir
|
def vsDirectory = vsLocation.visualStudioDir
|
||||||
|
|
||||||
def runtimeLocation = file("$vsDirectory\\VC\\Redist\\MSVC")
|
def runtimeLocation = file("$vsDirectory\\VC\\Redist\\MSVC")
|
||||||
|
|
||||||
def runtimeVerNumber = null
|
def runtimeVerNumber = null
|
||||||
|
|
||||||
runtimeLocation.eachFile {
|
runtimeLocation.eachFile {
|
||||||
def verNumber = VersionNumber.parse(it.name)
|
def verNumber = VersionNumber.parse(it.name)
|
||||||
if (verNumber.major == visualCppVersion.major && verNumber.minor == visualCppVersion.minor) {
|
if (verNumber.major == visualCppVersion.major && verNumber.minor == visualCppVersion.minor) {
|
||||||
runtimeVerNumber = verNumber
|
runtimeVerNumber = verNumber
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runtimeVerNumber != null) {
|
if (runtimeVerNumber != null) {
|
||||||
runtimeLocation = file("$runtimeLocation\\$runtimeVerNumber")
|
runtimeLocation = file("$runtimeLocation\\$runtimeVerNumber")
|
||||||
|
|
||||||
def x86Folder = null
|
def x86Folder = null
|
||||||
|
|
||||||
file("$runtimeLocation\\x86").eachFile {
|
file("$runtimeLocation\\x86").eachFile {
|
||||||
if (it.name.endsWith('.CRT')) {
|
if (it.name.endsWith('.CRT')) {
|
||||||
x86Folder = it
|
x86Folder = it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def x64Folder = null
|
def x64Folder = null
|
||||||
|
|
||||||
file("$runtimeLocation\\x64").eachFile {
|
file("$runtimeLocation\\x64").eachFile {
|
||||||
if (it.name.endsWith('.CRT')) {
|
if (it.name.endsWith('.CRT')) {
|
||||||
x64Folder = it
|
x64Folder = it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def x86ZipTask = tasks.create('x86RuntimeZip', Zip) {
|
def x86ZipTask = tasks.create('x86RuntimeZip', Zip) {
|
||||||
destinationDirectory = outputsFolder
|
destinationDirectory = outputsFolder
|
||||||
archiveBaseName = zipBaseName
|
archiveBaseName = zipBaseName
|
||||||
classifier = 'x86'
|
classifier = 'x86'
|
||||||
|
|
||||||
from x86Folder
|
from x86Folder
|
||||||
}
|
}
|
||||||
|
|
||||||
def x64ZipTask = tasks.create('x64RuntimeZip', Zip) {
|
def x64ZipTask = tasks.create('x64RuntimeZip', Zip) {
|
||||||
destinationDirectory = outputsFolder
|
destinationDirectory = outputsFolder
|
||||||
archiveBaseName = zipBaseName
|
archiveBaseName = zipBaseName
|
||||||
classifier = 'x64'
|
classifier = 'x64'
|
||||||
|
|
||||||
from x64Folder
|
from x64Folder
|
||||||
}
|
}
|
||||||
|
|
||||||
addTaskToCopyAllOutputs(x86ZipTask)
|
addTaskToCopyAllOutputs(x86ZipTask)
|
||||||
addTaskToCopyAllOutputs(x64ZipTask)
|
addTaskToCopyAllOutputs(x64ZipTask)
|
||||||
|
|
||||||
build.dependsOn x86ZipTask
|
build.dependsOn x86ZipTask
|
||||||
build.dependsOn x64ZipTask
|
build.dependsOn x64ZipTask
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
|
|
||||||
runtime(MavenPublication) {
|
runtime(MavenPublication) {
|
||||||
artifact x86ZipTask
|
artifact x86ZipTask
|
||||||
artifact x64ZipTask
|
artifact x64ZipTask
|
||||||
|
|
||||||
artifactId = "${baseArtifactId}"
|
artifactId = "${baseArtifactId}"
|
||||||
groupId artifactGroupId
|
groupId artifactGroupId
|
||||||
version wpilibVersioning.version.get()
|
version wpilibVersioning.version.get()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ deploy {
|
|||||||
postdeploy << { ctx ->
|
postdeploy << { ctx ->
|
||||||
ctx.execute('chmod +x myRobotCpp')
|
ctx.execute('chmod +x myRobotCpp')
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nativeArtifact('myRobotCppStatic') {
|
nativeArtifact('myRobotCppStatic') {
|
||||||
@@ -136,9 +135,7 @@ dependencies {
|
|||||||
implementation project(':wpilibNewCommands')
|
implementation project(':wpilibNewCommands')
|
||||||
}
|
}
|
||||||
|
|
||||||
def simProjects = [
|
def simProjects = ['halsim_gui']
|
||||||
'halsim_gui'
|
|
||||||
]
|
|
||||||
|
|
||||||
model {
|
model {
|
||||||
components {
|
components {
|
||||||
|
|||||||
@@ -7,14 +7,32 @@ apply from: "${rootDir}/shared/jni/setupBuild.gradle"
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
ntcore {
|
ntcore {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
ntcoreJNI {
|
ntcoreJNI {
|
||||||
x86SymbolFilter = { symbols ->
|
x86SymbolFilter = { symbols ->
|
||||||
|
|||||||
@@ -18,10 +18,13 @@ public class Client {
|
|||||||
NetworkTable.setPort(10000);
|
NetworkTable.setPort(10000);
|
||||||
NetworkTable.setClientMode();
|
NetworkTable.setClientMode();
|
||||||
NetworkTable nt = NetworkTable.getTable("");
|
NetworkTable nt = NetworkTable.getTable("");
|
||||||
try { Thread.sleep(2000); } catch (InterruptedException e) {}
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
System.out.println("Got foo: " + nt.getNumber("foo"));
|
System.out.println("Got foo: " + nt.getNumber("foo"));
|
||||||
} catch(TableKeyNotDefinedException ex) {
|
} catch (TableKeyNotDefinedException ex) {
|
||||||
}
|
}
|
||||||
nt.putBoolean("bar", false);
|
nt.putBoolean("bar", false);
|
||||||
nt.setFlags("bar", NetworkTable.PERSISTENT);
|
nt.setFlags("bar", NetworkTable.PERSISTENT);
|
||||||
@@ -38,6 +41,9 @@ public class Client {
|
|||||||
strs[0] = "Hello";
|
strs[0] = "Hello";
|
||||||
strs[1] = "World";
|
strs[1] = "World";
|
||||||
nt.putStringArray("strarray", strs);
|
nt.putStringArray("strarray", strs);
|
||||||
try { Thread.sleep(10000); } catch (InterruptedException e) {}
|
try {
|
||||||
|
Thread.sleep(10000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,13 +18,19 @@ public class Server {
|
|||||||
NetworkTable.setPort(10000);
|
NetworkTable.setPort(10000);
|
||||||
NetworkTable.setServerMode();
|
NetworkTable.setServerMode();
|
||||||
NetworkTable nt = NetworkTable.getTable("");
|
NetworkTable nt = NetworkTable.getTable("");
|
||||||
try { Thread.sleep(1000); } catch (InterruptedException e) {}
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
nt.putNumber("foo", 0.5);
|
nt.putNumber("foo", 0.5);
|
||||||
nt.setFlags("foo", NetworkTable.PERSISTENT);
|
nt.setFlags("foo", NetworkTable.PERSISTENT);
|
||||||
nt.putNumber("foo2", 0.5);
|
nt.putNumber("foo2", 0.5);
|
||||||
nt.putNumber("foo2", 0.7);
|
nt.putNumber("foo2", 0.7);
|
||||||
nt.putNumber("foo2", 0.6);
|
nt.putNumber("foo2", 0.6);
|
||||||
nt.putNumber("foo2", 0.5);
|
nt.putNumber("foo2", 0.5);
|
||||||
try { Thread.sleep(10000); } catch (InterruptedException e) {}
|
try {
|
||||||
|
Thread.sleep(10000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,16 +5,16 @@ nativeUtils.withRoboRIO()
|
|||||||
nativeUtils.withRaspbian()
|
nativeUtils.withRaspbian()
|
||||||
nativeUtils.withBionic()
|
nativeUtils.withBionic()
|
||||||
nativeUtils {
|
nativeUtils {
|
||||||
wpi {
|
wpi {
|
||||||
configureDependencies {
|
configureDependencies {
|
||||||
wpiVersion = "-1"
|
wpiVersion = "-1"
|
||||||
niLibVersion = "2020.10.1"
|
niLibVersion = "2020.10.1"
|
||||||
opencvVersion = "3.4.7-5"
|
opencvVersion = "3.4.7-5"
|
||||||
googleTestVersion = "1.9.0-5-437e100-1"
|
googleTestVersion = "1.9.0-5-437e100-1"
|
||||||
imguiVersion = "1.76-10"
|
imguiVersion = "1.76-10"
|
||||||
wpimathVersion = "-1"
|
wpimathVersion = "-1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nativeUtils.wpi.addWarnings()
|
nativeUtils.wpi.addWarnings()
|
||||||
@@ -26,7 +26,7 @@ nativeUtils.enableSourceLink()
|
|||||||
|
|
||||||
nativeUtils.platformConfigs.each {
|
nativeUtils.platformConfigs.each {
|
||||||
if (it.name.contains('windows')) return
|
if (it.name.contains('windows')) return
|
||||||
it.linker.args << '-Wl,-rpath,\'$ORIGIN\''
|
it.linker.args << '-Wl,-rpath,\'$ORIGIN\''
|
||||||
if (it.name == 'osxx86-64') {
|
if (it.name == 'osxx86-64') {
|
||||||
it.linker.args << "-headerpad_max_install_names"
|
it.linker.args << "-headerpad_max_install_names"
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ ext.createComponentZipTasks = { components, names, base, type, project, func ->
|
|||||||
if (it in NativeLibrarySpec && stringNames.contains(it.name)) {
|
if (it in NativeLibrarySpec && stringNames.contains(it.name)) {
|
||||||
it.binaries.each {
|
it.binaries.each {
|
||||||
if (!it.buildable) return
|
if (!it.buildable) return
|
||||||
def target = nativeUtils.getPublishClassifier(it)
|
def target = nativeUtils.getPublishClassifier(it)
|
||||||
if (configMap.containsKey(target)) {
|
if (configMap.containsKey(target)) {
|
||||||
configMap.get(target).add(it)
|
configMap.get(target).add(it)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
model {
|
model {
|
||||||
tasks {
|
tasks {
|
||||||
def ts = $.testSuites
|
def ts = $.testSuites
|
||||||
project.tasks.register('testDesktopCpp') { testTask->
|
project.tasks.register('testDesktopCpp') { testTask->
|
||||||
def systemArch = getCurrentArch()
|
def systemArch = getCurrentArch()
|
||||||
def found = false
|
def found = false
|
||||||
ts.each {
|
ts.each {
|
||||||
if (it in GoogleTestTestSuiteSpec && it.name == "${nativeName}Test") {
|
if (it in GoogleTestTestSuiteSpec && it.name == "${nativeName}Test") {
|
||||||
it.binaries.each {
|
it.binaries.each {
|
||||||
if (found) return
|
if (found) return
|
||||||
def arch = it.targetPlatform.name
|
def arch = it.targetPlatform.name
|
||||||
if (arch == systemArch && it.buildType.name == 'debug') {
|
if (arch == systemArch && it.buildType.name == 'debug') {
|
||||||
testTask.dependsOn it.tasks.run
|
testTask.dependsOn it.tasks.run
|
||||||
found = true
|
found = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
tasks.register('testDesktopJava') {
|
tasks.register('testDesktopJava') {
|
||||||
dependsOn test
|
dependsOn test
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,10 @@ addTaskToCopyAllOutputs(cppHeadersZip)
|
|||||||
|
|
||||||
model {
|
model {
|
||||||
publishing {
|
publishing {
|
||||||
def taskList = createComponentZipTasks($.components, [nativeName, "${nativeName}JNIShared"], zipBaseName, Zip, project, includeStandardZipFormat)
|
def taskList = createComponentZipTasks($.components, [
|
||||||
|
nativeName,
|
||||||
|
"${nativeName}JNIShared"
|
||||||
|
], zipBaseName, Zip, project, includeStandardZipFormat)
|
||||||
|
|
||||||
def jniTaskList = createComponentZipTasks($.components, ["${nativeName}JNI"], jniBaseName, Jar, project, { task, value ->
|
def jniTaskList = createComponentZipTasks($.components, ["${nativeName}JNI"], jniBaseName, Jar, project, { task, value ->
|
||||||
value.each { binary ->
|
value.each { binary ->
|
||||||
|
|||||||
@@ -117,7 +117,6 @@ model {
|
|||||||
}
|
}
|
||||||
include '**/*.h'
|
include '**/*.h'
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binaries.all {
|
binaries.all {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ ext.createGenerateResourcesTask = { name, prefix, namespace, project ->
|
|||||||
generatedOutputDir.mkdirs()
|
generatedOutputDir.mkdirs()
|
||||||
inputDir.eachFile { inputFile ->
|
inputDir.eachFile { inputFile ->
|
||||||
if (inputFile.name.startsWith('.')) return
|
if (inputFile.name.startsWith('.')) return
|
||||||
def fileBytes = inputFile.bytes
|
def fileBytes = inputFile.bytes
|
||||||
def outputFile = file("$generatedOutputDir/${inputFile.name}.cpp")
|
def outputFile = file("$generatedOutputDir/${inputFile.name}.cpp")
|
||||||
def funcName = "GetResource_" + inputFile.name.replaceAll('[^a-zA-Z0-9]', '_')
|
def funcName = "GetResource_" + inputFile.name.replaceAll('[^a-zA-Z0-9]', '_')
|
||||||
outputFile.withWriter { out ->
|
outputFile.withWriter { out ->
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ model {
|
|||||||
cpp.lib library: "${component.name}", linkage: "static"
|
cpp.lib library: "${component.name}", linkage: "static"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Finish writing the test case */
|
/* TODO: Finish writing the test case */
|
||||||
@@ -97,7 +96,7 @@ model {
|
|||||||
// project(':gmock').addGmockToLinker(it)
|
// project(':gmock').addGmockToLinker(it)
|
||||||
//}
|
//}
|
||||||
//else {
|
//else {
|
||||||
buildable = false
|
buildable = false
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,9 @@ ext.skiplinuxraspbian = true
|
|||||||
apply from: "${rootDir}/shared/config.gradle"
|
apply from: "${rootDir}/shared/config.gradle"
|
||||||
|
|
||||||
/* Use a sort of poor man's autoconf to find the protobuf development
|
/* Use a sort of poor man's autoconf to find the protobuf development
|
||||||
files; on Debian, those are supplied by libprotobuf-dev.
|
files; on Debian, those are supplied by libprotobuf-dev.
|
||||||
|
This should get skipped on Windows.
|
||||||
This should get skipped on Windows.
|
TODO: Add Windows support for the simulation code */
|
||||||
|
|
||||||
TODO: Add Windows support for the simulation code */
|
|
||||||
|
|
||||||
def protobuf_version = ""
|
def protobuf_version = ""
|
||||||
try {
|
try {
|
||||||
@@ -41,14 +39,14 @@ tasks.whenTaskAdded { task ->
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "com.google.protobuf:protobuf-java:${protobuf_version}"
|
implementation "com.google.protobuf:protobuf-java:${protobuf_version}"
|
||||||
implementation "com.google.protobuf:protoc:${protobuf_version}"
|
implementation "com.google.protobuf:protoc:${protobuf_version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
/* There is a nice gradle plugin for protobuf, and the protoc tool
|
/* There is a nice gradle plugin for protobuf, and the protoc tool
|
||||||
is included; using it simplifies our build process.
|
is included; using it simplifies our build process.
|
||||||
The trick is that we have to use the same version as the system
|
The trick is that we have to use the same version as the system
|
||||||
copy of libprotobuf-dev */
|
copy of libprotobuf-dev */
|
||||||
protobuf {
|
protobuf {
|
||||||
protoc {
|
protoc {
|
||||||
artifact = "com.google.protobuf:protoc:${protobuf_version}"
|
artifact = "com.google.protobuf:protoc:${protobuf_version}"
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ def gz_msgs_project = project(":simulation:gz_msgs")
|
|||||||
if (!gz_msgs_project.hasProperty('skip_gz_msgs') && !project.hasProperty('skip_frc_plugins')) {
|
if (!gz_msgs_project.hasProperty('skip_gz_msgs') && !project.hasProperty('skip_frc_plugins')) {
|
||||||
|
|
||||||
apply from: "${rootDir}/shared/plugins/setupBuild.gradle"
|
apply from: "${rootDir}/shared/plugins/setupBuild.gradle"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model {
|
model {
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ if (!project.hasProperty('onlylinuxathena')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
lib project: ":simulation:halsim_ws_core", library: "halsim_ws_core", linkage: "static"
|
lib project: ":simulation:halsim_ws_core", library: "halsim_ws_core", linkage: "static"
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ if (!project.hasProperty('onlylinuxathena')) {
|
|||||||
binaries.all {
|
binaries.all {
|
||||||
project(':hal').addHalDependency(it, 'shared')
|
project(':hal').addHalDependency(it, 'shared')
|
||||||
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
||||||
|
|
||||||
}
|
}
|
||||||
appendDebugPathToBinaries(binaries)
|
appendDebugPathToBinaries(binaries)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ model {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(RunTestExecutable) {
|
tasks.withType(RunTestExecutable) {
|
||||||
|
|||||||
@@ -2,90 +2,77 @@
|
|||||||
<!DOCTYPE
|
<!DOCTYPE
|
||||||
module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
||||||
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
||||||
<!--
|
<!-- Checkstyle configuration that checks the Google coding conventions from
|
||||||
Checkstyle configuration that checks the Google coding conventions from Google Java Style
|
Google Java Style that can be found at https://google.github.io/styleguide/javaguide.html.
|
||||||
that can be found at https://google.github.io/styleguide/javaguide.html.
|
Checkstyle is very configurable. Be sure to read the documentation at http://checkstyle.sf.net
|
||||||
|
(or in your downloaded distribution). To completely disable a check, just
|
||||||
Checkstyle is very configurable. Be sure to read the documentation at
|
comment it out or delete it from the file. Authors: Max Vetrenko, Ruslan
|
||||||
http://checkstyle.sf.net (or in your downloaded distribution).
|
Diachenko, Roman Ivanov. -->
|
||||||
|
|
||||||
To completely disable a check, just comment it out or delete it from the file.
|
|
||||||
|
|
||||||
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
|
|
||||||
-->
|
|
||||||
<module name="Checker">
|
<module name="Checker">
|
||||||
<property name="charset"
|
<property name="charset" value="UTF-8" />
|
||||||
value="UTF-8" />
|
<property name="severity" value="error" />
|
||||||
<property name="severity"
|
|
||||||
value="error" />
|
|
||||||
<module name="SuppressionFilter">
|
<module name="SuppressionFilter">
|
||||||
<property name="file"
|
<property name="file" value="${config_loc}/suppressions.xml" />
|
||||||
value="${config_loc}/suppressions.xml" />
|
|
||||||
</module>
|
</module>
|
||||||
<property name="fileExtensions"
|
<property name="fileExtensions" value="java, properties, xml" />
|
||||||
value="java, properties, xml" />
|
<!-- Checks for whitespace -->
|
||||||
<!-- Checks for whitespace -->
|
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
||||||
<module name="FileTabCharacter">
|
<module name="FileTabCharacter">
|
||||||
<property name="eachLine"
|
<property name="eachLine" value="true" />
|
||||||
value="true" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="LineLength">
|
<module name="LineLength">
|
||||||
<property name="fileExtensions" value="java"/>
|
<property name="fileExtensions" value="java" />
|
||||||
<property name="max" value="100"/>
|
<property name="max" value="100" />
|
||||||
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
|
<property name="ignorePattern"
|
||||||
|
value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
|
||||||
</module>
|
</module>
|
||||||
<module name="NewlineAtEndOfFile" />
|
<module name="NewlineAtEndOfFile" />
|
||||||
<module name="SuppressWarningsFilter" />
|
<module name="SuppressWarningsFilter" />
|
||||||
<module name="TreeWalker">
|
<module name="TreeWalker">
|
||||||
<module name="SuppressionCommentFilter">
|
<module name="SuppressionCommentFilter">
|
||||||
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
|
<property name="offCommentFormat"
|
||||||
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
|
value="CHECKSTYLE.OFF\: ([\w\|]+)" />
|
||||||
<property name="checkFormat" value="$1"/>
|
<property name="onCommentFormat"
|
||||||
|
value="CHECKSTYLE.ON\: ([\w\|]+)" />
|
||||||
|
<property name="checkFormat" value="$1" />
|
||||||
</module>
|
</module>
|
||||||
<module name="SuppressWarningsHolder" />
|
<module name="SuppressWarningsHolder" />
|
||||||
<module name="OuterTypeFilename" />
|
<module name="OuterTypeFilename" />
|
||||||
<module name="IllegalTokenText">
|
<module name="IllegalTokenText">
|
||||||
<property name="tokens"
|
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL" />
|
||||||
value="STRING_LITERAL, CHAR_LITERAL" />
|
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)" />
|
value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)" />
|
||||||
<property name="message"
|
<property name="message"
|
||||||
value="Avoid using corresponding octal or Unicode escape." />
|
value="Avoid using corresponding octal or Unicode escape." />
|
||||||
</module>
|
</module>
|
||||||
<module name="IllegalTokenText">
|
<module name="IllegalTokenText">
|
||||||
<property name="tokens"
|
<property name="tokens" value="NUM_INT,NUM_LONG" />
|
||||||
value="NUM_INT,NUM_LONG"/>
|
<property name="format" value="^0[^lx]" />
|
||||||
<property name="format"
|
<property name="ignoreCase" value="true" />
|
||||||
value="^0[^lx]"/>
|
|
||||||
<property name="ignoreCase"
|
|
||||||
value="true"/>
|
|
||||||
<property name="message"
|
<property name="message"
|
||||||
value="Forbid leading zeros in an integer literal, other than zero and a hex literal." />
|
value="Forbid leading zeros in an integer literal, other than zero and a hex literal." />
|
||||||
</module>
|
</module>
|
||||||
<module name="IllegalTokenText">
|
<module name="IllegalTokenText">
|
||||||
<property name="tokens"
|
<property name="tokens" value="NUM_DOUBLE,NUM_FLOAT" />
|
||||||
value="NUM_DOUBLE,NUM_FLOAT"/>
|
<property name="format" value="(^\.|\.$)" />
|
||||||
<property name="format"
|
<property name="ignoreCase" value="true" />
|
||||||
value="(^\.|\.$)"/>
|
|
||||||
<property name="ignoreCase"
|
|
||||||
value="true"/>
|
|
||||||
<property name="message"
|
<property name="message"
|
||||||
value="Must use leading and trailing zero in floating point numbers." />
|
value="Must use leading and trailing zero in floating point numbers." />
|
||||||
</module>
|
</module>
|
||||||
<module name="AvoidEscapedUnicodeCharacters">
|
<module name="AvoidEscapedUnicodeCharacters">
|
||||||
<property name="allowEscapesForControlCharacters"
|
<property name="allowEscapesForControlCharacters"
|
||||||
value="true" />
|
value="true" />
|
||||||
<property name="allowByTailComment"
|
<property name="allowByTailComment" value="true" />
|
||||||
value="true" />
|
<property name="allowNonPrintableEscapes" value="true" />
|
||||||
<property name="allowNonPrintableEscapes"
|
|
||||||
value="true" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="CustomImportOrder">
|
<module name="CustomImportOrder">
|
||||||
<property name="sortImportsInGroupAlphabetically" value="true"/>
|
<property name="sortImportsInGroupAlphabetically"
|
||||||
<property name="separateLineBetweenGroups" value="true"/>
|
value="true" />
|
||||||
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
|
<property name="separateLineBetweenGroups" value="true" />
|
||||||
<property name="tokens" value="IMPORT, STATIC_IMPORT, PACKAGE_DEF"/>
|
<property name="customImportOrderRules"
|
||||||
|
value="STATIC###THIRD_PARTY_PACKAGE" />
|
||||||
|
<property name="tokens"
|
||||||
|
value="IMPORT, STATIC_IMPORT, PACKAGE_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="AvoidStarImport" />
|
<module name="AvoidStarImport" />
|
||||||
<module name="RedundantImport" />
|
<module name="RedundantImport" />
|
||||||
@@ -93,59 +80,59 @@ module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
|||||||
<module name="OneTopLevelClass" />
|
<module name="OneTopLevelClass" />
|
||||||
<module name="NoLineWrap" />
|
<module name="NoLineWrap" />
|
||||||
<module name="EmptyBlock">
|
<module name="EmptyBlock">
|
||||||
<property name="option"
|
<property name="option" value="TEXT" />
|
||||||
value="TEXT" />
|
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH" />
|
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH" />
|
||||||
</module>
|
</module>
|
||||||
<module name="NeedBraces" />
|
<module name="NeedBraces" />
|
||||||
<module name="LeftCurly">
|
<module name="LeftCurly">
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
|
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
|
||||||
INTERFACE_DEF, LAMBDA, LITERAL_CATCH, LITERAL_DEFAULT,
|
INTERFACE_DEF, LAMBDA, LITERAL_CATCH, LITERAL_DEFAULT,
|
||||||
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
|
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
|
||||||
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
|
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
|
||||||
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
|
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="RightCurly">
|
<module name="RightCurly">
|
||||||
<property name="id" value="RightCurlySame"/>
|
<property name="id" value="RightCurlySame" />
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
|
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
|
||||||
LITERAL_DO"/>
|
LITERAL_DO" />
|
||||||
</module>
|
</module>
|
||||||
<module name="RightCurly">
|
<module name="RightCurly">
|
||||||
<property name="id" value="RightCurlyAlone"/>
|
<property name="id" value="RightCurlyAlone" />
|
||||||
<property name="option" value="alone"/>
|
<property name="option" value="alone" />
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
|
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
|
||||||
INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
|
INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
|
||||||
COMPACT_CTOR_DEF"/>
|
COMPACT_CTOR_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="SuppressionXpathSingleFilter">
|
<module name="SuppressionXpathSingleFilter">
|
||||||
<!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
|
<!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
|
||||||
<property name="id" value="RightCurlyAlone"/>
|
<property name="id" value="RightCurlyAlone" />
|
||||||
<property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
|
<property name="query"
|
||||||
or preceding-sibling::*[last()][self::LCURLY]]"/>
|
value="//RCURLY[parent::SLIST[count(./*)=1]
|
||||||
|
or preceding-sibling::*[last()][self::LCURLY]]" />
|
||||||
</module>
|
</module>
|
||||||
<module name="WhitespaceAround">
|
<module name="WhitespaceAround">
|
||||||
<property name="allowEmptyConstructors" value="true"/>
|
<property name="allowEmptyConstructors" value="true" />
|
||||||
<property name="allowEmptyLambdas" value="true"/>
|
<property name="allowEmptyLambdas" value="true" />
|
||||||
<property name="allowEmptyMethods" value="true"/>
|
<property name="allowEmptyMethods" value="true" />
|
||||||
<property name="allowEmptyTypes" value="true"/>
|
<property name="allowEmptyTypes" value="true" />
|
||||||
<property name="allowEmptyLoops" value="true"/>
|
<property name="allowEmptyLoops" value="true" />
|
||||||
<property name="ignoreEnhancedForColon" value="false"/>
|
<property name="ignoreEnhancedForColon" value="false" />
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
|
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
|
||||||
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
|
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
|
||||||
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
|
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
|
||||||
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
|
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
|
||||||
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
|
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
|
||||||
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
|
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
|
||||||
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
|
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND" />
|
||||||
<message key="ws.notFollowed"
|
<message key="ws.notFollowed"
|
||||||
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
|
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)" />
|
||||||
<message key="ws.notPreceded"
|
<message key="ws.notPreceded"
|
||||||
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
|
value="WhitespaceAround: ''{0}'' is not preceded with whitespace." />
|
||||||
</module>
|
</module>
|
||||||
<module name="WhitespaceAfter" />
|
<module name="WhitespaceAfter" />
|
||||||
<module name="OneStatementPerLine" />
|
<module name="OneStatementPerLine" />
|
||||||
@@ -161,163 +148,150 @@ module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
|||||||
<module name="ModifierOrder" />
|
<module name="ModifierOrder" />
|
||||||
<module name="RedundantModifier" />
|
<module name="RedundantModifier" />
|
||||||
<module name="EmptyLineSeparator">
|
<module name="EmptyLineSeparator">
|
||||||
<property name="allowNoEmptyLineBetweenFields"
|
<property name="allowNoEmptyLineBetweenFields" value="true" />
|
||||||
value="true" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="SeparatorWrap">
|
<module name="SeparatorWrap">
|
||||||
<property name="tokens"
|
<property name="tokens" value="DOT" />
|
||||||
value="DOT" />
|
<property name="option" value="nl" />
|
||||||
<property name="option"
|
|
||||||
value="nl" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="SeparatorWrap">
|
<module name="SeparatorWrap">
|
||||||
<property name="tokens"
|
<property name="tokens" value="COMMA" />
|
||||||
value="COMMA" />
|
<property name="option" value="EOL" />
|
||||||
<property name="option"
|
|
||||||
value="EOL" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="PackageName">
|
<module name="PackageName">
|
||||||
<property name="format"
|
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
|
||||||
value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
|
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Package name ''{0}'' must match pattern ''{1}''." />
|
value="Package name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="TypeName">
|
<module name="TypeName">
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Type name ''{0}'' must match pattern ''{1}''." />
|
value="Type name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="MemberName">
|
<module name="MemberName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="^(m_[a-z]([a-zA-Z0-9]*)|value)$" />
|
value="^(m_[a-z]([a-zA-Z0-9]*)|value)$" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Member name ''{0}'' must match pattern ''{1}''." />
|
value="Member name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="ParameterName">
|
<module name="ParameterName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Parameter name ''{0}'' must match pattern ''{1}''." />
|
value="Parameter name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="LambdaParameterName">
|
<module name="LambdaParameterName">
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
<property name="format"
|
||||||
<message key="name.invalidPattern"
|
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
||||||
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
|
<message key="name.invalidPattern"
|
||||||
|
value="Lambda parameter name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="CatchParameterName">
|
<module name="CatchParameterName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Catch parameter name ''{0}'' must match pattern ''{1}''." />
|
value="Catch parameter name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="LocalVariableName">
|
<module name="LocalVariableName">
|
||||||
<property name="tokens"
|
<property name="tokens" value="VARIABLE_DEF" />
|
||||||
value="VARIABLE_DEF" />
|
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
|
||||||
<property name="allowOneCharVarInForLoop"
|
<property name="allowOneCharVarInForLoop" value="true" />
|
||||||
value="true" />
|
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Local variable name ''{0}'' must match pattern ''{1}''." />
|
value="Local variable name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="ClassTypeParameterName">
|
<module name="ClassTypeParameterName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Class type name ''{0}'' must match pattern ''{1}''." />
|
value="Class type name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="MethodTypeParameterName">
|
<module name="MethodTypeParameterName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Method type name ''{0}'' must match pattern ''{1}''." />
|
value="Method type name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="InterfaceTypeParameterName">
|
<module name="InterfaceTypeParameterName">
|
||||||
<property name="format"
|
<property name="format"
|
||||||
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Interface type name ''{0}'' must match pattern ''{1}''." />
|
value="Interface type name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<module name="NoFinalizer" />
|
<module name="NoFinalizer" />
|
||||||
<module name="GenericWhitespace">
|
<module name="GenericWhitespace">
|
||||||
<message key="ws.followed"
|
<message key="ws.followed"
|
||||||
value="GenericWhitespace ''{0}'' is followed by whitespace." />
|
value="GenericWhitespace ''{0}'' is followed by whitespace." />
|
||||||
<message key="ws.preceded"
|
<message key="ws.preceded"
|
||||||
value="GenericWhitespace ''{0}'' is preceded with whitespace." />
|
value="GenericWhitespace ''{0}'' is preceded with whitespace." />
|
||||||
<message key="ws.illegalFollow"
|
<message key="ws.illegalFollow"
|
||||||
value="GenericWhitespace ''{0}'' should followed by whitespace." />
|
value="GenericWhitespace ''{0}'' should followed by whitespace." />
|
||||||
<message key="ws.notPreceded"
|
<message key="ws.notPreceded"
|
||||||
value="GenericWhitespace ''{0}'' is not preceded with whitespace." />
|
value="GenericWhitespace ''{0}'' is not preceded with whitespace." />
|
||||||
</module>
|
</module>
|
||||||
<module name="AbbreviationAsWordInName">
|
<module name="AbbreviationAsWordInName">
|
||||||
<property name="ignoreFinal"
|
<property name="ignoreFinal" value="false" />
|
||||||
value="false" />
|
<property name="allowedAbbreviationLength" value="4" />
|
||||||
<property name="allowedAbbreviationLength"
|
|
||||||
value="4" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="OverloadMethodsDeclarationOrder" />
|
<module name="OverloadMethodsDeclarationOrder" />
|
||||||
<module name="VariableDeclarationUsageDistance" />
|
<module name="VariableDeclarationUsageDistance" />
|
||||||
<module name="MethodParamPad" />
|
<module name="MethodParamPad" />
|
||||||
<module name="TypecastParenPad" />
|
<module name="TypecastParenPad" />
|
||||||
<module name="OperatorWrap">
|
<module name="OperatorWrap">
|
||||||
<property name="option"
|
<property name="option" value="NL" />
|
||||||
value="NL" />
|
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR " />
|
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR " />
|
||||||
</module>
|
</module>
|
||||||
<module name="AnnotationLocation">
|
<module name="AnnotationLocation">
|
||||||
<property name="tokens"
|
<property name="tokens"
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="AnnotationLocation">
|
<module name="AnnotationLocation">
|
||||||
<property name="tokens"
|
<property name="tokens" value="VARIABLE_DEF" />
|
||||||
value="VARIABLE_DEF" />
|
|
||||||
<property name="allowSamelineMultipleAnnotations"
|
<property name="allowSamelineMultipleAnnotations"
|
||||||
value="true" />
|
value="true" />
|
||||||
</module>
|
</module>
|
||||||
<module name="MissingOverride" />
|
<module name="MissingOverride" />
|
||||||
<module name="NonEmptyAtclauseDescription" />
|
<module name="NonEmptyAtclauseDescription" />
|
||||||
<module name="JavadocTagContinuationIndentation" />
|
<module name="JavadocTagContinuationIndentation" />
|
||||||
<module name="SummaryJavadoc">
|
<module name="SummaryJavadoc">
|
||||||
<property name="forbiddenSummaryFragments"
|
<property name="forbiddenSummaryFragments"
|
||||||
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )" />
|
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )" />
|
||||||
</module>
|
</module>
|
||||||
<module name="JavadocParagraph" />
|
<module name="JavadocParagraph" />
|
||||||
<module name="AtclauseOrder">
|
<module name="AtclauseOrder">
|
||||||
<property name="tagOrder"
|
<property name="tagOrder"
|
||||||
value="@param, @return, @throws, @deprecated" />
|
value="@param, @return, @throws, @deprecated" />
|
||||||
<property name="target"
|
<property name="target"
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
|
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="JavadocMethod">
|
<module name="JavadocMethod">
|
||||||
<property name="scope" value="public"/>
|
<property name="scope" value="public" />
|
||||||
<property name="allowMissingParamTags" value="true"/>
|
<property name="allowMissingParamTags" value="true" />
|
||||||
<property name="allowMissingReturnTag" value="true"/>
|
<property name="allowMissingReturnTag" value="true" />
|
||||||
<property name="allowedAnnotations" value="Override, Test"/>
|
<property name="allowedAnnotations" value="Override, Test" />
|
||||||
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
|
<property name="tokens"
|
||||||
|
value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="MissingJavadocMethod">
|
<module name="MissingJavadocMethod">
|
||||||
<property name="scope" value="public"/>
|
<property name="scope" value="public" />
|
||||||
<property name="minLineCount" value="2"/>
|
<property name="minLineCount" value="2" />
|
||||||
<property name="allowedAnnotations" value="Override, Test"/>
|
<property name="allowedAnnotations" value="Override, Test" />
|
||||||
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,
|
<property name="tokens"
|
||||||
COMPACT_CTOR_DEF"/>
|
value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,
|
||||||
|
COMPACT_CTOR_DEF" />
|
||||||
</module>
|
</module>
|
||||||
<module name="MethodName">
|
<module name="MethodName">
|
||||||
<property name="format"
|
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
|
||||||
value="^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
|
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Method name ''{0}'' must match pattern ''{1}''." />
|
value="Method name ''{0}'' must match pattern ''{1}''." />
|
||||||
</module>
|
</module>
|
||||||
<!-- https://github.com/checkstyle/checkstyle/issues/4052 -->
|
<!-- https://github.com/checkstyle/checkstyle/issues/4052 -->
|
||||||
<!-- <module name="SingleLineJavadoc">
|
<!-- <module name="SingleLineJavadoc"> <property name="ignoreInlineTags"
|
||||||
<property name="ignoreInlineTags"
|
value="false" /> </module> -->
|
||||||
value="false" />
|
|
||||||
</module> -->
|
|
||||||
<module name="EmptyCatchBlock">
|
<module name="EmptyCatchBlock">
|
||||||
<property name="exceptionVariableName"
|
<property name="exceptionVariableName" value="expected" />
|
||||||
value="expected" />
|
|
||||||
</module>
|
</module>
|
||||||
<module name="CommentsIndentation" />
|
<module name="CommentsIndentation" />
|
||||||
<module name="PackageDeclaration"/>
|
<module name="PackageDeclaration" />
|
||||||
</module>
|
</module>
|
||||||
</module>
|
</module>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<ruleset name="WPILibRuleset"
|
<ruleset name="WPILibRuleset"
|
||||||
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
|
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
|
||||||
|
|
||||||
<description>PMD Ruleset for WPILib</description>
|
<description>PMD Ruleset for WPILib</description>
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod">
|
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="violationSuppressRegex"
|
<property name="violationSuppressRegex"
|
||||||
value=".*'.*Arguments\(\)'.*" />
|
value=".*'.*Arguments\(\)'.*" />
|
||||||
</properties>
|
</properties>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
@@ -67,19 +67,17 @@
|
|||||||
<exclude name="AvoidUsingShortType" />
|
<exclude name="AvoidUsingShortType" />
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule name="UnnecessaryCastRule"
|
<rule name="UnnecessaryCastRule" language="java"
|
||||||
language="java"
|
message="Avoid unnecessary casts"
|
||||||
message="Avoid unnecessary casts"
|
class="net.sourceforge.pmd.lang.java.rule.migrating.UnnecessaryCastRule"
|
||||||
class="net.sourceforge.pmd.lang.java.rule.migrating.UnnecessaryCastRule"
|
externalInfoUrl="https://github.com/pmd/pmd/blob/master/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/migrating/UnnecessaryCastRule.java" />
|
||||||
externalInfoUrl="https://github.com/pmd/pmd/blob/master/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/migrating/UnnecessaryCastRule.java" />
|
|
||||||
|
|
||||||
<!-- Custom Rules -->
|
<!-- Custom Rules -->
|
||||||
<rule name="UseRequireNonNull"
|
<rule name="UseRequireNonNull"
|
||||||
message="Use Objects.requireNonNull() instead of throwing a NullPointerException yourself."
|
message="Use Objects.requireNonNull() instead of throwing a NullPointerException yourself."
|
||||||
language="java"
|
language="java" class="net.sourceforge.pmd.lang.rule.XPathRule">
|
||||||
class="net.sourceforge.pmd.lang.rule.XPathRule">
|
|
||||||
<description>Use Objects.requireNonNull() instead of throwing a
|
<description>Use Objects.requireNonNull() instead of throwing a
|
||||||
NullPointerException yourself.</description>
|
NullPointerException yourself.</description>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="xpath">
|
<property name="xpath">
|
||||||
<value>
|
<value>
|
||||||
|
|||||||
@@ -4,11 +4,10 @@ suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
|||||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
||||||
<suppressions>
|
<suppressions>
|
||||||
<suppress files=".*sim.*"
|
<suppress files=".*sim.*"
|
||||||
checks="(LineLength|EmptyLineSeparator|ParameterName|ImportOrder|AbbreviationAsWordInName|JavadocMethod|NoFinalizer)" />
|
checks="(LineLength|EmptyLineSeparator|ParameterName|ImportOrder|AbbreviationAsWordInName|JavadocMethod|NoFinalizer)" />
|
||||||
<suppress files=".*test.*"
|
<suppress files=".*test.*" checks="MissingJavadocMethod" />
|
||||||
checks="MissingJavadocMethod" />
|
|
||||||
<suppress files=".*wpilibjIntegrationTests.*"
|
<suppress files=".*wpilibjIntegrationTests.*"
|
||||||
checks="MissingJavadocMethod" />
|
checks="MissingJavadocMethod" />
|
||||||
<suppress files=".*JNI.*"
|
<suppress files=".*JNI.*"
|
||||||
checks="(LineLength|EmptyLineSeparator|ParameterName|MissingJavadocMethod)" />
|
checks="(LineLength|EmptyLineSeparator|ParameterName|MissingJavadocMethod)" />
|
||||||
</suppressions>
|
</suppressions>
|
||||||
|
|||||||
@@ -17,14 +17,32 @@ if (!project.hasProperty('onlylinuxathena') && !project.hasProperty('onlylinuxra
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpigui {
|
wpigui {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,99 +1,117 @@
|
|||||||
ext {
|
ext {
|
||||||
nativeName = 'wpilibNewCommands'
|
nativeName = 'wpilibNewCommands'
|
||||||
devMain = 'edu.wpi.first.wpilibj.commands.DevMain'
|
devMain = 'edu.wpi.first.wpilibj.commands.DevMain'
|
||||||
}
|
}
|
||||||
|
|
||||||
evaluationDependsOn(':ntcore')
|
evaluationDependsOn(':ntcore')
|
||||||
evaluationDependsOn(':cscore')
|
evaluationDependsOn(':cscore')
|
||||||
evaluationDependsOn(':hal')
|
evaluationDependsOn(':hal')
|
||||||
evaluationDependsOn(':wpimath')
|
evaluationDependsOn(':wpimath')
|
||||||
evaluationDependsOn(':wpilibc')
|
evaluationDependsOn(':wpilibc')
|
||||||
evaluationDependsOn(':cameraserver')
|
evaluationDependsOn(':cameraserver')
|
||||||
evaluationDependsOn(':wpilibj')
|
evaluationDependsOn(':wpilibj')
|
||||||
|
|
||||||
apply from: "${rootDir}/shared/javacpp/setupBuild.gradle"
|
apply from: "${rootDir}/shared/javacpp/setupBuild.gradle"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':wpiutil')
|
implementation project(':wpiutil')
|
||||||
implementation project(':ntcore')
|
implementation project(':ntcore')
|
||||||
implementation project(':cscore')
|
implementation project(':cscore')
|
||||||
implementation project(':hal')
|
implementation project(':hal')
|
||||||
implementation project(':wpimath')
|
implementation project(':wpimath')
|
||||||
implementation project(':wpilibj')
|
implementation project(':wpilibj')
|
||||||
devImplementation project(':wpiutil')
|
devImplementation project(':wpiutil')
|
||||||
devImplementation project(':ntcore')
|
devImplementation project(':ntcore')
|
||||||
devImplementation project(':cscore')
|
devImplementation project(':cscore')
|
||||||
devImplementation project(':hal')
|
devImplementation project(':hal')
|
||||||
devImplementation project(':wpimath')
|
devImplementation project(':wpimath')
|
||||||
devImplementation project(':wpilibj')
|
devImplementation project(':wpilibj')
|
||||||
testImplementation 'com.google.guava:guava:19.0'
|
testImplementation 'com.google.guava:guava:19.0'
|
||||||
testImplementation 'org.mockito:mockito-core:2.27.0'
|
testImplementation 'org.mockito:mockito-core:2.27.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpilibNewCommands {
|
wpilibNewCommands {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
}
|
'_CT??_R0?AVout_of_range',
|
||||||
}
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
model {
|
'_CT??_R0?AVbad_cast'
|
||||||
components {}
|
]
|
||||||
binaries {
|
x64ExcludeSymbols = [
|
||||||
all {
|
'_CT??_R0?AV_System_error',
|
||||||
if (!it.buildable || !(it instanceof NativeBinarySpec)) {
|
'_CT??_R0?AVexception',
|
||||||
return
|
'_CT??_R0?AVfailure',
|
||||||
}
|
'_CT??_R0?AVruntime_error',
|
||||||
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
'_CT??_R0?AVsystem_error',
|
||||||
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
'_CTA5?AVfailure',
|
||||||
project(':hal').addHalDependency(it, 'shared')
|
'_TI5?AVfailure',
|
||||||
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
'_CT??_R0?AVout_of_range',
|
||||||
lib project: ':wpimath', library: 'wpimath', linkage: 'shared'
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
if (it.component.name == "${nativeName}Dev") {
|
'_CT??_R0?AVbad_cast'
|
||||||
lib project: ':ntcore', library: 'ntcoreJNIShared', linkage: 'shared'
|
]
|
||||||
project(':hal').addHalJniDependency(it)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it instanceof GoogleTestTestSuiteBinarySpec) {
|
model {
|
||||||
nativeUtils.useRequiredLibrary(it, 'opencv_shared')
|
components {}
|
||||||
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
binaries {
|
||||||
}
|
all {
|
||||||
if ((it instanceof NativeExecutableBinarySpec || it instanceof GoogleTestTestSuiteBinarySpec) && it.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
if (!it.buildable || !(it instanceof NativeBinarySpec)) {
|
||||||
nativeUtils.useRequiredLibrary(it, 'netcomm_shared', 'chipobject_shared', 'visa_shared', 'ni_runtime_shared')
|
return
|
||||||
}
|
}
|
||||||
}
|
lib project: ':wpilibc', library: 'wpilibc', linkage: 'shared'
|
||||||
}
|
lib project: ':ntcore', library: 'ntcore', linkage: 'shared'
|
||||||
tasks {
|
project(':hal').addHalDependency(it, 'shared')
|
||||||
def c = $.components
|
lib project: ':wpiutil', library: 'wpiutil', linkage: 'shared'
|
||||||
def found = false
|
lib project: ':wpimath', library: 'wpimath', linkage: 'shared'
|
||||||
def systemArch = getCurrentArch()
|
|
||||||
c.each {
|
if (it.component.name == "${nativeName}Dev") {
|
||||||
if (it in NativeExecutableSpec && it.name == "${nativeName}Dev") {
|
lib project: ':ntcore', library: 'ntcoreJNIShared', linkage: 'shared'
|
||||||
it.binaries.each {
|
project(':hal').addHalJniDependency(it)
|
||||||
if (!found) {
|
}
|
||||||
def arch = it.targetPlatform.name
|
|
||||||
if (arch == systemArch) {
|
if (it instanceof GoogleTestTestSuiteBinarySpec) {
|
||||||
def filePath = it.tasks.install.installDirectory.get().toString() + File.separatorChar + 'lib'
|
nativeUtils.useRequiredLibrary(it, 'opencv_shared')
|
||||||
|
lib project: ':cscore', library: 'cscore', linkage: 'shared'
|
||||||
found = true
|
}
|
||||||
}
|
if ((it instanceof NativeExecutableBinarySpec || it instanceof GoogleTestTestSuiteBinarySpec) && it.targetPlatform.name == nativeUtils.wpi.platforms.roborio) {
|
||||||
}
|
nativeUtils.useRequiredLibrary(it, 'netcomm_shared', 'chipobject_shared', 'visa_shared', 'ni_runtime_shared')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
tasks {
|
||||||
}
|
def c = $.components
|
||||||
|
def found = false
|
||||||
test {
|
def systemArch = getCurrentArch()
|
||||||
testLogging {
|
c.each {
|
||||||
outputs.upToDateWhen {false}
|
if (it in NativeExecutableSpec && it.name == "${nativeName}Dev") {
|
||||||
showStandardStreams = true
|
it.binaries.each {
|
||||||
}
|
if (!found) {
|
||||||
}
|
def arch = it.targetPlatform.name
|
||||||
|
if (arch == systemArch) {
|
||||||
|
def filePath = it.tasks.install.installDirectory.get().toString() + File.separatorChar + 'lib'
|
||||||
|
|
||||||
|
found = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test {
|
||||||
|
testLogging {
|
||||||
|
outputs.upToDateWhen {false}
|
||||||
|
showStandardStreams = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -30,14 +30,32 @@ dependencies {
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpilibOldCommands {
|
wpilibOldCommands {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,8 +73,8 @@ model {
|
|||||||
lib project: ':wpimath', library: 'wpimath', linkage: 'shared'
|
lib project: ':wpimath', library: 'wpimath', linkage: 'shared'
|
||||||
|
|
||||||
if (it.component.name == "${nativeName}Dev") {
|
if (it.component.name == "${nativeName}Dev") {
|
||||||
lib project: ':ntcore', library: 'ntcoreJNIShared', linkage: 'shared'
|
lib project: ':ntcore', library: 'ntcoreJNIShared', linkage: 'shared'
|
||||||
project(':hal').addHalJniDependency(it)
|
project(':hal').addHalJniDependency(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it instanceof GoogleTestTestSuiteBinarySpec) {
|
if (it instanceof GoogleTestTestSuiteBinarySpec) {
|
||||||
|
|||||||
@@ -62,14 +62,32 @@ apply from: "${rootDir}/shared/googletest.gradle"
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpilibc {
|
wpilibc {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +97,10 @@ model {
|
|||||||
sources {
|
sources {
|
||||||
cpp {
|
cpp {
|
||||||
source {
|
source {
|
||||||
srcDirs = ['src/main/native/cpp', "$buildDir/generated/cpp"]
|
srcDirs = [
|
||||||
|
'src/main/native/cpp',
|
||||||
|
"$buildDir/generated/cpp"
|
||||||
|
]
|
||||||
include '**/*.cpp'
|
include '**/*.cpp'
|
||||||
}
|
}
|
||||||
exportedHeaders {
|
exportedHeaders {
|
||||||
|
|||||||
@@ -17,22 +17,22 @@ ext.templatesMap = [:]
|
|||||||
|
|
||||||
File examplesTree = file("$projectDir/src/main/cpp/examples")
|
File examplesTree = file("$projectDir/src/main/cpp/examples")
|
||||||
examplesTree.list(new FilenameFilter() {
|
examplesTree.list(new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File current, String name) {
|
public boolean accept(File current, String name) {
|
||||||
return new File(current, name).isDirectory();
|
return new File(current, name).isDirectory();
|
||||||
}
|
}
|
||||||
}).each {
|
}).each {
|
||||||
examplesMap.put(it, [])
|
examplesMap.put(it, [])
|
||||||
}
|
}
|
||||||
File templatesTree = file("$projectDir/src/main/cpp/templates")
|
File templatesTree = file("$projectDir/src/main/cpp/templates")
|
||||||
templatesTree.list(new FilenameFilter() {
|
templatesTree.list(new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File current, String name) {
|
public boolean accept(File current, String name) {
|
||||||
return new File(current, name).isDirectory();
|
return new File(current, name).isDirectory();
|
||||||
}
|
}
|
||||||
}).each {
|
}).each {
|
||||||
templatesMap.put(it, [])
|
templatesMap.put(it, [])
|
||||||
}
|
}
|
||||||
|
|
||||||
nativeUtils.platformConfigs.named(nativeUtils.wpi.platforms.roborio).configure {
|
nativeUtils.platformConfigs.named(nativeUtils.wpi.platforms.roborio).configure {
|
||||||
cppCompiler.args.remove('-Wno-error=deprecated-declarations')
|
cppCompiler.args.remove('-Wno-error=deprecated-declarations')
|
||||||
|
|||||||
@@ -12,14 +12,32 @@ apply from: "${rootDir}/shared/jni/setupBuild.gradle"
|
|||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpimath {
|
wpimath {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -146,26 +146,44 @@ ext {
|
|||||||
|
|
||||||
def examplesMap = [:];
|
def examplesMap = [:];
|
||||||
file("$projectDir/examples").list(new FilenameFilter() {
|
file("$projectDir/examples").list(new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File current, String name) {
|
public boolean accept(File current, String name) {
|
||||||
return new File(current, name).isDirectory();
|
return new File(current, name).isDirectory();
|
||||||
}
|
}
|
||||||
}).each {
|
}).each {
|
||||||
examplesMap.put(it, [])
|
examplesMap.put(it, [])
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/shared/jni/setupBuild.gradle"
|
apply from: "${rootDir}/shared/jni/setupBuild.gradle"
|
||||||
|
|
||||||
nativeUtils.exportsConfigs {
|
nativeUtils.exportsConfigs {
|
||||||
wpiutil {
|
wpiutil {
|
||||||
x86ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
x86ExcludeSymbols = [
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AV_System_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CT??_R0?AVexception',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_CT??_R0?AVfailure',
|
||||||
x64ExcludeSymbols = ['_CT??_R0?AV_System_error', '_CT??_R0?AVexception', '_CT??_R0?AVfailure',
|
'_CT??_R0?AVruntime_error',
|
||||||
'_CT??_R0?AVruntime_error', '_CT??_R0?AVsystem_error', '_CTA5?AVfailure',
|
'_CT??_R0?AVsystem_error',
|
||||||
'_TI5?AVfailure', '_CT??_R0?AVout_of_range', '_CTA3?AVout_of_range',
|
'_CTA5?AVfailure',
|
||||||
'_TI3?AVout_of_range', '_CT??_R0?AVbad_cast']
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
|
x64ExcludeSymbols = [
|
||||||
|
'_CT??_R0?AV_System_error',
|
||||||
|
'_CT??_R0?AVexception',
|
||||||
|
'_CT??_R0?AVfailure',
|
||||||
|
'_CT??_R0?AVruntime_error',
|
||||||
|
'_CT??_R0?AVsystem_error',
|
||||||
|
'_CTA5?AVfailure',
|
||||||
|
'_TI5?AVfailure',
|
||||||
|
'_CT??_R0?AVout_of_range',
|
||||||
|
'_CTA3?AVout_of_range',
|
||||||
|
'_TI3?AVout_of_range',
|
||||||
|
'_CT??_R0?AVbad_cast'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +228,9 @@ model {
|
|||||||
sources {
|
sources {
|
||||||
cpp {
|
cpp {
|
||||||
source {
|
source {
|
||||||
srcDirs = ['src/netconsoleServer/native/cpp']
|
srcDirs = [
|
||||||
|
'src/netconsoleServer/native/cpp'
|
||||||
|
]
|
||||||
includes = ['**/*.cpp']
|
includes = ['**/*.cpp']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -227,7 +247,9 @@ model {
|
|||||||
sources {
|
sources {
|
||||||
cpp {
|
cpp {
|
||||||
source {
|
source {
|
||||||
srcDirs = ['src/netconsoleTee/native/cpp']
|
srcDirs = [
|
||||||
|
'src/netconsoleTee/native/cpp'
|
||||||
|
]
|
||||||
includes = ['**/*.cpp']
|
includes = ['**/*.cpp']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user