Skip to content

Commit 2428606

Browse files
committed
refact: use new, factored out skia_minimal library containing imgui skia c++ submodule
1 parent c82509a commit 2428606

File tree

117 files changed

+128
-15867
lines changed

Some content is hidden

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

117 files changed

+128
-15867
lines changed

skia/CMakeLists.txt

Lines changed: 80 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,23 @@ SK_SHAPER_UNICODE_AVAILABLE
3434
SK_ENABLE_SVG
3535
SK_BUILD_FOR_UNIX
3636
)
37-
include_directories(./contrib/flatbuffers
38-
./imgui
39-
./src/arena/simple
40-
./contrib/skia
41-
./contrib/tracy/public
37+
include_directories(/home/deck/repo/imzero_client_cpp/skia2/./src/marshalling
38+
/home/deck/repo/imzero_client_cpp/skia2/./src/arena/simple
39+
/home/deck/repo/imzero_client_cpp/skia2/./src/binding
40+
/home/deck/repo/imzero_client_cpp/skia2/./src
41+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_implot
42+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_toggle
43+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_knobs
44+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_coolbar
45+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_flamegraph
46+
/home/deck/repo/imzero_client_cpp/skia2/./imcolortextedit
47+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets
48+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/contrib/flatbuffers/include
49+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/imgui_w_hooks_1.91.9_wip
50+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/imgui_skia_impl
51+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../../contrib/skia
52+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/imgui_skia_driver_impl
53+
/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/contrib/tracy/public
4254
)
4355
add_compile_options(-std=c++20
4456
-Wall
@@ -47,12 +59,13 @@ add_compile_options(-std=c++20
4759
-Wno-unused-parameter
4860
-fno-omit-frame-pointer
4961
-O3
62+
# systemFlags
63+
-fPIC
5064
# sdl3Shared
51-
-I/home/deck/repo/imzero_client_cpp/skia/./../../contrib/sdl/include
65+
-I/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/contrib/sdl/include
5266
# skiaShared
5367
-ffp-contract=off
5468
-fstrict-aliasing
55-
-fPIC
5669
-fvisibility=hidden
5770
-fdata-sections
5871
-ffunction-sections
@@ -62,149 +75,109 @@ add_compile_options(-std=c++20
6275
)
6376
link_libraries(-Wl,-rpath,'$ORIGIN/../lib' -Wl,-z,origin
6477
-DNDEBUG
78+
# systemFlags
79+
-Wl,-rpath,'$ORIGIN/../lib' -Wl,-z,origin
6580
# sdl3Shared
66-
-L/home/deck/repo/imzero_client_cpp/skia/./../../contrib/sdl/build
81+
-L/home/deck/repo/imzero_client_cpp/skia_minimal/./../skia_minimal/contrib/sdl/build
6782
-Wl,--enable-new-dtags
6883
-lSDL3
6984
# skiaShared
7085
-ldl
7186
-lpthread
7287
-lfreetype
7388
-lz
74-
-lglfw
7589
-lfontconfig
7690
-lwebpmux
7791
-lwebpdemux
7892
-lX11
7993
-lGLU
8094
-lGL
81-
-L/home/deck/repo/imzero_client_cpp/skia/./../../contrib/skia/out/Shared
95+
-L/home/deck/repo/imzero_client_cpp/skia_minimal/./../../contrib/skia/out/Shared
8296
-lskparagraph
8397
-lskia
8498
-lskunicode
8599
-lbentleyottmann
86100
-lskshaper
87-
# mainSkiaSdl3
88-
-ldl
89-
-lpthread
90-
-lfreetype
91-
-lz
92-
-lfontconfig
93-
-lwebpmux
94-
-lwebpdemux
95-
-lX11
96-
-lGLU
97-
-lGL
98101
)
99-
100-
# empty target flatbuffers
101-
102-
# begin imguiWithSkia
103-
add_library(imguiWithSkia STATIC ./imgui/imzero_hooks.cpp
104-
./imgui/imzero_extensions.cpp
105-
./imgui/imgui.cpp
106-
./imgui/imgui_demo.cpp
107-
./imgui/imgui_draw.cpp
108-
./imgui/imgui_tables.cpp
109-
./imgui/imgui_widgets.cpp)
110-
# end imguiWithSkia
111-
112-
# begin render
113-
add_library(render STATIC ./src/render.cpp)
114-
target_include_directories(render PUBLIC ./src
115-
./src/widgets/imgui_implot
116-
./imcolortextedit)
117-
# end render
118-
102+
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
103+
add_link_options(-Wl,--start-group)
104+
endif()
119105
# begin marshalling
120-
add_library(marshalling STATIC ./src/marshalling/receive.cpp
121-
./src/marshalling/send.cpp
122-
./src/marshalling/helper.cpp)
123-
target_include_directories(marshalling PUBLIC ./src/marshalling
124-
./src/widgets/imgui_implot)
106+
add_library(marshalling STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/marshalling/receive.cpp
107+
/home/deck/repo/imzero_client_cpp/skia2/./src/marshalling/send.cpp
108+
/home/deck/repo/imzero_client_cpp/skia2/./src/marshalling/helper.cpp)
125109
# end marshalling
126110

127111
# begin arena
128-
add_library(arena STATIC ./src/arena/simple/simple.cpp)
112+
add_library(arena STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/arena/simple/simple.cpp)
129113
# end arena
130114

131-
# begin widgets
132-
add_library(widgets STATIC ./src/widgets/common.cpp
133-
./src/widgets/piemenu.cpp
134-
./src/widgets/splitter.cpp)
135-
target_compile_options(widgets PUBLIC -Wno-unused-parameter
136-
-Wno-unused-variable)
137-
# end widgets
115+
# empty target binding
116+
117+
# begin render
118+
add_library(render STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/render.cpp)
119+
# end render
120+
121+
# begin imguiImplot
122+
add_library(imguiImplot STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_implot/implot.cpp
123+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_implot/implot_demo.cpp
124+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_implot/implot_items.cpp)
125+
# end imguiImplot
138126

139127
# begin imguiToggle
140-
add_library(imguiToggle STATIC ./src/widgets/imgui_toggle/imgui_toggle.cpp
141-
./src/widgets/imgui_toggle/imgui_toggle_palette.cpp
142-
./src/widgets/imgui_toggle/imgui_toggle_presets.cpp
143-
./src/widgets/imgui_toggle/imgui_toggle_renderer.cpp)
128+
add_library(imguiToggle STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_toggle/imgui_toggle.cpp
129+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_toggle/imgui_toggle_palette.cpp
130+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_toggle/imgui_toggle_presets.cpp
131+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_toggle/imgui_toggle_renderer.cpp)
144132
target_compile_options(imguiToggle PUBLIC -Wno-unused-parameter
145133
-Wno-unused-variable)
146134
# end imguiToggle
147135

148-
# begin imguiImplot
149-
add_library(imguiImplot STATIC ./src/widgets/imgui_implot/implot.cpp
150-
./src/widgets/imgui_implot/implot_demo.cpp
151-
./src/widgets/imgui_implot/implot_items.cpp)
152-
# end imguiImplot
153-
154136
# begin imguiKnobs
155-
add_library(imguiKnobs STATIC ./src/widgets/imgui_knobs/imgui-knobs.cpp)
137+
add_library(imguiKnobs STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_knobs/imgui-knobs.cpp)
156138
# end imguiKnobs
157139

158140
# begin imguiCoolbar
159-
add_library(imguiCoolbar STATIC ./src/widgets/imgui_coolbar/ImCoolbar.cpp)
141+
add_library(imguiCoolbar STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_coolbar/ImCoolbar.cpp)
160142
# end imguiCoolbar
161143

162144
# begin imguiFlamegraph
163-
add_library(imguiFlamegraph STATIC ./src/widgets/imgui_flamegraph/imgui_widget_flamegraph.cpp)
164-
target_include_directories(imguiFlamegraph PUBLIC ./src/widgets/imgui_flamegraph
165-
./src/widgets/imgui_flamegraph)
145+
add_library(imguiFlamegraph STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/imgui_flamegraph/imgui_widget_flamegraph.cpp)
166146
# end imguiFlamegraph
167147

168148
# begin imguiTextedit
169-
add_library(imguiTextedit STATIC ./imcolortextedit/TextEditor.cpp
170-
./imcolortextedit/LanguageDefinitions.cpp)
149+
add_library(imguiTextedit STATIC /home/deck/repo/imzero_client_cpp/skia2/./imcolortextedit/TextEditor.cpp
150+
/home/deck/repo/imzero_client_cpp/skia2/./imcolortextedit/LanguageDefinitions.cpp)
171151
target_compile_options(imguiTextedit PUBLIC -Wno-unused-variable)
172152
# end imguiTextedit
173153

174-
# empty target binding
175-
176-
# empty target sdl3Shared
177-
178-
# empty target skiaShared
179-
180-
# begin mainSkiaSdl3
181-
add_executable(mainSkiaSdl3 ./main/sdl3/../../imgui/imgui_impl_sdl3.cpp
182-
./main/sdl3/main.cpp
183-
./main/sdl3/app.cpp
184-
./main/sdl3/../paragraph.cpp
185-
./main/sdl3/../cliOptions.cpp
186-
./main/sdl3/../setupUI.cpp
187-
./main/sdl3/../vectorCmdSkiaRenderer.cpp)
188-
target_compile_options(mainSkiaSdl3 PUBLIC -Wno-unused-parameter)
189-
target_include_directories(mainSkiaSdl3 PUBLIC ./main/sdl3
190-
./imgui
191-
./src/widgets/imgui_implot
192-
./src
193-
./main/sdl3/..)
194-
target_link_libraries(mainSkiaSdl3 imguiWithSkia)
195-
target_link_libraries(mainSkiaSdl3 render)
196-
target_link_libraries(mainSkiaSdl3 marshalling)
197-
target_link_libraries(mainSkiaSdl3 arena)
198-
target_link_libraries(mainSkiaSdl3 widgets)
199-
target_link_libraries(mainSkiaSdl3 imguiToggle)
200-
target_link_libraries(mainSkiaSdl3 imguiImplot)
201-
target_link_libraries(mainSkiaSdl3 imguiKnobs)
202-
target_link_libraries(mainSkiaSdl3 imguiCoolbar)
203-
target_link_libraries(mainSkiaSdl3 imguiFlamegraph)
204-
target_link_libraries(mainSkiaSdl3 imguiTextedit)
205-
target_link_libraries(mainSkiaSdl3 tracyDisabled)
206-
# end mainSkiaSdl3
154+
# begin widgets
155+
add_library(widgets STATIC /home/deck/repo/imzero_client_cpp/skia2/./src/widgets/common.cpp
156+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/piemenu.cpp
157+
/home/deck/repo/imzero_client_cpp/skia2/./src/widgets/splitter.cpp)
158+
target_compile_options(widgets PUBLIC -Wno-unused-parameter
159+
-Wno-unused-variable)
160+
# end widgets
207161

208-
# begin tracyDisabled
209-
add_library(tracyDisabled STATIC ./contrib/tracy/public/TracyClient.cpp)
210-
# end tracyDisabled
162+
# begin imzeroClientSkiaSdl3Impl
163+
add_executable(imzeroClientSkiaSdl3Impl /home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl/main.cpp
164+
/home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl/imzero_client_skia_sdl3_app.cpp
165+
/home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl/imzero_client_skia_sdl3_cli_options.cpp
166+
/home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl/bmp_encoder.cpp)
167+
target_compile_options(imzeroClientSkiaSdl3Impl PUBLIC -Wno-unused-parameter)
168+
target_include_directories(imzeroClientSkiaSdl3Impl PUBLIC /home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl
169+
/home/deck/repo/imzero_client_cpp/skia2/./imzero_client_skia_sdl3_impl)
170+
target_link_libraries(imzeroClientSkiaSdl3Impl marshalling)
171+
target_link_libraries(imzeroClientSkiaSdl3Impl arena)
172+
target_link_libraries(imzeroClientSkiaSdl3Impl render)
173+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiImplot)
174+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiToggle)
175+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiKnobs)
176+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiCoolbar)
177+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiFlamegraph)
178+
target_link_libraries(imzeroClientSkiaSdl3Impl imguiTextedit)
179+
target_link_libraries(imzeroClientSkiaSdl3Impl widgets)
180+
# end imzeroClientSkiaSdl3Impl
181+
add_library(libimgui_skia STATIC IMPORTED)
182+
set_target_properties(libimgui_skia PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../skia_minimal/build/libimgui_skia.a")
183+
target_link_libraries(imzeroClientSkiaSdl3Impl libimgui_skia)

skia/build.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ here=$(dirname "$(readlink -f "$BASH_SOURCE")")
44
cd "$here"
55
source "env.sh"
66
export IMZERO_CLIENT_CPP_ROOT="$(realpath "$here")"
7-
./build_go.sh
7+
export IMGUI_SKIA_CPP_ROOT="$(realpath "$here/..")"
88
./copy_libs.sh
99
./build_cpp.sh
10+
./build_go.sh
1011
rm -rf bin
1112
mkdir -p bin
12-
mv imgui_skia_exe bin
13+
mv build/imzeroClientSkiaSdl3Impl* bin/imgui_skia_exe
1314

1415
mkdir -p .vscode
1516
./vscode.dhall

skia/build_cpp.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
set -ev
33
here=$(dirname "$(readlink -f "$BASH_SOURCE")")
44
cd "$here"
5-
flatc="../../contrib/flatbuffers/flatc"
6-
"$flatc" -o main --cpp ../spec/ImZeroFB.fbs --reflect-types --reflect-names --filename-suffix .out
7-
xxd -i ../spec/ImZeroFB.fbs main/ImZeroFB.fbs.gen.h
85

96
./cmakelists.dhall
107

@@ -19,10 +16,9 @@ generate_buildinfo() {
1916
fi
2017
echo -en ";\n}\n"
2118
}
22-
generate_buildinfo > src/buildinfo.gen.h
19+
generate_buildinfo > "$here/imzero_client_skia_sdl3_impl/buildinfo.gen.h"
2320

2421
mkdir -p build
2522
cd build
2623
cmake ../CMakeLists.txt
2724
cmake --build . -j
28-
mv mainSkiaSdl3 ../imgui_skia_exe

skia/cmakelists.dhall

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,20 @@ cmake.cmakelistsToText cmake.cmakelists::{
1414
}
1515
, projectName = "imgui_skia_exe"
1616
, cxxflags = ["-std=c++${Natural/show common.cppstd}" ] # common.cxxflags # common.stdlibFlags
17+
--# [ , "-I\${CMAKE_CURRENT_LIST_DIR}/../skia_minimal/imgui_w_hooks_1.91.9_wip"
18+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../skia_minimal/imgui_skia_impl"
19+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../skia_minimal/imgui_skia_driver_impl"
20+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../../contrib/skia"
21+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../../contrib/flatbuffers/include"
22+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../../contrib/sdl/include"
23+
-- , "-I\${CMAKE_CURRENT_LIST_DIR}/../../contrib/tracy/public"
24+
-- ]
1725
, ldflags = common.ldflags # common.stdlibFlags
1826
, sourceTreeParts = common.sourceTreeParts
27+
, librarySourceTreeParts = common.librarySourceTreeParts
1928
, cxxStandard = common.cppstd
29+
, recursiveLinking = True -- FIXME why is this necessary?
2030
}
31+
++ "add_library(libimgui_skia STATIC IMPORTED)\n"
32+
++ "set_target_properties(libimgui_skia PROPERTIES IMPORTED_LOCATION \"\${CMAKE_CURRENT_LIST_DIR}/../skia_minimal/build/libimgui_skia.a\")\n"
33+
++ "target_link_libraries(imzeroClientSkiaSdl3Impl libimgui_skia)\n"

