Skip to content

Commit b3fce83

Browse files
committed
feat: static linked skia, fixes and improvements
1 parent 01278ca commit b3fce83

File tree

12 files changed

+8801
-8768
lines changed

12 files changed

+8801
-8768
lines changed

imgui_skia/CMakeLists.txt

Lines changed: 132 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,132 @@
1-
# generated using cmakelists.dhall
2-
cmake_minimum_required(VERSION 3.24)
3-
project(imgui_skia)
4-
set(CMAKE_LINKER clang++)
5-
set(CMAKE_CXX_COMPILER clang++)
6-
set(CMAKE_BUILD_TYPE Release)
7-
8-
add_compile_definitions(_CRT_SECURE_NO_WARNINGS
9-
_HAS_EXCEPTIONS=0
10-
WIN32_LEAN_AND_MEAN
11-
NOMINMAX
12-
NDEBUG
13-
SK_CODEC_DECODES_BMP
14-
SK_CODEC_DECODES_WBMP
15-
SK_ENABLE_PRECOMPILE
16-
SK_GANESH
17-
SK_DISABLE_TRACING
18-
SK_GAMMA_APPLY_TO_A8
19-
SK_ENABLE_AVX512_OPTS
20-
SKIA_IMPLEMENTATION=1
21-
SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE
22-
SK_TYPEFACE_FACTORY_FREETYPE
23-
SK_FONTMGR_FREETYPE_EMBEDDED_AVAILABLE
24-
SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE
25-
SK_TYPEFACE_FACTORY_DIRECTWRITE
26-
SK_FONTMGR_DIRECTWRITE_AVAILABLE
27-
SK_FONTMGR_GDI_AVAILABLE
28-
SK_GL
29-
SK_CODEC_ENCODES_JPEG
30-
SK_SUPPORT_PDF
31-
SK_CODEC_DECODES_JPEG
32-
SK_CODEC_ENCODES_PNG
33-
SK_CODEC_ENCODES_PNG_WITH_LIBPNG
34-
SK_CODEC_ENCODES_WEBP
35-
SK_SUPPORT_XPS
36-
SK_CODEC_DECODES_ICO
37-
SK_CODEC_DECODES_PNG
38-
SK_CODEC_DECODES_PNG_WITH_LIBPNG
39-
SK_CODEC_DECODES_RAW
40-
SK_CODEC_DECODES_WEBP
41-
SK_HAS_WUFFS_LIBRARY
42-
SK_CODEC_DECODES_GIF
43-
SK_XML
44-
)
45-
include_directories(C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/flatbuffers/include
46-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip
47-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl
48-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/sdl/include
49-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/skia
50-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl
51-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/tracy/public
52-
)
53-
add_compile_options(-std=c++20
54-
-Wall
55-
-Wformat
56-
-Wextra
57-
-Wno-unused-parameter
58-
-fno-omit-frame-pointer
59-
-O3
60-
# skiaShared
61-
-funwind-tables
62-
-ffp-contract=off
63-
-fstrict-aliasing
64-
-fvisibility=hidden
65-
-fdata-sections
66-
-ffunction-sections
67-
-fvisibility-inlines-hidden
68-
-fno-exceptions
69-
-fno-rtti
70-
)
71-
link_libraries(-DNDEBUG
72-
# sdl3Shared
73-
-LC:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/sdl/build
74-
-lSDL3-static
75-
-lwinmm
76-
-limm32
77-
-lole32
78-
-loleaut32
79-
-lversion
80-
-luuid
81-
-ladvapi32
82-
-lsetupapi
83-
-lshell32
84-
-ldinput8
85-
# skiaShared
86-
-LC:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/skia/out/Static
87-
-lskparagraph
88-
-lskia
89-
-lskunicode_core
90-
-lskunicode_icu
91-
-lbentleyottmann
92-
-lskshaper
93-
-lOpenGL32
94-
)
95-
96-
# empty target systemFlags
97-
98-
# empty target flatbuffers
99-
100-
# begin imguiWithHooks1919Wip
101-
add_library(imguiWithHooks1919Wip STATIC C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui.cpp
102-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_demo.cpp
103-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_draw.cpp
104-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_tables.cpp
105-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_widgets.cpp
106-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_impl_sdl3.cpp
107-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_impl_sdl3.cpp)
108-
# end imguiWithHooks1919Wip
109-
110-
# begin imguiSkiaImpl
111-
add_library(imguiSkiaImpl STATIC C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_extensions.cpp
112-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_hooks_impl.cpp
113-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_imzero_cmd_render.cpp
114-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_paragraph.cpp
115-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_setup_ui.cpp
116-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_tracy_support.cpp)
117-
# end imguiSkiaImpl
118-
119-
# empty target sdl3Shared
120-
121-
# empty target skiaShared
122-
123-
# begin imguiSkiaDriverImpl
124-
add_library(imguiSkiaDriverImpl STATIC C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl/imgui_skia_app_sdl3.cpp
125-
C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl/imgui_skia_cli_options.cpp)
126-
# end imguiSkiaDriverImpl
127-
128-
# begin tracyDisabled
129-
add_library(tracyDisabled STATIC C:/Users/User/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/tracy/public/TracyClient.cpp)
130-
# end tracyDisabled
131-
add_library(imgui_skia STATIC $<TARGET_OBJECTS:imguiWithHooks1919Wip>
132-
$<TARGET_OBJECTS:imguiSkiaImpl>
133-
$<TARGET_OBJECTS:imguiSkiaDriverImpl>
134-
$<TARGET_OBJECTS:tracyDisabled>)
1+
# generated using cmakelists.dhall
2+
cmake_minimum_required(VERSION 3.24)
3+
project(imgui_skia)
4+
set(CMAKE_LINKER clang++)
5+
set(CMAKE_CXX_COMPILER clang++)
6+
set(CMAKE_BUILD_TYPE Release)
7+
8+
add_compile_definitions(SK_RELEASE
9+
SK_GAMMA_APPLY_TO_A8
10+
SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1
11+
SK_TYPEFACE_FACTORY_FREETYPE
12+
SK_FONTMGR_FREETYPE_EMBEDDED_AVAILABLE
13+
SK_FONTMGR_FONTCONFIG_AVAILABLE
14+
SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE
15+
SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE
16+
SK_GL
17+
SK_SUPPORT_PDF
18+
SK_CODEC_DECODES_JPEG
19+
SK_CODEC_DECODES_JPEG_GAINMAPS
20+
SK_XML
21+
SK_CODEC_DECODES_PNG
22+
SK_CODEC_DECODES_RAW
23+
SK_CODEC_DECODES_WEBP
24+
SK_DEFAULT_TYPEFACE_IS_EMPTY
25+
SK_DISABLE_LEGACY_DEFAULT_TYPEFACE
26+
SK_R32_SHIFT=16
27+
SK_ENABLE_PRECOMPILE
28+
SK_GANESH
29+
SK_ENABLE_PARAGRAPH
30+
SK_UNICODE_AVAILABLE
31+
SK_UNICODE_ICU_IMPLEMENTATION
32+
SK_SHAPER_PRIMITIVE_AVAILABLE
33+
SK_SHAPER_HARFBUZZ_AVAILABLE
34+
SK_SHAPER_UNICODE_AVAILABLE
35+
SK_ENABLE_SVG
36+
SK_BUILD_FOR_UNIX
37+
)
38+
include_directories(/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/flatbuffers/include
39+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip
40+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl
41+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/sdl/include
42+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/skia
43+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl
44+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/tracy/public
45+
)
46+
add_compile_options(-std=c++20
47+
-Wall
48+
-Wformat
49+
-Wextra
50+
-Wno-unused-parameter
51+
-fno-omit-frame-pointer
52+
-O3
53+
# systemFlags
54+
-fPIC
55+
# skia
56+
-ffp-contract=off
57+
-fstrict-aliasing
58+
-fvisibility=hidden
59+
-fdata-sections
60+
-ffunction-sections
61+
-fvisibility-inlines-hidden
62+
-fno-exceptions
63+
-fno-rtti
64+
)
65+
link_libraries(-DNDEBUG
66+
# systemFlags
67+
-Wl,--enable-new-dtags
68+
-Wl,-rpath,'$ORIGIN/../lib' -Wl,-z,origin
69+
# sdl3Shared
70+
-L/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/sdl/build
71+
-lSDL3
72+
# skia
73+
-L/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/skia/out/Static
74+
-ldl
75+
-lpthread
76+
-lfreetype
77+
-lz
78+
-lfontconfig
79+
-lwebpmux
80+
-lwebpdemux
81+
-lX11
82+
-lGLU
83+
-lGL
84+
-L/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/skia/out/Shared
85+
-lskparagraph
86+
-lskia
87+
-lbentleyottmann
88+
-lskshaper
89+
-lskunicode_core
90+
-lskunicode_icu
91+
-lskunicode_icu4x
92+
)
93+
94+
# empty target systemFlags
95+
96+
# empty target flatbuffers
97+
98+
# begin imguiWithHooks1919Wip
99+
add_library(imguiWithHooks1919Wip STATIC /home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui.cpp
100+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_demo.cpp
101+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_draw.cpp
102+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_tables.cpp
103+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_widgets.cpp
104+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_impl_sdl3.cpp
105+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_w_hooks_1.91.9_wip/imgui_impl_sdl3.cpp)
106+
# end imguiWithHooks1919Wip
107+
108+
# begin imguiSkiaImpl
109+
add_library(imguiSkiaImpl STATIC /home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_extensions.cpp
110+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_hooks_impl.cpp
111+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_imzero_cmd_render.cpp
112+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_paragraph.cpp
113+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_setup_ui.cpp
114+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_impl/imgui_skia_tracy_support.cpp)
115+
# end imguiSkiaImpl
116+
117+
# empty target sdl3Shared
118+
119+
# empty target skia
120+
121+
# begin imguiSkiaDriverImpl
122+
add_library(imguiSkiaDriverImpl STATIC /home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl/imgui_skia_app_sdl3.cpp
123+
/home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./imgui_skia_driver_impl/imgui_skia_cli_options.cpp)
124+
# end imguiSkiaDriverImpl
125+
126+
# begin tracyDisabled
127+
add_library(tracyDisabled STATIC /home/deck/repo/imzero_client_cpp/imgui_skia/../imgui_skia/./../../contrib/tracy/public/TracyClient.cpp)
128+
# end tracyDisabled
129+
add_library(imgui_skia STATIC $<TARGET_OBJECTS:imguiWithHooks1919Wip>
130+
$<TARGET_OBJECTS:imguiSkiaImpl>
131+
$<TARGET_OBJECTS:imguiSkiaDriverImpl>
132+
$<TARGET_OBJECTS:tracyDisabled>)

