Skip to content

Commit e68de11

Browse files
authored
Merge pull request #827 from davidgiven/imgui2
First implementation of the new imhex-based GUI.
2 parents 7cde8e3 + 0409b12 commit e68de11

File tree

225 files changed

+10782
-1840
lines changed

Some content is hidden

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

225 files changed

+10782
-1840
lines changed

.github/workflows/ccpp.yml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ concurrency:
88

99
jobs:
1010
build-linux:
11-
runs-on: ubuntu-22.04
11+
runs-on: ubuntu-latest
1212
steps:
1313
- uses: actions/checkout@v4
1414
with:
1515
repository: 'davidgiven/fluxengine'
1616
path: 'fluxengine'
17+
submodules: 'true'
1718
- uses: actions/checkout@v4
1819
with:
1920
repository: 'davidgiven/fluxengine-testdata'
2021
path: 'fluxengine-testdata'
2122
- name: apt
2223
run: |
23-
sudo apt install libudev-dev libsqlite3-dev protobuf-compiler libwxgtk3.0-gtk3-dev libfmt-dev libprotobuf-dev
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
2426
- name: make
2527
run: CXXFLAGS="-Wp,-D_GLIBCXX_ASSERTIONS" make -j`nproc` -C fluxengine
2628

@@ -50,20 +52,22 @@ jobs:
5052
build-macos-current:
5153
strategy:
5254
matrix:
53-
runs-on: [macos-13, macos-latest]
55+
runs-on: [macos-15, macos-15-intel]
5456
runs-on: ${{ matrix.runs-on }}
5557
steps:
5658
- uses: actions/checkout@v4
5759
with:
5860
repository: 'davidgiven/fluxengine'
5961
path: 'fluxengine'
62+
submodules: 'true'
6063
- uses: actions/checkout@v4
6164
with:
6265
repository: 'davidgiven/fluxengine-testdata'
6366
path: 'fluxengine-testdata'
6467
- name: brew
6568
run: |
66-
brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg
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
70+
brew upgrade
6771
- name: make
6872
run: gmake -C fluxengine
6973
- name: Upload build artifacts
@@ -76,29 +80,33 @@ jobs:
7680
7781
build-windows:
7882
runs-on: windows-latest
83+
defaults:
84+
run:
85+
shell: msys2 {0}
7986

8087
steps:
81-
- name: setup WSL
82-
run: |
83-
curl -L https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/releases/download/41.0.0/Fedora-Remix-for-WSL-SL_41.0.0.0_x64_arm64.msixbundle -o fedora.msixbundle
84-
unzip fedora.msixbundle Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix
85-
unzip Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix install.tar.gz
86-
wsl --update
87-
wsl --set-default-version 1
88-
wsl --import fedora fedora install.tar.gz
89-
wsl --set-default fedora
90-
wsl sh -c 'dnf -y install https://github.com/rpmsphere/noarch/raw/master/r/rpmsphere-release-40-1.noarch.rpm'
91-
wsl sh -c 'dnf -y install gcc gcc-c++ protobuf-c-compiler protobuf-devel fmt-devel systemd-devel sqlite-devel wxGTK-devel mingw32-gcc mingw32-gcc-c++ mingw32-zlib-static mingw32-protobuf-static mingw32-sqlite-static mingw32-wxWidgets3-static mingw32-libpng-static mingw32-libjpeg-static mingw32-libtiff-static mingw32-nsis png2ico ninja-build'
88+
- uses: msys2/setup-msys2@v2
89+
with:
90+
msystem: mingw64
91+
update: true
92+
install: |
93+
python diffutils ninja make zip
94+
pacboy: |
95+
protobuf:p pkgconf:p curl-winssl:p file:p glfw:p mbedtls:p
96+
sqlite:p freetype:p boost:p gcc:p binutils:p nsis:p abseil-cpp:p
9297
93-
- name: fix line endings
98+
- name: debug
9499
run: |
95-
git config --global core.autocrlf false
96-
git config --global core.eol lf
97-
100+
pacboy -Q --info protobuf:p
101+
cat /mingw64/lib/pkgconfig/protobuf.pc
102+
/mingw64/bin/pkg-config.exe protobuf --cflags
103+
/mingw64/bin/pkg-config.exe protobuf --cflags --static
104+
98105
- uses: actions/checkout@v4
99106
with:
100107
repository: 'davidgiven/fluxengine'
101108
path: 'fluxengine'
109+
submodules: 'true'
102110

103111
- uses: actions/checkout@v4
104112
with:
@@ -107,17 +115,18 @@ jobs:
107115

