Skip to content

Commit 76f18ff

Browse files
committed
Merge from master.
2 parents f2c6487 + 891b7a5 commit 76f18ff

File tree

1,033 files changed

+124260
-42215
lines changed

Some content is hidden

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

1,033 files changed

+124260
-42215
lines changed

.clang-format

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,19 @@ AlwaysBreakBeforeMultilineStrings: 'true'
1818
AlwaysBreakTemplateDeclarations: 'Yes'
1919
BinPackArguments: 'false'
2020
BinPackParameters: 'false'
21-
BreakConstructorInitializers: 'AfterColon'
2221
BreakBeforeBraces: Allman
22+
BreakConstructorInitializers: 'AfterColon'
2323
BreakInheritanceList: AfterColon
2424
BreakStringLiterals: 'true'
25-
IndentCaseLabels: 'true'
26-
IndentWidth: '4'
2725
ColumnLimit: '80'
2826
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
27+
FixNamespaceComments: 'false'
2928
IncludeBlocks: Preserve
29+
IndentCaseLabels: 'true'
30+
IndentWidth: '4'
3031
IndentWrappedFunctionNames: 'false'
3132
KeepEmptyLinesAtTheStartOfBlocks: 'true'
33+
NamespaceIndentation: All
3234
PointerAlignment: Left
3335
ReflowComments: 'true'
3436
SortIncludes: 'false'

.github/workflows/ccpp.yml

Lines changed: 101 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,64 +2,135 @@ name: C/C++ CI
22

33
on: [push]
44

5+
concurrency:
6+
group: environment-${{ github.head_ref }}
7+
cancel-in-progress: true
8+
59
jobs:
610
build-linux:
7-
runs-on: ubuntu-20.04
11+
runs-on: ubuntu-latest
812
steps:
9-
- uses: actions/checkout@v1
13+
- uses: actions/checkout@v4
14+
with:
15+
repository: 'davidgiven/fluxengine'
16+
path: 'fluxengine'
17+
submodules: 'true'
18+
- uses: actions/checkout@v4
19+
with:
20+
repository: 'davidgiven/fluxengine-testdata'
21+
path: 'fluxengine-testdata'
1022
- name: apt
11-
run: sudo apt update && sudo apt install libudev-dev libsqlite3-dev protobuf-compiler libwxgtk3.0-gtk3-dev libfmt-dev
23+
run: |
24+
sudo apt update
25+
sudo apt install libudev-dev libsqlite3-dev protobuf-compiler libwxgtk3.2-dev libfmt-dev libprotobuf-dev libmagic-dev libmbedtls-dev libcurl4-openssl-dev libmagic-dev nlohmann-json3-dev libdbus-1-dev libglfw3-dev libmd4c-dev libfreetype-dev libcli11-dev libboost-regex-dev
1226
- name: make
13-
run: CXXFLAGS="-Wp,-D_GLIBCXX_ASSERTIONS" make
27+
run: CXXFLAGS="-Wp,-D_GLIBCXX_ASSERTIONS" make -j`nproc` -C fluxengine
1428

