-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathconanfile.py
More file actions
77 lines (67 loc) · 2.8 KB
/
Copy pathconanfile.py
File metadata and controls
77 lines (67 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import os
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
required_conan_version = ">=2.28"
class YsmConan(ConanFile):
name = "ysm"
version = "3.0"
license = "Apache-2.0"
package_type = "application"
settings = "os", "arch", "compiler", "build_type"
options = {"fPIC": [True, False]}
default_options = {
"fPIC": True
}
def requirements(self):
self.requires("mimalloc/3.3.2@ysm/stable")
self.requires("cpu_features/0.11.0@ysm/stable")
self.requires("abseil/20260107.1@ysm/stable")
self.requires("zlib-ng/2.3.3@ysm/stable")
self.requires("minizip-ng/4.2.1@ysm/stable")
self.requires("zstd/1.5.7@ysm/stable")
self.requires("cglm/0.9.6@ysm/stable")
self.requires("lzma/25.01@ysm/stable")
self.requires("opus/1.6.1@ysm/stable")
self.requires("spng/0.7.4@ysm/stable")
self.requires("jpeg-turbo/3.1.90@ysm/stable")
self.requires("webp/1.6.0@ysm/stable")
self.requires("yuv/0.0.1892@ysm/stable")
self.requires("avif/1.4.1@ysm/stable")
self.requires("blake3/1.8.5@ysm/stable")
self.requires("cryptopp/8.9.0@ysm/stable")
self.requires("proxy/4.0.2@ysm/stable")
self.requires("pystring/1.1.5@ysm/stable")
self.requires("optional_ref/0.3.1@ysm/stable")
self.requires("magic_enum/0.9.8@ysm/stable")
self.requires("jni/8.0.0@ysm/stable")
self.requires("yalantinglibs/0.6.1@ysm/stable")
self.requires("flatbuffers/25.12.19-2026-02-06@ysm/stable")
self.requires("tracy/0.13.1@ysm/stable")
def build_requirements(self):
self.test_requires("benchmark/1.9.5@ysm/stable")
self.test_requires("googletest/1.17.0@ysm/stable")
def layout(self):
target_profile = self.conf.get("user.target:profile", default=None)
if target_profile is None:
raise ConanInvalidConfiguration("Config 'user.target:profile' not defined")
target_profile = str(target_profile).lower()
build_type = str(self.settings.build_type).lower()
self._layout_profile = target_profile
cmake_layout(self)
self.folders.build_folder_vars = [
"self._layout_profile",
"settings.build_type",
]
self.folders.build = os.path.join("build", f"{target_profile}-{build_type}")
self.folders.generators = os.path.join(self.folders.build, "generators")
def generate(self):
deps = CMakeDeps(self)
deps.generate()
tc = CMakeToolchain(self)
tc.presets_prefix = ""
tc.cache_variables["YSM_DEPENDENCY_PROVIDER"] = "conan"
tc.generate()
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build(target="ysm-lib")