108116
- name: run
109117
run: |
110-
wsl sh -c 'make -C fluxengine BUILDTYPE=windows -j$(nproc)'
118+
make -C fluxengine BUILDTYPE=windows AB_SANDBOX=no
111119
112120
- name: nsis
113121
run: |
114-
wsl sh -c 'cd fluxengine && strip fluxengine.exe -o fluxengine-stripped.exe'
115-
wsl sh -c 'cd fluxengine && strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe'
116-
wsl sh -c 'cd fluxengine && makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi'
122+
cd fluxengine
123+
strip fluxengine.exe -o fluxengine-stripped.exe
124+
strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
125+
makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
117126
118127
- name: zip
119128
run: |
120-
wsl sh -c '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'
129+
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
121130
122131
- name: Upload build artifacts
123132
uses: actions/upload-artifact@v4

.github/workflows/release.yml

Lines changed: 83 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Autorelease
22

3-
concurrency:
3+
concurrency:
44
group: environment-release-${{ github.head_ref }}
55
cancel-in-progress: true
66

@@ -12,94 +12,100 @@ on:
1212
jobs:
1313
dev-release:
1414
runs-on: windows-latest
15+
defaults:
16+
run:
17+
shell: msys2 {0}
1518

1619
steps:
17-
- name: setup WSL
18-
run: |
19-
curl -L https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/releases/download/41.0.0/Fedora-Remix-for-WSL-SL_41.0.0.0_x64_arm64.msixbundle -o fedora.msixbundle
20-
unzip fedora.msixbundle Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix
21-
unzip Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix install.tar.gz
22-
wsl --update
23-
wsl --set-default-version 1
24-
wsl --import fedora fedora install.tar.gz
25-
wsl --set-default fedora
26-
wsl sh -c 'dnf -y install https://github.com/rpmsphere/noarch/raw/master/r/rpmsphere-release-40-1.noarch.rpm'
27-
wsl sh -c 'dnf -y install gcc gcc-c++ protobuf-c-compiler protobuf-devel fmt-devel systemd-devel sqlite-devel wxGTK-devel mingw32-gcc mingw32-gcc-c++ mingw32-zlib-static mingw32-protobuf-static mingw32-sqlite-static mingw32-wxWidgets3-static mingw32-libpng-static mingw32-libjpeg-static mingw32-libtiff-static mingw32-nsis png2ico ninja-build'
28-
29-
- name: fix line endings
30-
run: |
31-
git config --global core.autocrlf false
32-
git config --global core.eol lf
33-
34-
- uses: actions/checkout@v4
35-
with:
36-
repository: 'davidgiven/fluxengine'
37-
path: 'fluxengine'
38-
39-
- name: run
40-
run: |
41-
wsl sh -c 'cd fluxengine && make BUILDTYPE=windows -j$(nproc)'
42-
43-
- name: nsis
44-
run: |
45-
wsl sh -c 'cd fluxengine && strip fluxengine.exe -o fluxengine-stripped.exe'
46-
wsl sh -c 'cd fluxengine && strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe'
47-
wsl sh -c 'cd fluxengine && makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi'
48-
49-
- name: zip
50-
run: |
51-
wsl sh -c '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'
52-
53-
- name: date
54-
run: |
55-
echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV}
56-
57-
- name: tag
58-
uses: EndBug/latest-tag@latest
59-
with:
60-
tag-name: dev
61-
force-branch: false
62-
git-directory: 'fluxengine'
63-
env:
64-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65-
66-
- name: delete-old-assets
67-
uses: mknejp/delete-release-assets@v1
68-
with:
69-
token: ${{ github.token }}
70-
tag: dev
71-
assets: |
72-
fluxengine.zip
73-
fluxengine-installer.exe
74-
fail-if-no-assets: false
75-
76-
- name: release
77-
uses: softprops/action-gh-release@v1
78-
with:
79-
name: Development build ${{ env.RELEASE_DATE }}
80-
files: |
81-
fluxengine/fluxengine.zip
82-
fluxengine/fluxengine-installer.exe
83-
tag_name: dev
84-
env:
85-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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
29+
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+
wsl sh -c '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}
61+
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 }}
8691

8792
build-macos:
8893
strategy:
8994
matrix:
90-
runs-on: [macos-13, macos-latest]
95+
runs-on: [ macos-15, macos-15-intel ]
9196
runs-on: ${{ matrix.runs-on }}
9297
steps:
9398
- uses: actions/checkout@v4
99+
with:
100+
submodules: 'true'
94101

95102
- name: brew
96-
run: brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg
103+
run: |
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
105+
brew upgrade
97106
98107
- name: make
99-
run: |
100-
gmake
101-
mv FluxEngine.pkg FluxEngine-${{ runner.arch }}.pkg
102-
mv FluxEngine.app.zip FluxEngine-${{ runner.arch }}.app.zip
108+
run: gmake
103109

104110
- name: tag
105111
uses: EndBug/latest-tag@latest
@@ -114,7 +120,7 @@ jobs:
114120
with:
115121
token: ${{ github.token }}
116122
tag: dev
117-
assets: |
123+
assets: |
118124
FluxEngine-${{ runner.arch }}.pkg
119125
FluxEngine-${{ runner.arch }}.app.zip
120126
fail-if-no-assets: false

.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 = [email protected]: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)