├── .gitmodules
├── ci-build.cmd
├── ci-build.sh
├── .github
├── dependabot.yml
└── workflows
│ └── build.yml
├── README.md
├── version.json
├── ImGui.NET.SourceBuild.props
├── Directory.Build.props
├── ImGui.NET.SourceBuild.csproj
└── .gitignore
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "cimgui"]
2 | path = cimgui
3 | url = https://github.com/cimgui/cimgui
4 | branch = docking_inter
5 |
--------------------------------------------------------------------------------
/ci-build.cmd:
--------------------------------------------------------------------------------
1 | @setlocal
2 | @echo off
3 | set "RTYPE=%1"
4 | set "RARCH=%2"
5 |
6 | call %~dp0build-native.cmd %RTYPE% %RARCH%
7 |
--------------------------------------------------------------------------------
/ci-build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | scriptPath="`dirname \"$0\"`"
4 | RTYPE="${1}"
5 |
6 | if [[ "$OSTYPE" == "darwin"* ]]; then
7 | $scriptPath/build-native.sh ${RTYPE} -osx-architectures 'arm64;x86_64'
8 | else
9 | $scriptPath/build-native.sh ${RTYPE}
10 | fi
11 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: "daily"
7 | groups:
8 | github-action-deps:
9 | applies-to: "version-updates"
10 | patterns: ["*"]
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # To Update to the latest cimgui version
2 |
3 | 1. git submodule update --init
4 |
5 | 2. git submodule update --remote
6 |
7 | 3. Update the version in version.json file
8 |
9 | 4. and then git commit + push.
10 |
11 |
12 | # To Trigger a release push a tag as shown below
13 |
14 | 2. git tag -a v1.4 -m "my version 1.4"
15 |
16 | 3. git push origin v1.4
17 |
--------------------------------------------------------------------------------
/version.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3 | "version": "1.91.6",
4 | "publicReleaseRefSpec": [
5 | "^refs/tags/v\\d+\\.\\d+" // we also release tags starting with vN.N
6 | ],
7 | "cloudBuild": {
8 | "buildNumber": {
9 | "enabled": false
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/ImGui.NET.SourceBuild.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <_ImGuiSourceBuildPkg>$(MSBuildThisFileDirectory)../src/
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | $(MSBuildThisFileDirectory)
6 | $(MSBuildThisFileDirectory)bin
7 | $(BinDir)\Packages\$(Configuration)
8 |
9 |
10 |
11 | Copyright 2022 (c) Eric Mellino. All rights reserved.
12 | Eric Mellino
13 | https://github.com/mellinoe/ImGui.NET-nativebuild
14 |
15 |
16 |
17 | true
18 | true
19 | $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
20 |
21 |
22 |
23 | all
24 | runtime; build; native; contentfiles; analyzers
25 |
26 |
27 |
28 |
29 | 3.5.119
30 |
31 |
32 |
33 |
34 | all
35 | runtime; build; native; contentfiles; analyzers
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/ImGui.NET.SourceBuild.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net7.0
5 | false
6 | false
7 |
8 |
9 |
10 |
11 | PreserveNewest
12 | src/
13 | true
14 |
15 |
16 | PreserveNewest
17 | src/
18 | true
19 |
20 |
21 | PreserveNewest
22 | src/imgui/
23 | true
24 |
25 |
26 | PreserveNewest
27 | src/imgui/
28 | true
29 |
30 |
31 | PreserveNewest
32 | src/imgui/
33 | true
34 |
35 |
36 | PreserveNewest
37 | src/imgui/
38 | true
39 |
40 |
41 | PreserveNewest
42 | src/imgui/
43 | true
44 |
45 |
46 | PreserveNewest
47 | src/imgui/
48 | true
49 |
50 |
51 | PreserveNewest
52 | src/imgui/
53 | true
54 |
55 |
56 | PreserveNewest
57 | src/imgui/
58 | true
59 |
60 |
61 | PreserveNewest
62 | src/imgui/
63 | true
64 |
65 |
66 | PreserveNewest
67 | src/imgui/
68 | true
69 |
70 |
71 | PreserveNewest
72 | src/imgui/
73 | true
74 |
75 |
76 | true
77 | build
78 |
79 |
80 |
81 |
82 | Bundles the source code for dear imgui and its C binding layer (cimgui) for use within projects targeting webassembly.
83 | wasm webassembly emscripten imgui gui graphics imgui.net
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | syntax: glob
2 |
3 | #NuGet things
4 | project.lock.json
5 |
6 | ### VisualStudio ###
7 |
8 | # User-specific files
9 | *.suo
10 | *.user
11 | *.userosscache
12 | *.sln.docstates
13 |
14 | # Build results
15 | [Dd]ebug/
16 | [Dd]ebugPublic/
17 | [Rr]elease/
18 | [Rr]eleases/
19 | x64/
20 | x86/
21 | bld/
22 | [Bb]in/
23 | [Oo]bj/
24 | msbuild.log
25 |
26 | # Visual Studio 2015
27 | .vs/
28 |
29 | # Visual Studio 2015 Pre-CTP6
30 | *.sln.ide
31 | *.ide/
32 |
33 | # MSTest test Results
34 | [Tt]est[Rr]esult*/
35 | [Bb]uild[Ll]og.*
36 |
37 | #NUNIT
38 | *.VisualState.xml
39 | TestResult.xml
40 |
41 | # Build Results of an ATL Project
42 | [Dd]ebugPS/
43 | [Rr]eleasePS/
44 | dlldata.c
45 |
46 | *_i.c
47 | *_p.c
48 | *_i.h
49 | *.ilk
50 | *.meta
51 | *.obj
52 | *.pch
53 | *.pdb
54 | *.pgc
55 | *.pgd
56 | *.rsp
57 | *.sbr
58 | *.tlb
59 | *.tli
60 | *.tlh
61 | *.tmp
62 | *.tmp_proj
63 | *.log
64 | *.vspscc
65 | *.vssscc
66 | .builds
67 | *.pidb
68 | *.svclog
69 | *.scc
70 |
71 | # Chutzpah Test files
72 | _Chutzpah*
73 |
74 | # Visual C++ cache files
75 | ipch/
76 | *.aps
77 | *.ncb
78 | *.opensdf
79 | *.sdf
80 | *.cachefile
81 |
82 | # Visual Studio profiler
83 | *.psess
84 | *.vsp
85 | *.vspx
86 |
87 | # TFS 2012 Local Workspace
88 | $tf/
89 |
90 | # Guidance Automation Toolkit
91 | *.gpState
92 |
93 | # ReSharper is a .NET coding add-in
94 | _ReSharper*/
95 | *.[Rr]e[Ss]harper
96 | *.DotSettings.user
97 |
98 | # JustCode is a .NET coding addin-in
99 | .JustCode
100 |
101 | # TeamCity is a build add-in
102 | _TeamCity*
103 |
104 | # DotCover is a Code Coverage Tool
105 | *.dotCover
106 |
107 | # NCrunch
108 | _NCrunch_*
109 | .*crunch*.local.xml
110 |
111 | # MightyMoose
112 | *.mm.*
113 | AutoTest.Net/
114 |
115 | # Web workbench (sass)
116 | .sass-cache/
117 |
118 | # Installshield output folder
119 | [Ee]xpress/
120 |
121 | # DocProject is a documentation generator add-in
122 | DocProject/buildhelp/
123 | DocProject/Help/*.HxT
124 | DocProject/Help/*.HxC
125 | DocProject/Help/*.hhc
126 | DocProject/Help/*.hhk
127 | DocProject/Help/*.hhp
128 | DocProject/Help/Html2
129 | DocProject/Help/html
130 |
131 | # Click-Once directory
132 | publish/
133 |
134 | # Publish Web Output
135 | *.[Pp]ublish.xml
136 | *.azurePubxml
137 | *.pubxml
138 | *.publishproj
139 |
140 | # NuGet Packages
141 | *.nupkg
142 | **/packages/*
143 |
144 | # Windows Azure Build Output
145 | csx/
146 | *.build.csdef
147 |
148 | # Windows Store app package directory
149 | AppPackages/
150 |
151 | # Others
152 | sql/
153 | *.Cache
154 | ClientBin/
155 | [Ss]tyle[Cc]op.*
156 | ~$*
157 | *.dbmdl
158 | *.dbproj.schemaview
159 | *.pfx
160 | *.publishsettings
161 | node_modules/
162 | *.metaproj
163 | *.metaproj.tmp
164 |
165 | # RIA/Silverlight projects
166 | Generated_Code/
167 |
168 | # Backup & report files from converting an old project file
169 | # to a newer Visual Studio version. Backup files are not needed,
170 | # because we have git ;-)
171 | _UpgradeReport_Files/
172 | Backup*/
173 | UpgradeLog*.XML
174 | UpgradeLog*.htm
175 |
176 | # SQL Server files
177 | *.mdf
178 | *.ldf
179 |
180 | # Business Intelligence projects
181 | *.rdl.data
182 | *.bim.layout
183 | *.bim_*.settings
184 |
185 | # Microsoft Fakes
186 | FakesAssemblies/
187 |
188 | ### MonoDevelop ###
189 |
190 | *.pidb
191 | *.userprefs
192 |
193 | ### Windows ###
194 |
195 | # Windows image file caches
196 | Thumbs.db
197 | ehthumbs.db
198 |
199 | # Folder config file
200 | Desktop.ini
201 |
202 | # Recycle Bin used on file shares
203 | $RECYCLE.BIN/
204 |
205 | # Windows Installer files
206 | *.cab
207 | *.msi
208 | *.msm
209 | *.msp
210 |
211 | # Windows shortcuts
212 | *.lnk
213 |
214 | ### Linux ###
215 |
216 | *~
217 |
218 | # KDE directory preferences
219 | .directory
220 |
221 | ### OSX ###
222 |
223 | .DS_Store
224 | .AppleDouble
225 | .LSOverride
226 |
227 | # Icon must end with two \r
228 | Icon
229 |
230 | # Thumbnails
231 | ._*
232 |
233 | # Files that might appear on external disk
234 | .Spotlight-V100
235 | .Trashes
236 |
237 | # Directories potentially created on remote AFP share
238 | .AppleDB
239 | .AppleDesktop
240 | Network Trash Folder
241 | Temporary Items
242 | .apdisk
243 |
244 | # vim temporary files
245 | [._]*.s[a-w][a-z]
246 | [._]s[a-w][a-z]
247 | *.un~
248 | Session.vim
249 | .netrwhist
250 | *~
251 |
252 | # VS Code junk
253 | .vscode
254 |
255 | # MSVC Stuff
256 | *.VC.db
257 |
258 | # Rider/Jetbrains IDEs
259 | .idea
260 |
261 | build/
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | # Controls when the workflow will run
4 | on:
5 | create:
6 |
7 | # Triggers the workflow on push or pull request events but only for the master branch
8 | push:
9 | branches: [ master ]
10 |
11 | pull_request:
12 | branches: [ master ]
13 |
14 | # Allows you to run this workflow manually from the Actions tab
15 | workflow_dispatch:
16 | inputs:
17 | ReleaseType:
18 | description: 'Release or Debug'
19 | required: true
20 | default: 'Release'
21 |
22 | jobs:
23 | Build:
24 | runs-on: ${{ matrix.os }}
25 | strategy:
26 | matrix:
27 | include:
28 | - os: macos-latest
29 | - os: ubuntu-latest
30 | - os: windows-latest
31 | architecture: x64
32 | - os: windows-latest
33 | architecture: x86
34 | - os: windows-latest
35 | architecture: ARM64
36 |
37 | steps:
38 | - uses: actions/checkout@v4
39 | with:
40 | fetch-depth: 0
41 | submodules: recursive
42 |
43 | - name: Setup .NET
44 | if: matrix.os == 'windows-latest'
45 | uses: actions/setup-dotnet@v4
46 | with:
47 | dotnet-version: 8.0.x
48 |
49 | - name: Build source package
50 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64'
51 | run: dotnet pack -c Release ImGui.NET.SourceBuild.csproj
52 | shell: bash
53 |
54 | - name: Upload source package
55 | uses: actions/upload-artifact@v4
56 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64'
57 | with:
58 | name: win-x64-source
59 | path: bin\Packages\Release\*.nupkg
60 |
61 | - name: Publish untagged source package to MyGet
62 | if: matrix.os == 'windows-latest' && github.ref == 'refs/heads/master' && matrix.architecture == 'x64'
63 | run: dotnet nuget push bin\Packages\Release\*.nupkg -s https://www.myget.org/F/mellinoe/api/v3/index.json --api-key ${{secrets.MYGET_KEY}}
64 | # error can be fixed afterwards and job can be re-triggered
65 | continue-on-error: true
66 |
67 | - name: Publish tagged source package release to nuget.org
68 | if: matrix.os == 'windows-latest' && startsWith(github.ref, 'refs/tags/') && matrix.architecture == 'x64'
69 | run: dotnet nuget push bin\Packages\Release\*.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_KEY}}
70 | # error can be fixed afterwards and job can be re-triggered
71 | continue-on-error: true
72 |
73 | - name: Build ${{ github.event.inputs.ReleaseType || 'Release' }}
74 | run: |
75 | if [ "$RUNNER_OS" == "Windows" ]; then
76 | ./ci-build.cmd ${{ github.event.inputs.ReleaseType || 'Release' }} ${{ matrix.architecture }}
77 | else
78 | ./ci-build.sh ${{ github.event.inputs.ReleaseType || 'Release' }}
79 | fi
80 | shell: bash
81 |
82 | - name: Upload win-${{ matrix.architecture }} ${{ github.event.inputs.ReleaseType || 'Release' }}
83 | uses: actions/upload-artifact@v4
84 | if: matrix.os == 'windows-latest'
85 | with:
86 | name: win-${{ matrix.architecture }}
87 | path: cimgui\build\${{ matrix.architecture }}\${{ github.event.inputs.ReleaseType || 'Release' }}\*
88 |
89 | - name: Upload ${{ matrix.os }} ${{ github.event.inputs.ReleaseType || 'Release' }}
90 | uses: actions/upload-artifact@v4
91 | if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
92 | with:
93 | name: ${{ matrix.os }}-x64
94 | path: cimgui/build/${{ github.event.inputs.ReleaseType || 'Release' }}/*
95 |
96 | - name: Upload Json Files
97 | uses: actions/upload-artifact@v4
98 | if: matrix.os == 'windows-latest' && matrix.architecture == 'x64'
99 | with:
100 | name: JsonFiles
101 | path: cimgui\generator\output\*.json
102 |
103 | CreateReleaseOnTagCreate:
104 | runs-on: ubuntu-latest
105 | needs: [Build]
106 | if: startsWith(github.ref, 'refs/tags/')
107 | steps:
108 | - name: Download Artifacts
109 | uses: actions/download-artifact@v4
110 |
111 | - name: Rename win-x64 and win-x86 artifacts
112 | run: |
113 | mv win-x64/cimgui.dll win-x64/cimgui.win-x64.dll
114 | mv win-x86/cimgui.dll win-x86/cimgui.win-x86.dll
115 | mv win-ARM64/cimgui.dll win-ARM64/cimgui.win-arm64.dll
116 |
117 | - name: Release
118 | uses: softprops/action-gh-release@v2
119 | with:
120 | files: |
121 | win-x64/cimgui.win-x64.dll
122 | win-x86/cimgui.win-x86.dll
123 | win-ARM64/cimgui.win-arm64.dll
124 | JsonFiles/*
125 | ubuntu-latest-x64/cimgui.so
126 | macos-latest-x64/cimgui.dylib
127 |
--------------------------------------------------------------------------------