imgui_skia/build_flatbuffers.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set -ev
33
here=$(dirname "$(readlink -f "$BASH_SOURCE")")
44
cd "$here/../../contrib/flatbuffers" || exit 1
5-
cmake -DCMAKE_C_COMPILER=clang \
6-
-DCMAKE_CXX_COMPILER=clang++ \
5+
cmake -DCMAKE_CXX_COMPILER=clang++ \
76
-G "Ninja" .
8-
cmake --build . -j
7+
cmake --build . -j

imgui_skia/build_sdl3_linux.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ cmake -DSDL_STATIC=on \
88
-DSDL_SHARED=off \
99
-DCMAKE_BUILD_TYPE=Release \
1010
-DCMAKE_C_COMPILER=clang \
11-
-DCMAKE_CXX_COMPILER=clang++ \
1211
-DSDL_HIDAPI=off \
1312
-G "Ninja" ..
1413
cmake --build . -j

imgui_skia/build_sdl3_windows.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ cmake -DSDL_STATIC=on \
88
-DSDL_SHARED=off \
99
-DCMAKE_BUILD_TYPE=Release \
1010
-DCMAKE_C_COMPILER=clang \
11-
-DCMAKE_CXX_COMPILER=clang++ \
1211
-DSDL_HIDAPI=off \
1312
-G "Ninja" ..
1413
cmake --build . -j