15-
build-macos:
16-
runs-on: macos-latest
29+
#build-linux-debian-11:
30+
# runs-on: ubuntu-22.04
31+
# container: debian:11
32+
# steps:
33+
# - uses: actions/checkout@v4
34+
# with:
35+
# repository: 'davidgiven/fluxengine'
36+
# path: 'fluxengine'
37+
# - uses: actions/checkout@v4
38+
# with:
39+
# repository: 'davidgiven/fluxengine-testdata'
40+
# path: 'fluxengine-testdata'
41+
# - name: apt update
42+
# run: apt update
43+
# - name: apt
44+
# run: >
45+
# apt install -y python3 make xz-utils python3 python3-hamcrest
46+
# protobuf-compiler libprotobuf-dev libsqlite3-dev
47+
# libfmt-dev libprotobuf-dev wx-common pkg-config
48+
# libudev-dev g++ libwxgtk3.0-gtk3-dev
49+
# - name: make
50+
# run: make -C fluxengine
51+
52+
build-macos-current:
53+
strategy:
54+
matrix:
55+
runs-on: [macos-15, macos-15-intel]
56+
runs-on: ${{ matrix.runs-on }}
1757
steps:
18-
- uses: actions/checkout@v2
58+
- uses: actions/checkout@v4
59+
with:
60+
repository: 'davidgiven/fluxengine'
61+
path: 'fluxengine'
62+
submodules: 'true'
63+
- uses: actions/checkout@v4
64+
with:
65+
repository: 'davidgiven/fluxengine-testdata'
66+
path: 'fluxengine-testdata'
1967
- name: brew
20-
run: brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils
68+
run: |
69+
brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg libmagic nlohmann-json cli11 boost glfw3 md4c ninja python freetype2 mbedtls@3
70+
brew link mbedtls@3
71+
brew upgrade
2172
- name: make
22-
run: gmake
73+
run: gmake -C fluxengine
74+
- name: Upload build artifacts
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: ${{ github.event.repository.name }}.${{ github.sha }}.fluxengine.${{ runner.arch }}.pkg
78+
path: |
79+
fluxengine/FluxEngine.pkg
80+
fluxengine/FluxEngine.app.zip
2381
2482
build-windows:
2583
runs-on: windows-latest
2684
defaults:
2785
run:
2886
shell: msys2 {0}
87+
2988
steps:
3089
- uses: msys2/setup-msys2@v2
3190
with:
91+
msystem: mingw64
3292
update: true
33-
msystem: MINGW32
34-
install: >-
35-
diffutils
36-
make
37-
mingw-w64-i686-fmt
38-
mingw-w64-i686-gcc
39-
mingw-w64-i686-libusb
40-
mingw-w64-i686-pkg-config
41-
mingw-w64-i686-protobuf
42-
mingw-w64-i686-sqlite3
43-
mingw-w64-i686-wxWidgets
44-
mingw-w64-i686-zlib
45-
mingw-w64-i686-nsis
46-
zip
47-
- uses: actions/checkout@v1
48-
- name: build
49-
run: make
93+
install: |
94+
python diffutils ninja make zip
95+
pacboy: |
96+
protobuf:p pkgconf:p curl-winssl:p file:p glfw:p mbedtls:p
97+
sqlite:p freetype:p boost:p gcc:p binutils:p nsis:p abseil-cpp:p
98+
99+
- name: debug
100+
run: |
101+
pacboy -Q --info protobuf:p
102+
cat /mingw64/lib/pkgconfig/protobuf.pc
103+
/mingw64/bin/pkg-config.exe protobuf --cflags
104+
/mingw64/bin/pkg-config.exe protobuf --cflags --static
105+
106+
- uses: actions/checkout@v4
107+
with:
108+
repository: 'davidgiven/fluxengine'
109+
path: 'fluxengine'
110+
submodules: 'true'
111+
112+
- uses: actions/checkout@v4
113+
with:
114+
repository: 'davidgiven/fluxengine-testdata'
115+
path: 'fluxengine-testdata'
116+
117+
- name: run
118+
run: |
119+
make -C fluxengine BUILDTYPE=windows AB_SANDBOX=no
50120
51121
- name: nsis
52122
run: |
123+
cd fluxengine
53124
strip fluxengine.exe -o fluxengine-stripped.exe
54125
strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
55126
makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
56127
57128
- name: zip
58129
run: |
59-
zip -9 fluxengine.zip fluxengine.exe fluxengine-gui.exe upgrade-flux-file.exe brother120tool.exe brother240tool.exe FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex fluxengine-installer.exe
130+
cd fluxengine && zip -9 fluxengine-windows.zip fluxengine.exe fluxengine-gui.exe upgrade-flux-file.exe brother120tool.exe brother240tool.exe FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex fluxengine-installer.exe
60131
61132
- name: Upload build artifacts
62-
uses: actions/upload-artifact@v2
133+
uses: actions/upload-artifact@v4
63134
with:
64-
name: ${{ github.event.repository.name }}.${{ github.sha }}
65-
path: fluxengine.zip
135+
name: ${{ github.event.repository.name }}.${{ github.sha }}.windows.zip
136+
path: fluxengine/fluxengine-windows.zip

