2025-07-06 20:43:53 +03:00
|
|
|
from conan import ConanFile
|
|
|
|
|
from conan.tools.cmake import cmake_layout
|
|
|
|
|
|
|
|
|
|
class CompressorRecipe(ConanFile):
|
|
|
|
|
settings = "os", "compiler", "build_type", "arch"
|
|
|
|
|
generators = "CMakeToolchain", "CMakeDeps"
|
|
|
|
|
|
|
|
|
|
def requirements(self):
|
|
|
|
|
if self.settings.os == "Emscripten":
|
2025-11-19 20:08:59 +03:00
|
|
|
self.requires("skia-infinipaint/143.20251028.0", options = {
|
2025-07-06 20:43:53 +03:00
|
|
|
"enable_svg": True,
|
2025-11-14 16:37:49 +03:00
|
|
|
"use_freetype": True,
|
|
|
|
|
"use_system_freetype": True,
|
2025-07-06 20:43:53 +03:00
|
|
|
"use_expat": True,
|
|
|
|
|
"use_harfbuzz": True,
|
2025-11-14 16:37:49 +03:00
|
|
|
"use_system_harfbuzz": True,
|
|
|
|
|
"use_conan_harfbuzz": False,
|
|
|
|
|
"use_system_icu": True,
|
|
|
|
|
"use_conan_icu": True,
|
2025-10-12 18:24:59 +03:00
|
|
|
"enable_skshaper": True,
|
2025-11-14 16:37:49 +03:00
|
|
|
"canvaskit_enable_alias_font": False,
|
|
|
|
|
"canvaskit_enable_canvas_bindings": False,
|
|
|
|
|
"canvaskit_enable_effects_deserialization": False,
|
|
|
|
|
"canvaskit_enable_embedded_font": False,
|
|
|
|
|
"canvaskit_enable_font": False,
|
|
|
|
|
"canvaskit_enable_matrix_helper": False,
|
|
|
|
|
"canvaskit_enable_pathops": False,
|
|
|
|
|
"canvaskit_enable_rt_shader": False,
|
|
|
|
|
"canvaskit_enable_skp_serialization": False,
|
|
|
|
|
"canvaskit_enable_sksl_trace": False,
|
|
|
|
|
"canvaskit_enable_webgpu": False,
|
|
|
|
|
"canvaskit_enable_webgl": False,
|
|
|
|
|
"use_system_libwebp": False, # There's a problem compiling libwebp with emscripten in conan
|
|
|
|
|
"use_conan_libwebp": False
|
2025-07-06 20:43:53 +03:00
|
|
|
})
|
2025-11-18 22:06:37 +03:00
|
|
|
elif self.settings.os == "Windows":
|
2025-11-19 20:08:59 +03:00
|
|
|
self.requires("skia-infinipaint/143.20251028.0", options = {
|
2025-11-18 22:06:37 +03:00
|
|
|
"use_system_expat": False,
|
|
|
|
|
"use_freetype": False,
|
|
|
|
|
"use_system_harfbuzz": True,
|
|
|
|
|
"use_conan_harfbuzz": True,
|
|
|
|
|
"use_system_icu": True,
|
|
|
|
|
"use_conan_icu": True,
|
|
|
|
|
"use_system_libjpeg_turbo": False,
|
|
|
|
|
"use_system_libpng": False,
|
|
|
|
|
"use_system_libwebp": False,
|
|
|
|
|
"use_system_zlib": False,
|
|
|
|
|
"enable_svg": True,
|
|
|
|
|
"enable_skottie": False,
|
|
|
|
|
"enable_bentleyottmann": True # for some reason, setting this to False results in an error when creating the project
|
|
|
|
|
})
|
2025-11-21 22:26:58 -08:00
|
|
|
elif self.settings.os == "Macos":
|
|
|
|
|
self.requires("skia-infinipaint/143.20251028.0", options = {
|
|
|
|
|
"use_system_expat": False,
|
|
|
|
|
"use_freetype": False,
|
|
|
|
|
"use_system_harfbuzz": True,
|
|
|
|
|
"use_conan_harfbuzz": True,
|
|
|
|
|
"use_system_icu": True,
|
|
|
|
|
"use_conan_icu": True,
|
|
|
|
|
"use_system_libjpeg_turbo": False,
|
|
|
|
|
"use_system_libpng": False,
|
|
|
|
|
"use_system_libwebp": False,
|
|
|
|
|
"use_system_zlib": False,
|
|
|
|
|
"use_x11": False,
|
|
|
|
|
"use_egl": False,
|
|
|
|
|
"enable_svg": True,
|
|
|
|
|
"enable_skottie": False,
|
|
|
|
|
"enable_bentleyottmann": True # for some reason, setting this to False results in an error when creating the project
|
|
|
|
|
})
|
2025-07-06 20:43:53 +03:00
|
|
|
else:
|
2025-11-19 20:08:59 +03:00
|
|
|
self.requires("skia-infinipaint/143.20251028.0", options = {
|
2025-11-14 16:37:49 +03:00
|
|
|
"use_system_expat": False,
|
|
|
|
|
"use_freetype": True,
|
|
|
|
|
"use_system_freetype": True,
|
|
|
|
|
"use_conan_freetype": True,
|
|
|
|
|
"use_system_harfbuzz": True,
|
|
|
|
|
"use_conan_harfbuzz": True,
|
|
|
|
|
"use_system_icu": True,
|
|
|
|
|
"use_conan_icu": True,
|
|
|
|
|
"use_system_libjpeg_turbo": False,
|
|
|
|
|
"use_system_libpng": False,
|
|
|
|
|
"use_system_libwebp": False,
|
|
|
|
|
"use_system_zlib": False,
|
2025-11-15 17:03:14 +03:00
|
|
|
"use_x11": False,
|
|
|
|
|
"use_egl": True,
|
2025-07-06 20:43:53 +03:00
|
|
|
"enable_svg": True,
|
|
|
|
|
"enable_skottie": False,
|
2025-11-14 16:37:49 +03:00
|
|
|
"enable_bentleyottmann": True # for some reason, setting this to False results in an error when creating the project
|
2025-07-06 20:43:53 +03:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.settings.os == "Linux":
|
2026-03-29 20:23:38 +03:00
|
|
|
self.requires("fontconfig/2.17.1")
|
|
|
|
|
self.requires("egl/system")
|
2026-05-04 11:01:07 +03:00
|
|
|
self.requires("sdl-infinipaint/3.4.8", options = {
|
2025-07-06 20:43:53 +03:00
|
|
|
"wayland": False,
|
2025-11-15 17:03:14 +03:00
|
|
|
"x11": True,
|
2025-07-06 20:43:53 +03:00
|
|
|
"pulseaudio": False,
|
|
|
|
|
"alsa": False,
|
|
|
|
|
"sndio": False,
|
|
|
|
|
"vulkan": False,
|
|
|
|
|
"opengles": False
|
|
|
|
|
})
|
2026-04-12 17:31:32 +03:00
|
|
|
elif self.settings.os == "Emscripten":
|
2026-05-04 11:01:07 +03:00
|
|
|
self.requires("sdl-infinipaint/3.4.8", options = {
|
2026-04-12 17:31:32 +03:00
|
|
|
"emscriptenPersistentPath": "/infinipaint"
|
|
|
|
|
})
|
2026-02-24 17:21:41 +03:00
|
|
|
elif self.settings.os != "Android":
|
2026-05-04 11:01:07 +03:00
|
|
|
self.requires("sdl-infinipaint/3.4.8")
|
2025-07-06 20:43:53 +03:00
|
|
|
|
2026-02-24 17:21:41 +03:00
|
|
|
if self.settings.os != "Emscripten" and self.settings.os != "Macos" and self.settings.os != "Android":
|
2026-02-03 12:16:39 +03:00
|
|
|
self.requires("hwloc/2.12.2", options = {
|
|
|
|
|
"shared": True
|
|
|
|
|
})
|
2025-07-06 20:43:53 +03:00
|
|
|
self.requires("onetbb/2022.0.0")
|
|
|
|
|
|
|
|
|
|
if self.settings.os != "Emscripten":
|
2026-05-16 18:59:21 +03:00
|
|
|
self.requires("libdatachannel/0.24.0")
|
|
|
|
|
self.requires("libcurl/8.20.0")
|
2025-07-28 17:07:39 +03:00
|
|
|
|
|
|
|
|
self.requires("zstd/1.5.7")
|
2025-11-19 20:08:59 +03:00
|
|
|
self.requires("icu-infinipaint/77.1")
|
2025-10-13 18:54:33 +03:00
|
|
|
|
2025-07-06 20:43:53 +03:00
|
|
|
def build_requirements(self):
|
|
|
|
|
self.tool_requires("cmake/3.27.0")
|
|
|
|
|
|
|
|
|
|
def layout(self):
|
|
|
|
|
cmake_layout(self)
|