imgui_skia/build_skia_linux.sh

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ cd "$here/../../contrib/skia"
1818
export GIT_SYNC_DEPS_SKIP_EMSDK="true"
1919
python3 tools/git-sync-deps
2020

21-
mkdir -p out/Shared
22-
cat > out/Shared/args.gn <<- EOF
21+
mkdir -p out/Static
22+
cat > out/Static/args.gn <<- EOF
2323
cc = "clang"
2424
cxx = "clang++"
2525
extra_cflags = ["-Wno-psabi"]
2626
is_official_build=true
2727
is_debug=false
2828
is_trivial_abi=false
29-
is_component_build=true
29+
is_component_build=false
3030
skia_use_gl=true
3131
sanitize=""
3232
skia_build_for_debugger=false
@@ -123,14 +123,14 @@ cat > out/Shared/args.gn <<- EOF
123123
skia_use_runtime_icu=false
124124
skia_use_safe_libcxx=false
125125
skia_use_sfml=false
126-
skia_use_system_expat=true
126+
skia_use_system_expat=false
127127
skia_use_system_freetype2=true
128128
skia_use_system_harfbuzz=false
129-
skia_use_system_icu=true
130-
skia_use_system_libjpeg_turbo=true
131-
skia_use_system_libpng=true
132-
skia_use_system_libwebp=true
133-
skia_use_system_zlib=true
129+
skia_use_system_icu=false
130+
skia_use_system_libjpeg_turbo=false
131+
skia_use_system_libpng=false
132+
skia_use_system_libwebp=false
133+
skia_use_system_zlib=false
134134
skia_use_vma=false
135135
skia_use_vulkan=false
136136
skia_use_webgl=false
@@ -147,8 +147,8 @@ EOF
147147
./bin/fetch-ninja
148148
#bin/gn args out/Shared --list
149149
#./bin/gn args out/Shared --list --short
150-
./bin/gn gen out/Shared
150+
./bin/gn gen out/Static
151151

