Skip to content

Commit e7c97a1

Browse files
committed
Merge remote-tracking branch 'origin/main' into mvp_all_java
2 parents 74b74b0 + f856c05 commit e7c97a1

File tree

119 files changed

+39193
-7108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+39193
-7108
lines changed

.github/workflows/cmake.yml

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ jobs:
1919
- os: ubuntu-22.04
2020
name: Linux
2121
container: wpilib/roborio-cross-ubuntu:2024-22.04
22-
flags: "--preset with-java-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON"
22+
flags: "--preset with-java-and-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON"
2323
- os: macOS-14
2424
name: macOS
2525
container: ""
2626
env: "PATH=\"/opt/homebrew/opt/protobuf@3/bin:$PATH\""
27-
flags: "--preset sccache -DCMAKE_BUILD_TYPE=Release -DWITH_JAVA=OFF -DWITH_EXAMPLES=ON -DCMAKE_LIBRARY_PATH=/opt/homebrew/opt/protobuf@3/lib -DProtobuf_INCLUDE_DIR=/opt/homebrew/opt/protobuf@3/include -DProtobuf_PROTOC_EXECUTABLE=/opt/homebrew/opt/protobuf@3/bin/protoc"
27+
flags: "--preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_LIBRARY_PATH=/opt/homebrew/opt/protobuf@3/lib -DProtobuf_INCLUDE_DIR=/opt/homebrew/opt/protobuf@3/include -DProtobuf_PROTOC_EXECUTABLE=/opt/homebrew/opt/protobuf@3/bin/protoc"
28+
- os: windows-2022
29+
name: Windows
30+
container: ""
31+
flags: '--preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_SYSTEM_FMTLIB=ON -DUSE_SYSTEM_LIBUV=ON -DUSE_SYSTEM_EIGEN=OFF -DCMAKE_TOOLCHAIN_FILE="$Env:RUNNER_WORKSPACE/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_INSTALL_OPTIONS=--clean-after-build -DVCPKG_TARGET_TRIPLET=x64-windows-release -DVCPKG_HOST_TRIPLET=x64-windows-release'
2832

2933
name: "Build - ${{ matrix.name }}"
3034
runs-on: ${{ matrix.os }}
@@ -35,52 +39,30 @@ jobs:
3539
run: sudo apt-get update && sudo apt-get install -y libopencv-dev libopencv4.5-java libprotobuf-dev protobuf-compiler ninja-build
3640

3741
- name: Install dependencies (macOS)
38-
run: brew install opencv protobuf@3 ninja
3942
if: runner.os == 'macOS'
43+
run: brew install opencv protobuf@3 ninja
4044

41-
- name: Install sccache
42-
uses: mozilla-actions/[email protected]
43-
44-
- uses: actions/checkout@v4
45-
46-
- name: configure
47-
run: cmake ${{ matrix.flags }}
48-
env:
49-
SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
50-
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
51-
52-
- name: build
53-
run: cmake --build build-cmake --parallel $(nproc)
54-
env:
55-
SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
56-
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
57-
58-
- name: test
59-
working-directory: build-cmake
60-
run: ctest --output-on-failure
61-
62-
build-windows:
63-
name: "Build - Windows"
64-
runs-on: windows-2022
65-
steps:
6645
- uses: ilammy/[email protected]
46+
if: runner.os == 'Windows'
6747

68-
- name: Install CMake
48+
- name: Install CMake (Windows only)
49+
if: runner.os == 'Windows'
6950
uses: lukka/[email protected]
7051

71-
- name: Run sccache-cache
52+
- name: Install sccache
7253
uses: mozilla-actions/[email protected]
7354

7455
- uses: actions/checkout@v4
7556

76-
- name: Run vcpkg
57+
- name: Run vcpkg (Windows only)
58+
if: runner.os == 'Windows'
7759
uses: lukka/[email protected]
7860
with:
7961
vcpkgDirectory: ${{ runner.workspace }}/vcpkg
8062
vcpkgGitCommitId: 37c3e63a1306562f7f59c4c3c8892ddd50fdf992 # HEAD on 2024-02-24
8163