skia/common.dhall

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,39 @@ let common =
33
let debug = False
44
let asan = False
55
let ubsan = False
6-
let sourceTreePartsRepo = ../dhall/sourceTreeParts.dhall
6+
let sourceTreePartsRepo = ./dhall/sourceTreeParts.dhall
7+
let sourceTreePartsImGuiSkia = ../skia_minimal/dhall/sourceTreeParts.dhall
8+
let target = {os = sourceTreePartsImGuiSkia.TargetOs.linux}
9+
let librarySourceTreeParts = [
10+
, sourceTreePartsImGuiSkia.systemFlags target
11+
, sourceTreePartsImGuiSkia.flatbuffers
12+
, sourceTreePartsImGuiSkia.imguiWithHooks1919Wip sourceTreePartsImGuiSkia.ImGuiAppHelper.SDL3
13+
, sourceTreePartsImGuiSkia.imguiSkiaImpl
14+
, sourceTreePartsImGuiSkia.sdl3Shared
15+
, sourceTreePartsImGuiSkia.skiaShared target
16+
, sourceTreePartsImGuiSkia.imguiSkiaDriverImpl
17+
]
18+
# (if debug then [ , sourceTreePartsImGuiSkia.tracyEnabled ] else [ , sourceTreePartsImGuiSkia.tracyDisabled ] : List lib.sourceTreePart.Type )
719
let sourceTreeParts = [
8-
, sourceTreePartsRepo.flatbuffers
9-
, sourceTreePartsRepo.imguiWithSkia
10-
, sourceTreePartsRepo.render
1120
, sourceTreePartsRepo.marshalling
1221
, sourceTreePartsRepo.arena
13-
, sourceTreePartsRepo.widgets
14-
, sourceTreePartsRepo.imguiToggle
22+
, sourceTreePartsRepo.binding
23+
, sourceTreePartsRepo.render
24+
1525
, sourceTreePartsRepo.imguiImplot
26+
, sourceTreePartsRepo.imguiToggle
1627
, sourceTreePartsRepo.imguiKnobs
1728
, sourceTreePartsRepo.imguiCoolbar
1829
, sourceTreePartsRepo.imguiFlamegraph
1930
, sourceTreePartsRepo.imguiTextedit
20-
, sourceTreePartsRepo.binding
21-
, sourceTreePartsRepo.sdl3Shared
22-
, sourceTreePartsRepo.skiaShared
23-
, sourceTreePartsRepo.mainSkiaSdl3
31+
, sourceTreePartsRepo.widgets
32+
33+
, sourceTreePartsRepo.imzeroClientSkiaSdl3Impl
2434
]
25-
# (if debug then [ , sourceTreePartsRepo.tracyEnabled ] else [ ,sourceTreePartsRepo.tracyDisabled ] : List lib.sourceTreePart.Type )
26-
let cxx = "clang++"
35+
let cxx = "clang++"
2736
let cppstd = 20
2837
let cxxflagsRelease = [
29-
, "-Wall"
38+
, "-Wall"
3039
, "-Wformat"
3140
, "-Wextra"
3241
, "-Wno-unused-parameter"
@@ -67,6 +76,7 @@ let common =
6776
let linker = cxx
6877
in {
6978
, sourceTreeParts
79+
, librarySourceTreeParts
7080
, cxx
7181
, linker
7282
, cppstd

skia/contrib/flatbuffers

Lines changed: 0 additions & 1 deletion
This file was deleted.

skia/contrib/imgui

Lines changed: 0 additions & 1 deletion
This file was deleted.

skia/contrib/sdl3

Lines changed: 0 additions & 1 deletion
This file was deleted.

skia/contrib/skia

Lines changed: 0 additions & 1 deletion
This file was deleted.

skia/contrib/tracy

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)