152-
./third_party/ninja/ninja -v -d keeprsp -C out/Shared
152+
./third_party/ninja/ninja -v -d keeprsp -C out/Static
153153
#"$here/patch_skia_m124.sh"
154154
#./third_party/ninja/ninja -v -d keeprsp -C out/Shared

imgui_skia/cmakelists_linux.dhall

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ let lib = ../dhall/lib.dhall
44
let cmake = ../dhall/cmakelists.dhall
55
let sourceTreePartsRepo = ./dhall/sourceTreeParts.dhall
66
let c = ./common.dhall
7-
let common = c.common {os = c.TargetOs.windows}
7+
let common = c.common {os = c.TargetOs.linux}
88
in
99
cmake.cmakelistsToText cmake.cmakelists::{
1010
, cxx = common.cxx
@@ -25,4 +25,4 @@ cmake.cmakelistsToText cmake.cmakelists::{
2525
--++ "add_dependencies(imgui_skia_exe2 imgui_skia)\n"
2626
--++ "add_library(libimgui_skia2 STATIC IMPORTED)\n"
2727
--++ "set_target_properties(libimgui_skia2 PROPERTIES IMPORTED_LOCATION \"\${CMAKE_CURRENT_LIST_DIR}/build/libimgui_skia.a\")\n"
28-
--++ "target_link_libraries(imgui_skia_exe2 libimgui_skia2)\n"
28+
--++ "target_link_libraries(imgui_skia_exe2 libimgui_skia2)\n"

imgui_skia/copy_libs_linux.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ mkdir -p lib
77
copy() {
88
ln -v "$(realpath "$1")" "lib/$(basename "$1")"
99
}
10-
copy "$here/../../contrib/sdl/build/libSDL3.so.0"
10+
#copy "$here/../../contrib/sdl/build/libSDL3.so.0"
1111
copy "$here/../../contrib/skia/out/Shared/libskparagraph.so"
1212
copy "$here/../../contrib/skia/out/Shared/libskia.so"
13-
copy "$here/../../contrib/skia/out/Shared/libskunicode.so"
13+
copy "$here/../../contrib/skia/out/Shared/libskunicode_core.so"
14+
copy "$here/../../contrib/skia/out/Shared/libskunicode_icu.so"
15+
copy "$here/../../contrib/skia/out/Shared/libskunicode_icu4x.so"
1416
copy "$here/../../contrib/skia/out/Shared/libbentleyottmann.so"
1517
copy "$here/../../contrib/skia/out/Shared/libskshaper.so"

0 commit comments

Comments
 (0)