8264
- name: configure
83-
run: cmake --preset sccache -DCMAKE_BUILD_TYPE=Release -DWITH_JAVA=OFF -DWITH_EXAMPLES=ON -DUSE_SYSTEM_FMTLIB=ON -DUSE_SYSTEM_LIBUV=ON -DUSE_SYSTEM_EIGEN=OFF -DCMAKE_TOOLCHAIN_FILE=${{ runner.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_INSTALL_OPTIONS=--clean-after-build -DVCPKG_TARGET_TRIPLET=x64-windows-release -DVCPKG_HOST_TRIPLET=x64-windows-release
65+
run: cmake ${{ matrix.flags }}
8466
env:
8567
SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
8668
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
@@ -92,6 +74,12 @@ jobs:
9274
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
9375

9476
- name: test
77+
if: runner.os != 'Windows'
78+
working-directory: build-cmake
79+
run: ctest --output-on-failure
80+
81+
- name: test (windows)
82+
if: runner.os == 'Windows'
9583
working-directory: build-cmake
9684
# UnitTest_test segfaults on exit occasionally
9785
run: ctest --output-on-failure -E 'UnitTest'

.github/workflows/comment-command.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
distribution: 'temurin'
4444
java-version: 17
4545
- name: Install wpiformat
46-
run: pip3 install wpiformat==2024.41
46+
run: pip3 install wpiformat==2024.42
4747
- name: Run wpiformat
4848
run: wpiformat
4949
- name: Run spotlessApply

.github/workflows/lint-format.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
with:
2828
python-version: '3.10'
2929
- name: Install wpiformat
30-
run: pip3 install wpiformat==2024.41
30+
run: pip3 install wpiformat==2024.42
3131
- name: Run
3232
run: wpiformat
3333
- name: Check output
@@ -66,7 +66,7 @@ jobs:
6666
with:
6767
python-version: '3.10'
6868
- name: Install wpiformat
69-
run: pip3 install wpiformat==2024.41
69+
run: pip3 install wpiformat==2024.42
7070
- name: Create compile_commands.json
7171
run: |
7272
./gradlew generateCompileCommands -Ptoolchain-optional-roboRio
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
name: Sentinel Build (No Cache)
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: "15 3 * * Sat" # 11:15PM EST every Friday
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
build-docker:
14+
if: (github.repository_owner == 'wpilibsuite' && github.ref == 'refs/heads/main') || github.event_name != 'schedule'
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
include:
19+
- container: wpilib/roborio-cross-ubuntu:2024-22.04
20+
artifact-name: Athena
21+
build-options: "-Ponlylinuxathena"
22+
- container: wpilib/raspbian-cross-ubuntu:bullseye-22.04
23+
artifact-name: Arm32
24+
build-options: "-Ponlylinuxarm32"
25+
- container: wpilib/aarch64-cross-ubuntu:bullseye-22.04
26+
artifact-name: Arm64
27+
build-options: "-Ponlylinuxarm64"
28+
- container: wpilib/ubuntu-base:22.04
29+
artifact-name: Linux
30+
build-options: "-Ponlylinuxx86-64"
31+
name: "Build - ${{ matrix.artifact-name }}"
32+
runs-on: ubuntu-22.04
33+
steps:
34+
- name: Free Disk Space
35+
uses: jlumbroso/free-disk-space@main
36+
with:
37+
tool-cache: false
38+
android: true
39+
dotnet: true
40+
haskell: true
41+
large-packages: false
42+
docker-images: false
43+
swap-storage: false
44+
- uses: actions/checkout@v4
45+
with:
46+
fetch-depth: 0
47+
- name: Build with Gradle
48+
uses: addnab/docker-run-action@v3
49+
with:
50+
image: ${{ matrix.container }}
51+
options: -v ${{ github.workspace }}:/work -w /work -e GITHUB_REF -e CI
52+
run: df . && rm -f semicolon_delimited_script && echo $GITHUB_REF && ./gradlew build -PbuildServer -PskipJavaFormat ${{ matrix.build-options }}
53+
- name: Check free disk space
54+
run: df .
55+
- uses: actions/upload-artifact@v4
56+
with:
57+
name: ${{ matrix.artifact-name }}
58+
path: build/allOutputs
59+
60+
build-host:
61+
if: (github.repository_owner == 'wpilibsuite' && github.ref == 'refs/heads/main') || github.event_name != 'schedule'
62+
env:
63+
MACOSX_DEPLOYMENT_TARGET: 13.3
64+
strategy:
65+
fail-fast: false
66+
matrix:
67+
include:
68+
- os: windows-2022
69+
artifact-name: Win64Debug
70+
architecture: x64
71+
task: "build"
72+
build-options: "-PciDebugOnly"
73+
outputs: "build/allOutputs"
74+
- os: windows-2022
75+
artifact-name: Win64Release
76+
architecture: x64
77+
build-options: "-PciReleaseOnly"
78+
task: "copyAllOutputs"
79+
outputs: "build/allOutputs"
80+
- os: windows-2022
81+
artifact-name: WinArm64Debug
82+
architecture: x64
83+
task: "build"
84+
build-options: "-PciDebugOnly -Pbuildwinarm64 -Ponlywindowsarm64"
85+
outputs: "build/allOutputs"
86+
- os: windows-2022
87+
artifact-name: WinArm64Release
88+
architecture: x64
89+
build-options: "-PciReleaseOnly -Pbuildwinarm64 -Ponlywindowsarm64"
90+
task: "copyAllOutputs"
91+
outputs: "build/allOutputs"
92+
- os: macOS-14
93+
artifact-name: macOS
94+
architecture: aarch64
95+
task: "build"
96+
outputs: "build/allOutputs"
97+
- os: windows-2022
98+
artifact-name: Win32
99+
architecture: x86
100+
task: ":ntcoreffi:build"
101+
outputs: "ntcoreffi/build/outputs"
102+
name: "Build - ${{ matrix.artifact-name }}"
103+
runs-on: ${{ matrix.os }}
104+
steps:
105+
- uses: actions/checkout@v4
106+
with:
107+
fetch-depth: 0
108+
- uses: actions/setup-java@v4
109+
with:
110+
distribution: 'temurin'
111+
java-version: 17
112+
architecture: ${{ matrix.architecture }}
113+
- name: Import Developer ID Certificate
114+
uses: wpilibsuite/import-signing-certificate@v2
115+
with:
116+
certificate-data: ${{ secrets.APPLE_CERTIFICATE_DATA }}
117+
certificate-passphrase: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
118+
keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
119+
if: |
120+
matrix.artifact-name == 'macOS' && (github.repository_owner == 'wpilibsuite' && github.ref == 'refs/heads/main')
121+
- name: Set Keychain Lock Timeout
122+
run: security set-keychain-settings -lut 3600
123+
if: |
124+
matrix.artifact-name == 'macOS' && (github.repository_owner == 'wpilibsuite' && github.ref == 'refs/heads/main')
125+
- name: Set Java Heap Size
126+
run: sed -i 's/-Xmx2g/-Xmx1g/g' gradle.properties
127+
if: matrix.artifact-name == 'Win32'
128+
- name: Check disk free space (Windows)
129+
run: wmic logicaldisk get caption, freespace
130+
if: matrix.os == 'windows-2022'
131+
- name: Check disk free space pre-cleanup (macOS)
132+
run: df -h .
133+
if: matrix.os == 'macOS-14'
134+
- name: Cleanup disk space
135+
# CodeQL: 5G
136+
# go: 748M
137+
# Android: 12G
138+
run: |
139+
rm -rf /Users/runner/hostedtoolcache/CodeQL
140+
rm -rf /Users/runner/hostedtoolcache/go
141+
rm -rf /Users/runner/Library/Android
142+
if: matrix.os == 'macOS-14'
143+
- name: Check disk free space post-cleanup (macOS)
144+
run: df -h .
145+
if: matrix.os == 'macOS-14'
146+
- name: Build with Gradle
147+
run: ./gradlew ${{ matrix.task }} -PbuildServer -PskipJavaFormat ${{ matrix.build-options }}
148+
- name: Sign Libraries with Developer ID
149+
run: ./gradlew copyAllOutputs -PbuildServer -PskipJavaFormat -PdeveloperID=${{ secrets.APPLE_DEVELOPER_ID }} ${{ matrix.build-options }}
150+
if: |
151+
matrix.artifact-name == 'macOS' && (github.repository_owner == 'wpilibsuite' && github.ref == 'refs/heads/main')
152+
- name: Check disk free space (Windows)
153+
run: wmic logicaldisk get caption, freespace
154+
if: matrix.os == 'windows-2022'
155+
- name: Check disk free space (macOS)
156+
run: df -h .
157+
if: matrix.os == 'macOS-14'
158+
- uses: actions/upload-artifact@v4
159+
with:
160+
name: ${{ matrix.artifact-name }}
161+
path: ${{ matrix.outputs }}

CMakePresets.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"cacheVariables": {}
1616
},
1717
{
18-
"name": "sccache",
18+
"name": "with-sccache",
1919
"displayName": "",
2020
"description": "Ninja config with sccache",
2121
"generator": "Ninja",
@@ -36,11 +36,11 @@
3636
}
3737
},
3838
{
39-
"name": "with-java-sccache",
39+
"name": "with-java-and-sccache",
4040
"displayName": "",
4141
"description": "Ninja config with Java and sccache",
4242
"generator": "Ninja",
43-
"inherits": "sccache",
43+
"inherits": "with-sccache",
4444
"binaryDir": "build-cmake",
4545
"cacheVariables": {
4646
"WITH_JAVA": "ON"

thirdparty/imgui_suite/generate_fonts.sh

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ cd $DIR/generated
66

77
# Versions
88
IMGUI_COMMIT=74f7ac04a166c77ef1cbbbebff51e5bfc4fcfa5d
9-
ICONFONTCPPHEADERS_COMMIT=acd3728de3ee4e2461f8958154bb2dc46f958723
9+
ICONFONTCPPHEADERS_COMMIT=d4dae38e016e3fb41ee9f3fe393d2577c0ea6315
1010
DROID_COMMIT=d3817c246c6e3da7531fa1fbb0b0fca271aae7fb
11-
PROGGYFONTS_VERSION=1.1.5
12-
FONTAWESOME_VERSION=6.2.0
11+
PROGGYFONTS_VERSION=1.1.7
12+
FONTAWESOME_VERSION=6.6.0
1313
FIRACODE_VERSION=6.2
14+
ROBOTO_VERSION=2.138
1415

1516
mkdir download
1617
pushd download
@@ -22,6 +23,7 @@ wget -O proggyfonts.zip https://github.com/bluescan/proggyfonts/archive/refs/tag
2223
wget https://github.com/FortAwesome/Font-Awesome/releases/download/${FONTAWESOME_VERSION}/fontawesome-free-${FONTAWESOME_VERSION}-web.zip
2324
wget -O droid-fonts.zip https://github.com/grays/droid-fonts/archive/${DROID_COMMIT}.zip
2425
wget -O fira-code.zip https://github.com/tonsky/FiraCode/releases/download/${FIRACODE_VERSION}/Fira_Code_v${FIRACODE_VERSION}.zip
26+
wget -O roboto.zip https://github.com/googlefonts/roboto/releases/download/v${ROBOTO_VERSION}/roboto-android.zip
2527

2628
# Download C++ icon font header
2729
wget https://github.com/juliettef/IconFontCppHeaders/raw/${ICONFONTCPPHEADERS_COMMIT}/IconsFontAwesome6.h
@@ -39,6 +41,10 @@ mkdir fira-code
3941
pushd fira-code
4042
unzip ../../download/fira-code.zip
4143
popd
44+
mkdir roboto
45+
pushd roboto
46+
unzip ../../download/roboto.zip
47+
popd
4248
popd
4349

4450
rm -rf fonts
@@ -52,6 +58,7 @@ cp -p download/IconsFontAwesome6.h fonts/include/
5258
cp -p extract/proggyfonts-${PROGGYFONTS_VERSION}/LICENSE fonts/LICENSE-proggyfonts.txt
5359
cp -p extract/fontawesome-free-${FONTAWESOME_VERSION}-web/LICENSE.txt fonts/LICENSE-fontawesome.txt
5460
cp -p extract/droid-fonts-${DROID_COMMIT}/droid/NOTICE fonts/LICENSE-droid.txt
61+
cp -p extract/roboto/LICENSE fonts/LICENSE-roboto.txt
5562

5663
# Build C versions
5764
g++ -o imgui_font_bin2c download/binary_to_compressed_c.cpp
@@ -60,9 +67,15 @@ g++ -o imgui_font_bin2c download/binary_to_compressed_c.cpp
6067
./imgui_font_bin2c "extract/fontawesome-free-${FONTAWESOME_VERSION}-web/webfonts/fa-solid-900.ttf" FontAwesomeSolid > fonts/src/FontAwesomeSolid.inc
6168
./imgui_font_bin2c "extract/droid-fonts-${DROID_COMMIT}/droid/DroidSans.ttf" DroidSans > fonts/src/DroidSans.inc
6269
./imgui_font_bin2c "extract/fira-code/ttf/FiraCode-Retina.ttf" FiraCodeRetina > fonts/src/FiraCodeRetina.inc
70+
./imgui_font_bin2c "extract/roboto/Roboto-Light.ttf" RobotoLight > fonts/src/RobotoLight.inc
71+
./imgui_font_bin2c "extract/roboto/Roboto-Regular.ttf" RobotoRegular > fonts/src/RobotoRegular.inc
72+
./imgui_font_bin2c "extract/roboto/Roboto-Bold.ttf" RobotoBold > fonts/src/RobotoBold.inc
73+
./imgui_font_bin2c "extract/roboto/RobotoCondensed-Light.ttf" RobotoCondensedLight > fonts/src/RobotoCondensedLight.inc
74+
./imgui_font_bin2c "extract/roboto/RobotoCondensed-Regular.ttf" RobotoCondensedRegular > fonts/src/RobotoCondensedRegular.inc
75+
./imgui_font_bin2c "extract/roboto/RobotoCondensed-Bold.ttf" RobotoCondensedBold > fonts/src/RobotoCondensedBold.inc
6376

6477
# Generate C wrapper source/headers
65-
for font in ProggyDotted FontAwesomeRegular FontAwesomeSolid DroidSans FiraCodeRetina
78+
for font in ProggyDotted FontAwesomeRegular FontAwesomeSolid DroidSans FiraCodeRetina RobotoLight RobotoRegular RobotoBold RobotoCondensedLight RobotoCondensedRegular RobotoCondensedBold
6679
do
6780
cat >fonts/src/imgui_${font}.cpp <<END
6881
#include "imgui_${font}.h"
@@ -81,4 +94,4 @@ ImFont* AddFont${font}(ImGuiIO& io, float size_pixels, const ImFontConfig* font_
8194
END
8295
done
8396

84-
rm -r download extract imgui_font_bin2c
97+
rm -r download extract imgui_font_bin2c

thirdparty/imgui_suite/generated/fonts/LICENSE-fontawesome.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ as SVG and JS file types.
2323
In the Font Awesome Free download, the SIL OFL license applies to all icons
2424
packaged as web and desktop font files.
2525

26-
Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com)
26+
Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
2727
with Reserved Font Name: "Font Awesome".
2828

2929
This Font Software is licensed under the SIL Open Font License, Version 1.1.
@@ -123,7 +123,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
123123
In the Font Awesome Free download, the MIT license applies to all non-font and
124124
non-icon files.
125125

126-
Copyright 2022 Fonticons, Inc.
126+
Copyright 2024 Fonticons, Inc.
127127

128128
Permission is hereby granted, free of charge, to any person obtaining a copy of
129129
this software and associated documentation files (the "Software"), to deal in the

0 commit comments

Comments
 (0)