.github/workflows/release.yml

Lines changed: 101 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Autorelease
22

3+
concurrency:
4+
group: environment-release-${{ github.head_ref }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches:
@@ -11,43 +15,101 @@ jobs:
1115
defaults:
1216
run:
1317
shell: msys2 {0}
18+
1419
steps:
15-
- uses: msys2/setup-msys2@v2
16-
with:
17-
update: true
18-
msystem: MINGW32
19-
install: >-
20-
diffutils
21-
make
22-
mingw-w64-i686-fmt
23-
mingw-w64-i686-gcc
24-
mingw-w64-i686-libusb
25-
mingw-w64-i686-pkg-config
26-
mingw-w64-i686-protobuf
27-
mingw-w64-i686-sqlite3
28-
mingw-w64-i686-wxWidgets
29-
mingw-w64-i686-zlib
30-
mingw-w64-i686-nsis
31-
zip
32-
- uses: actions/checkout@v3
33-
34-
- name: build
35-
run: |
36-
make
20+
- uses: msys2/setup-msys2@v2
21+
with:
22+
msystem: mingw64
23+
update: true
24+
install: |
25+
python diffutils ninja make zip
26+
pacboy: |
27+
protobuf:p pkgconf:p curl-winssl:p file:p glfw:p mbedtls:p
28+
sqlite:p freetype:p boost:p gcc:p binutils:p nsis:p abseil-cpp:p
3729
38-
- name: nsis
39-
run: |
40-
strip fluxengine.exe -o fluxengine-stripped.exe
41-
strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
42-
makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
30+
- name: debug
31+
run: |
32+
pacboy -Q --info protobuf:p
33+
cat /mingw64/lib/pkgconfig/protobuf.pc
34+
/mingw64/bin/pkg-config.exe protobuf --cflags
35+
/mingw64/bin/pkg-config.exe protobuf --cflags --static
36+
37+
- uses: actions/checkout@v4
38+
with:
39+
repository: 'davidgiven/fluxengine'
40+
path: 'fluxengine'
41+
submodules: 'true'
42+
43+
- name: run
44+
run: |
45+
make -C fluxengine BUILDTYPE=windows AB_SANDBOX=no
46+
47+
- name: nsis
48+
run: |
49+
cd fluxengine
50+
strip fluxengine.exe -o fluxengine-stripped.exe
51+
strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
52+
makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
53+
54+
- name: zip
55+
run: |
56+
cd fluxengine && zip -9 fluxengine-windows.zip fluxengine.exe fluxengine-gui.exe upgrade-flux-file.exe brother120tool.exe brother240tool.exe FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex fluxengine-installer.exe
57+
58+
- name: date
59+
run: |
60+
echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV}
4361
44-
- name: zip
62+
- name: tag
63+
uses: EndBug/latest-tag@latest
64+
with:
65+
tag-name: dev
66+
force-branch: false
67+
git-directory: 'fluxengine'
68+
env:
69+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70+
71+
- name: delete-old-assets
72+
uses: mknejp/delete-release-assets@v1
73+
with:
74+
token: ${{ github.token }}
75+
tag: dev
76+
assets: |
77+
fluxengine.zip
78+
fluxengine-installer.exe
79+
fail-if-no-assets: false
80+
81+
- name: release
82+
uses: softprops/action-gh-release@v1
83+
with:
84+
name: Development build ${{ env.RELEASE_DATE }}
85+
files: |
86+
fluxengine/fluxengine.zip
87+
fluxengine/fluxengine-installer.exe
88+
tag_name: dev
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
91+
92+
build-macos:
93+
strategy:
94+
matrix:
95+
runs-on: [ macos-15, macos-15-intel ]
96+
runs-on: ${{ matrix.runs-on }}
97+
steps:
98+
- uses: actions/checkout@v4
99+
with:
100+
submodules: 'true'
101+
102+
- name: brew
45103
run: |
46-
zip -9 fluxengine.zip fluxengine.exe fluxengine-gui.exe upgrade-flux-file.exe brother120tool.exe brother240tool.exe FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex
104+
brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg libmagic nlohmann-json cli11 boost glfw3 md4c ninja python freetype2 mbedtls@3
105+
brew link mbedtls@3
106+
brew upgrade
47107
48-
- name: date
108+
- name: make
49109
run: |
50-
echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV}
110+
gmake
111+
mv FluxEngine.pkg FluxEngine-${{ runner.arch }}.pkg
112+
mv FluxEngine.app.zip FluxEngine-${{ runner.arch }}.app.zip
51113
52114
- name: tag
53115
uses: EndBug/latest-tag@latest
@@ -62,18 +124,21 @@ jobs:
62124
with:
63125
token: ${{ github.token }}
64126
tag: dev
65-
assets: |
66-
fluxengine.zip
67-
fluxengine-installer.exe
127+
assets: |
128+
FluxEngine-${{ runner.arch }}.pkg
129+
FluxEngine-${{ runner.arch }}.app.zip
68130
fail-if-no-assets: false
69131

70132
- name: release
71133
uses: softprops/action-gh-release@v1
72134
with:
73135
name: Development build ${{ env.RELEASE_DATE }}
74136
files: |
75-
fluxengine.zip
76-
fluxengine-installer.exe
137+
FluxEngine-${{ runner.arch }}.pkg
138+
FluxEngine-${{ runner.arch }}.app.zip
77139
tag_name: dev
78140
env:
79141
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
142+
143+
144+

.gitmodules

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[submodule "dep/imhex"]
2+
path = dep/imhex
3+
url = https://github.com/davidgiven/ImHex.git
4+
[submodule "dep/libwolv"]
5+
path = dep/libwolv
6+
url = https://github.com/WerWolv/libwolv.git
7+
[submodule "dep/imgui"]
8+
path = dep/imgui
9+
url = https://github.com/ocornut/imgui.git
10+
[submodule "dep/pattern-language"]
11+
path = dep/pattern-language
12+
url = https://github.com/WerWolv/PatternLanguage.git
13+
[submodule "dep/native-file-dialog"]
14+
path = dep/native-file-dialog
15+
url = https://github.com/btzy/nativefiledialog-extended.git
16+
[submodule "dep/xdgpp"]
17+
path = dep/xdgpp
18+
url = https://github.com/WerWolv/xdgpp.git
19+
[submodule "dep/libromfs"]
20+
path = dep/libromfs
21+
url = https://github.com/WerWolv/libromfs.git
22+
[submodule "dep/throwing_ptr"]
23+
path = dep/throwing_ptr
24+
url = https://github.com/rockdreamer/throwing_ptr.git
25+
[submodule "dep/lunasvg"]
26+
path = dep/lunasvg
27+
url = https://github.com/sammycage/lunasvg.git
28+
[submodule "dep/md4c"]
29+
path = dep/md4c
30+
url = https://github.com/mity/md4c
31+
[submodule "dep/nlohmann_json"]
32+
path = dep/nlohmann_json
33+
url = https://github.com/nlohmann/json
34+
[submodule "dep/cli11"]
35+
path = dep/cli11
36+
url = https://github.com/CLIUtils/CLI11

0 commit comments

Comments
 (0)