jolt 0.9.342__py3-none-any.whl → 0.9.429__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. jolt/__init__.py +47 -0
  2. jolt/cache.py +358 -159
  3. jolt/cli.py +71 -104
  4. jolt/config.py +14 -26
  5. jolt/filesystem.py +2 -2
  6. jolt/graph.py +56 -28
  7. jolt/influence.py +67 -2
  8. jolt/loader.py +150 -186
  9. jolt/log.py +12 -2
  10. jolt/manifest.py +0 -46
  11. jolt/options.py +35 -12
  12. jolt/pkgs/abseil.py +42 -0
  13. jolt/pkgs/asio.py +25 -0
  14. jolt/pkgs/autoconf.py +41 -0
  15. jolt/pkgs/automake.py +41 -0
  16. jolt/pkgs/b2.py +31 -0
  17. jolt/pkgs/boost.py +111 -0
  18. jolt/pkgs/boringssl.py +32 -0
  19. jolt/pkgs/busybox.py +39 -0
  20. jolt/pkgs/bzip2.py +43 -0
  21. jolt/pkgs/cares.py +29 -0
  22. jolt/pkgs/catch2.py +36 -0
  23. jolt/pkgs/cbindgen.py +17 -0
  24. jolt/pkgs/cista.py +19 -0
  25. jolt/pkgs/clang.py +44 -0
  26. jolt/pkgs/cli11.py +23 -0
  27. jolt/pkgs/cmake.py +48 -0
  28. jolt/pkgs/cpython.py +196 -0
  29. jolt/pkgs/crun.py +29 -0
  30. jolt/pkgs/curl.py +38 -0
  31. jolt/pkgs/dbus.py +18 -0
  32. jolt/pkgs/double_conversion.py +24 -0
  33. jolt/pkgs/fastfloat.py +21 -0
  34. jolt/pkgs/ffmpeg.py +28 -0
  35. jolt/pkgs/flatbuffers.py +29 -0
  36. jolt/pkgs/fmt.py +27 -0
  37. jolt/pkgs/fstree.py +20 -0
  38. jolt/pkgs/gflags.py +18 -0
  39. jolt/pkgs/glib.py +18 -0
  40. jolt/pkgs/glog.py +25 -0
  41. jolt/pkgs/glslang.py +21 -0
  42. jolt/pkgs/golang.py +16 -11
  43. jolt/pkgs/googlebenchmark.py +18 -0
  44. jolt/pkgs/googletest.py +46 -0
  45. jolt/pkgs/gperf.py +15 -0
  46. jolt/pkgs/grpc.py +73 -0
  47. jolt/pkgs/hdf5.py +19 -0
  48. jolt/pkgs/help2man.py +14 -0
  49. jolt/pkgs/inja.py +28 -0
  50. jolt/pkgs/jsoncpp.py +31 -0
  51. jolt/pkgs/libarchive.py +43 -0
  52. jolt/pkgs/libcap.py +44 -0
  53. jolt/pkgs/libdrm.py +44 -0
  54. jolt/pkgs/libedit.py +42 -0
  55. jolt/pkgs/libevent.py +31 -0
  56. jolt/pkgs/libexpat.py +27 -0
  57. jolt/pkgs/libfastjson.py +21 -0
  58. jolt/pkgs/libffi.py +16 -0
  59. jolt/pkgs/libglvnd.py +30 -0
  60. jolt/pkgs/libogg.py +28 -0
  61. jolt/pkgs/libpciaccess.py +18 -0
  62. jolt/pkgs/libseccomp.py +21 -0
  63. jolt/pkgs/libtirpc.py +24 -0
  64. jolt/pkgs/libtool.py +42 -0
  65. jolt/pkgs/libunwind.py +35 -0
  66. jolt/pkgs/libva.py +18 -0
  67. jolt/pkgs/libvorbis.py +33 -0
  68. jolt/pkgs/libxml2.py +35 -0
  69. jolt/pkgs/libxslt.py +17 -0
  70. jolt/pkgs/libyajl.py +16 -0
  71. jolt/pkgs/llvm.py +81 -0
  72. jolt/pkgs/lua.py +54 -0
  73. jolt/pkgs/lz4.py +26 -0
  74. jolt/pkgs/m4.py +14 -0
  75. jolt/pkgs/make.py +17 -0
  76. jolt/pkgs/mesa.py +81 -0
  77. jolt/pkgs/meson.py +17 -0
  78. jolt/pkgs/mstch.py +28 -0
  79. jolt/pkgs/mysql.py +60 -0
  80. jolt/pkgs/nasm.py +49 -0
  81. jolt/pkgs/ncurses.py +30 -0
  82. jolt/pkgs/ng_log.py +25 -0
  83. jolt/pkgs/ninja.py +45 -0
  84. jolt/pkgs/nlohmann_json.py +25 -0
  85. jolt/pkgs/nodejs.py +19 -11
  86. jolt/pkgs/opencv.py +24 -0
  87. jolt/pkgs/openjdk.py +26 -0
  88. jolt/pkgs/openssl.py +103 -0
  89. jolt/pkgs/paho.py +76 -0
  90. jolt/pkgs/patchelf.py +16 -0
  91. jolt/pkgs/perl.py +42 -0
  92. jolt/pkgs/pkgconfig.py +64 -0
  93. jolt/pkgs/poco.py +39 -0
  94. jolt/pkgs/protobuf.py +77 -0
  95. jolt/pkgs/pugixml.py +27 -0
  96. jolt/pkgs/python.py +19 -0
  97. jolt/pkgs/qt.py +35 -0
  98. jolt/pkgs/rapidjson.py +26 -0
  99. jolt/pkgs/rapidyaml.py +28 -0
  100. jolt/pkgs/re2.py +30 -0
  101. jolt/pkgs/re2c.py +17 -0
  102. jolt/pkgs/readline.py +15 -0
  103. jolt/pkgs/rust.py +41 -0
  104. jolt/pkgs/sdl.py +28 -0
  105. jolt/pkgs/simdjson.py +27 -0
  106. jolt/pkgs/soci.py +46 -0
  107. jolt/pkgs/spdlog.py +29 -0
  108. jolt/pkgs/spirv_llvm.py +21 -0
  109. jolt/pkgs/spirv_tools.py +24 -0
  110. jolt/pkgs/sqlite.py +83 -0
  111. jolt/pkgs/ssl.py +12 -0
  112. jolt/pkgs/texinfo.py +15 -0
  113. jolt/pkgs/tomlplusplus.py +22 -0
  114. jolt/pkgs/wayland.py +26 -0
  115. jolt/pkgs/x11.py +58 -0
  116. jolt/pkgs/xerces_c.py +20 -0
  117. jolt/pkgs/xorg.py +360 -0
  118. jolt/pkgs/xz.py +29 -0
  119. jolt/pkgs/yamlcpp.py +30 -0
  120. jolt/pkgs/zeromq.py +47 -0
  121. jolt/pkgs/zlib.py +69 -0
  122. jolt/pkgs/zstd.py +33 -0
  123. jolt/plugins/autotools.py +66 -0
  124. jolt/plugins/cmake.py +74 -6
  125. jolt/plugins/conan.py +238 -0
  126. jolt/plugins/cxxinfo.py +7 -0
  127. jolt/plugins/docker.py +3 -3
  128. jolt/plugins/environ.py +11 -0
  129. jolt/plugins/fetch.py +141 -0
  130. jolt/plugins/gdb.py +10 -6
  131. jolt/plugins/git.py +60 -11
  132. jolt/plugins/libtool.py +63 -0
  133. jolt/plugins/linux.py +990 -0
  134. jolt/plugins/meson.py +61 -0
  135. jolt/plugins/ninja-compdb.py +11 -7
  136. jolt/plugins/ninja.py +245 -26
  137. jolt/plugins/paths.py +11 -1
  138. jolt/plugins/pkgconfig.py +219 -0
  139. jolt/plugins/podman.py +15 -41
  140. jolt/plugins/python.py +137 -0
  141. jolt/plugins/rust.py +25 -0
  142. jolt/plugins/scheduler.py +18 -14
  143. jolt/plugins/selfdeploy/setup.py +2 -1
  144. jolt/plugins/selfdeploy.py +21 -30
  145. jolt/plugins/strings.py +19 -10
  146. jolt/scheduler.py +428 -138
  147. jolt/tasks.py +159 -7
  148. jolt/tools.py +105 -51
  149. jolt/utils.py +16 -1
  150. jolt/version.py +1 -1
  151. {jolt-0.9.342.dist-info → jolt-0.9.429.dist-info}/METADATA +64 -9
  152. jolt-0.9.429.dist-info/RECORD +207 -0
  153. {jolt-0.9.342.dist-info → jolt-0.9.429.dist-info}/WHEEL +1 -1
  154. jolt/plugins/debian.py +0 -338
  155. jolt/plugins/repo.py +0 -253
  156. jolt-0.9.342.dist-info/RECORD +0 -93
  157. {jolt-0.9.342.dist-info → jolt-0.9.429.dist-info}/entry_points.txt +0 -0
  158. {jolt-0.9.342.dist-info → jolt-0.9.429.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,46 @@
1
+ from jolt import attributes, BooleanParameter, Parameter, Task
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ class GoogleTest(cmake.CMake):
11
+ name = "google/test"
12
+ version = Parameter("1.12.1", help="GoogleTest version.")
13
+ shared = BooleanParameter(False, help="Build shared libraries.")
14
+ requires_git = ["git:url=https://github.com/google/googletest.git,rev=release-{version}"]
15
+ srcdir = "{git[googletest]}"
16
+ options = [
17
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
18
+ ]
19
+
20
+ def publish(self, artifact, tools):
21
+ super().publish(artifact, tools)
22
+ artifact.cxxinfo.incpaths.append("include")
23
+ artifact.cxxinfo.libpaths.append("lib")
24
+ artifact.cxxinfo.libraries.append("gmock")
25
+ artifact.cxxinfo.libraries.append("gtest")
26
+
27
+
28
+ class GTestMain(Task):
29
+ name = "google/test/main"
30
+ extends = "google/test"
31
+
32
+ def publish(self, artifact, tools):
33
+ artifact.cxxinfo.libraries.append("gtest_main")
34
+
35
+
36
+ class GmockMain(Task):
37
+ name = "google/mock/main"
38
+ extends = "google/test"
39
+
40
+ def publish(self, artifact, tools):
41
+ artifact.cxxinfo.libraries.append("gmock_main")
42
+
43
+
44
+ TaskRegistry.get().add_task_class(GoogleTest)
45
+ TaskRegistry.get().add_task_class(GTestMain)
46
+ TaskRegistry.get().add_task_class(GmockMain)
jolt/pkgs/gperf.py ADDED
@@ -0,0 +1,15 @@
1
+ from jolt import attributes
2
+ from jolt.plugins import autotools, fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.common_metadata()
7
+ @attributes.requires("requires_src")
8
+ class GPerf(autotools.Autotools):
9
+ name = "gperf"
10
+ version = "3.3"
11
+ requires_src = ["fetch:alias=src,url=http://ftpmirror.gnu.org/gperf/gperf-{version}.tar.gz"]
12
+ srcdir = "{fetch[src]}/gperf-{version}"
13
+
14
+
15
+ TaskRegistry.get().add_task_class(GPerf)
jolt/pkgs/grpc.py ADDED
@@ -0,0 +1,73 @@
1
+ from jolt import attributes, BooleanParameter, Parameter, Task
2
+ from jolt.pkgs import abseil, cares, cmake, nasm, protobuf, re2, ssl, zlib
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_abseil")
8
+ @attributes.requires("requires_cares")
9
+ @attributes.requires("requires_git")
10
+ @attributes.requires("requires_nasm_{system}")
11
+ @attributes.requires("requires_protobuf")
12
+ @attributes.requires("requires_re2")
13
+ @attributes.requires("requires_ssl")
14
+ @attributes.requires("requires_zlib")
15
+ @attributes.system
16
+ @cmake.requires()
17
+ @cmake.use_ninja()
18
+ class Grpc(cmake.CMake):
19
+ name = "grpc"
20
+ version = Parameter("1.76.0", help="Grpc version.")
21
+ shared = BooleanParameter(False, help="Build shared libraries.")
22
+ generator = "Ninja"
23
+ requires_abseil = ["abseil:shared={shared}"]
24
+ requires_cares = ["c-ares:shared={shared}"]
25
+ requires_git = ["git:url=https://github.com/grpc/grpc.git,path={buildroot}/git_grpc,rev=v{version},submodules=true"]
26
+ requires_nasm_windows = ["nasm"]
27
+ requires_protobuf = ["protobuf:shared={shared}"]
28
+ requires_re2 = ["re2:shared={shared}"]
29
+ requires_ssl = ["virtual/ssl:shared={shared}"]
30
+ requires_zlib = ["zlib"]
31
+ srcdir = "{git[grpc]}"
32
+ options = [
33
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
34
+ "CMAKE_CXX_STANDARD=17",
35
+ "gRPC_ABSL_PROVIDER=package",
36
+ "gRPC_BUILD_TESTS=OFF",
37
+ "gRPC_CARES_PROVIDER=package",
38
+ "gRPC_MSVC_STATIC_RUNTIME=OFF",
39
+ "gRPC_PROTOBUF_PROVIDER=package",
40
+ "gRPC_RE2_PROVIDER=package",
41
+ "gRPC_SSL_PROVIDER=package",
42
+ "gRPC_ZLIB_PROVIDER=package",
43
+ "gRPC_USE_SYSTEMD=OFF",
44
+ ]
45
+
46
+ def publish(self, artifact, tools):
47
+ super().publish(artifact, tools)
48
+ artifact.cxxinfo.crt = "Dynamic"
49
+ artifact.cxxinfo.incpaths.append("include")
50
+ artifact.cxxinfo.libpaths.append("lib")
51
+
52
+
53
+ class GrpcC(Task):
54
+ name = "grpc/c"
55
+ extends = "grpc"
56
+
57
+ def publish(self, artifact, tools):
58
+ artifact.cxxinfo.crt = "Dynamic"
59
+ artifact.cxxinfo.libraries.append("grpc")
60
+
61
+
62
+ class GrpcCXX(Task):
63
+ name = "grpc/c++"
64
+ extends = "grpc"
65
+
66
+ def publish(self, artifact, tools):
67
+ artifact.cxxinfo.crt = "Dynamic"
68
+ artifact.cxxinfo.libraries.append("grpc++")
69
+
70
+
71
+ TaskRegistry.get().add_task_class(Grpc)
72
+ TaskRegistry.get().add_task_class(GrpcC)
73
+ TaskRegistry.get().add_task_class(GrpcCXX)
jolt/pkgs/hdf5.py ADDED
@@ -0,0 +1,19 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import git, cmake
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @cmake.requires()
8
+ class HDF5(cmake.CMake):
9
+ name = "hdf5"
10
+ version = Parameter("2.0.0", help="hdf5 version.")
11
+ requires_git = ["git:url=https://github.com/HDFGroup/hdf5.git,rev={version}"]
12
+ srcdir = "{git[hdf5]}"
13
+ options = [
14
+ "BUILD_SHARED_LIBS=ON",
15
+ "HDF5_BUILD_EXAMPLES=OFF",
16
+ ]
17
+
18
+
19
+ TaskRegistry.get().add_task_class(HDF5)
jolt/pkgs/help2man.py ADDED
@@ -0,0 +1,14 @@
1
+ from jolt import attributes
2
+ from jolt.plugins import autotools, fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_src")
7
+ class Help2Man(autotools.Autotools):
8
+ name = "help2man"
9
+ version = "1.47.17"
10
+ requires_src = ["fetch:alias=src,url=http://ftpmirror.gnu.org/help2man/help2man-{version}.tar.xz"]
11
+ srcdir = "{fetch[src]}/help2man-{version}"
12
+
13
+
14
+ TaskRegistry.get().add_task_class(Help2Man)
jolt/pkgs/inja.py ADDED
@@ -0,0 +1,28 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake, nlohmann_json
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_json")
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class Inja(cmake.CMake):
12
+ name = "inja"
13
+ version = Parameter("3.5.0", help="Inja version.")
14
+ tests = BooleanParameter(False, help="Build tests.")
15
+ requires_git = ["git:url=https://github.com/pantor/inja.git,rev=v{version}"]
16
+ requires_json = ["nlohmann/json"]
17
+ srcdir = "{git[inja]}"
18
+ options = [
19
+ "BUILD_TESTING={tests[ON,OFF]}",
20
+ "INJA_USE_EMBEDDED_JSON=OFF",
21
+ ]
22
+
23
+ def publish(self, artifact, tools):
24
+ super().publish(artifact, tools)
25
+ artifact.cxxinfo.incpaths.append("include")
26
+
27
+
28
+ TaskRegistry.get().add_task_class(Inja)
jolt/pkgs/jsoncpp.py ADDED
@@ -0,0 +1,31 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.system
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class JsonCPP(cmake.CMake):
12
+ name = "jsoncpp"
13
+ version = Parameter("1.9.6", help="JsonCPP version.")
14
+ tests = BooleanParameter(False, help="Build tests.")
15
+ requires_git = ["git:url=https://github.com/open-source-parsers/jsoncpp.git,rev={version}"]
16
+ srcdir = "{git[jsoncpp]}"
17
+ options = [
18
+ "JSONCPP_WITH_TESTS={tests[ON,OFF]}",
19
+ ]
20
+
21
+ def publish(self, artifact, tools):
22
+ super().publish(artifact, tools)
23
+ artifact.cxxinfo.incpaths.append("include")
24
+ artifact.cxxinfo.libpaths.append("lib")
25
+ if self.system == "windows":
26
+ artifact.cxxinfo.libraries.append("jsoncpp_static")
27
+ else:
28
+ artifact.cxxinfo.libraries.append("jsoncpp")
29
+
30
+
31
+ TaskRegistry.get().add_task_class(JsonCPP)
@@ -0,0 +1,43 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.tasks import TaskRegistry
3
+ from jolt.plugins import cmake, git
4
+ from jolt.pkgs import bzip2, libexpat, lz4, openssl, xz, zlib, zstd
5
+
6
+
7
+ @attributes.requires("requires_bzip2")
8
+ @attributes.requires("requires_expat")
9
+ @attributes.requires("requires_lz4")
10
+ @attributes.requires("requires_openssl")
11
+ @attributes.requires("requires_xz")
12
+ @attributes.requires("requires_zlib")
13
+ @attributes.requires("requires_zstd")
14
+ @attributes.requires("requires_git")
15
+ @cmake.requires()
16
+ @cmake.use_ninja()
17
+ class Libarchive(cmake.CMake):
18
+ name = "libarchive"
19
+ version = Parameter("3.8.5", help="libarchive version.")
20
+ shared = BooleanParameter(False, help="Build shared libraries")
21
+ requires_bzip2 = ["libbzip2"]
22
+ requires_git = ["git:url=https://github.com/libarchive/libarchive.git,rev=v{version}"]
23
+ requires_expat = ["libexpat"]
24
+ requires_lz4 = ["lz4"]
25
+ requires_openssl = ["openssl"]
26
+ requires_xz = ["xz"]
27
+ requires_zlib = ["zlib"]
28
+ requires_zstd = ["zstd"]
29
+ srcdir = "{git[libarchive]}"
30
+ options = [
31
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
32
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
33
+ "ENABLE_TEST=OFF",
34
+ ]
35
+
36
+ def publish(self, artifact, tools):
37
+ super().publish(artifact, tools)
38
+ artifact.cxxinfo.incpaths.append("include")
39
+ artifact.cxxinfo.libpaths.append("lib")
40
+ artifact.cxxinfo.libraries.append("archive")
41
+
42
+
43
+ TaskRegistry.get().add_task_class(Libarchive)
jolt/pkgs/libcap.py ADDED
@@ -0,0 +1,44 @@
1
+ from jolt import attributes, Parameter, Task
2
+ from jolt.plugins import fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.common_metadata()
7
+ @attributes.requires("requires_src")
8
+ class Libcap(Task):
9
+ name = "libcap"
10
+ version = Parameter("2.77", help="Libcap version.")
11
+ requires_src = ["git:url=https://git.kernel.org/pub/scm/libs/libcap/libcap.git,rev=libcap-{version}"]
12
+ srcdir = "{git[libcap]}"
13
+
14
+ def run(self, deps, tools):
15
+ self.installdir = tools.builddir("install")
16
+ with tools.cwd(self.srcdir):
17
+ tools.run("make -j {}", tools.cpu_count())
18
+ tools.run("make install DESTDIR={}", self.installdir)
19
+
20
+ # Patch pkgconfig files
21
+ with tools.cwd(self.installdir):
22
+ for pc in tools.glob("lib/pkgconfig/*.pc") + tools.glob("lib64/pkgconfig/*.pc"):
23
+ tools.replace_in_file(
24
+ pc,
25
+ "prefix=/usr",
26
+ "prefix=${{pcfiledir}}/../..",
27
+ )
28
+ tools.replace_in_file(
29
+ pc,
30
+ "libdir=/",
31
+ "libdir=${{prefix}}/"
32
+ )
33
+ tools.replace_in_file(
34
+ pc,
35
+ "includedir=/",
36
+ "includedir=${{prefix}}/"
37
+ )
38
+
39
+ def publish(self, artifact, tools):
40
+ with tools.cwd(self.installdir):
41
+ artifact.collect("*", symlinks=True)
42
+
43
+
44
+ TaskRegistry.get().add_task_class(Libcap)
jolt/pkgs/libdrm.py ADDED
@@ -0,0 +1,44 @@
1
+ from jolt import attributes, Parameter, BooleanParameter
2
+ from jolt.pkgs import libpciaccess, meson
3
+ from jolt.plugins import git, meson
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_{intel[intel,no_intel]}")
9
+ @meson.requires()
10
+ class Libdrm(meson.Meson):
11
+ name = "libdrm"
12
+ version = Parameter("2.4.131", help="Libdrm version.")
13
+
14
+ amdgpu = BooleanParameter(True, help="Enable AMD GPU support.")
15
+ etnaviv = BooleanParameter(True, help="Enable Etnaviv support.")
16
+ exynos = BooleanParameter(True, help="Enable Exynos support.")
17
+ freedreno = BooleanParameter(True, help="Enable Freedreno support.")
18
+ intel = BooleanParameter(True, help="Enable Intel support.")
19
+ nouveau = BooleanParameter(True, help="Enable Nouveau support.")
20
+ omap = BooleanParameter(True, help="Enable OMAP support.")
21
+ radeon = BooleanParameter(True, help="Enable Radeon support.")
22
+ tegra = BooleanParameter(True, help="Enable Tegra support.")
23
+ vc4 = BooleanParameter(True, help="Enable VC4 support.")
24
+ vmwgfx = BooleanParameter(True, help="Enable VMware graphics support.")
25
+
26
+ requires_git = ["git:url=https://gitlab.freedesktop.org/mesa/drm.git,rev=libdrm-{version}"]
27
+ requires_intel = ["libpciaccess"]
28
+ srcdir = "{git[drm]}"
29
+ options = [
30
+ "amdgpu={amdgpu[enabled,disabled]}",
31
+ "etnaviv={etnaviv[enabled,disabled]}",
32
+ "exynos={exynos[enabled,disabled]}",
33
+ "freedreno={freedreno[enabled,disabled]}",
34
+ "intel={intel[enabled,disabled]}",
35
+ "nouveau={nouveau[enabled,disabled]}",
36
+ "omap={omap[enabled,disabled]}",
37
+ "radeon={radeon[enabled,disabled]}",
38
+ "tegra={tegra[enabled,disabled]}",
39
+ "vc4={vc4[enabled,disabled]}",
40
+ "vmwgfx={vmwgfx[enabled,disabled]}",
41
+ ]
42
+
43
+
44
+ TaskRegistry.get().add_task_class(Libdrm)
jolt/pkgs/libedit.py ADDED
@@ -0,0 +1,42 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import ncurses
3
+ from jolt.plugins import git, autotools, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ncurses")
9
+ @autotools.requires()
10
+ @pkgconfig.requires()
11
+ class Libedit(autotools.Autotools):
12
+ name = "libedit"
13
+ version = Parameter("20251016-3.1", help="Libedit version.")
14
+ shared = BooleanParameter(False, help="Build shared libraries.")
15
+ requires_git = ["fetch:alias=src,url=https://thrysoee.dk/editline/libedit-{version}.tar.gz"]
16
+ requires_ncurses = ["ncurses=ncurses:shared=true"] # No pkgconfig module without shared libs
17
+ srcdir = "{fetch[src]}/libedit-{version}"
18
+ options = [
19
+ "--disable-examples",
20
+ "--{shared[with,without]}-shared",
21
+ "--enable-pc-files",
22
+ "--with-pkg-config-libdir=/jolt-prefix/lib/pkgconfig",
23
+ ]
24
+
25
+ def run(self, deps, tools):
26
+ with tools.environ(
27
+ CFLAGS=tools.run("pkg-config --cflags ncurses").strip() + " " + tools.getenv("CFLAGS", ""),
28
+ LDFLAGS=tools.run("pkg-config --libs ncurses").strip() + " " + tools.getenv("LDFLAGS", ""),
29
+ ):
30
+ super().run(deps, tools)
31
+
32
+ def publish(self, artifact, tools):
33
+ super().publish(artifact, tools)
34
+ artifact.cxxinfo.incpaths.append("include")
35
+ artifact.cxxinfo.libpaths.append("lib")
36
+ artifact.cxxinfo.libraries.append("edit")
37
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
38
+ if self.shared:
39
+ artifact.environ.LD_LIBRARY_PATH.append("lib")
40
+
41
+
42
+ TaskRegistry.get().add_task_class(Libedit)
jolt/pkgs/libevent.py ADDED
@@ -0,0 +1,31 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import cmake, openssl
3
+ from jolt.plugins import git, cmake, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ssl")
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ @pkgconfig.requires()
12
+ class LibEvent(cmake.CMake):
13
+ name = "libevent"
14
+ version = Parameter("2.1.12", help="libevent version.")
15
+ options = ["CMAKE_POLICY_VERSION_MINIMUM=3.5"]
16
+ requires_git = ["git:url=https://github.com/libevent/libevent.git,rev=release-{version}-stable"]
17
+ requires_ssl = ["openssl"]
18
+ srcdir = "{git[libevent]}"
19
+
20
+ def publish(self, artifact, tools):
21
+ super().publish(artifact, tools)
22
+ with tools.cwd(artifact.path, "lib/cmake/libevent"):
23
+ for file in tools.glob("*.cmake"):
24
+ tools.replace_in_file(
25
+ file,
26
+ artifact.strings.install_prefix,
27
+ "${{CMAKE_CURRENT_LIST_DIR}}/../../..",
28
+ )
29
+
30
+
31
+ TaskRegistry.get().add_task_class(LibEvent)
jolt/pkgs/libexpat.py ADDED
@@ -0,0 +1,27 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.plugins import cmake, git
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_src")
7
+ @cmake.requires()
8
+ @cmake.use_ninja()
9
+ class Libexpat(cmake.CMake):
10
+ name = "libexpat"
11
+ version = Parameter("2.7.3", help="Expat version.")
12
+ shared = BooleanParameter(False, help="Build shared libraries")
13
+ version_tag = property(lambda self: str(self.version).replace('.', '_'))
14
+ requires_src = ["fetch:alias=src,url=https://github.com/libexpat/libexpat/releases/download/R_{version_tag}/expat-{version}.tar.gz"]
15
+ srcdir = "{fetch[src]}/expat-{version}"
16
+ options = [
17
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
18
+ ]
19
+
20
+ def publish(self, artifact, tools):
21
+ super().publish(artifact, tools)
22
+ artifact.cxxinfo.incpaths.append("include")
23
+ artifact.cxxinfo.libpaths.append("lib")
24
+ artifact.cxxinfo.libraries.append("expat")
25
+
26
+
27
+ TaskRegistry.get().add_task_class(Libexpat)
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import autotools, git, libtool, pkgconfig
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @autotools.requires(libtool=False)
8
+ @libtool.relocate()
9
+ @libtool.requires()
10
+ @pkgconfig.requires()
11
+ @pkgconfig.to_cxxinfo("libfastjson")
12
+ class Libfastjson(autotools.Autotools):
13
+ """ Builds and publishes liblibraries and headers. """
14
+
15
+ name = "libfastjson"
16
+ version = Parameter("1.2304.0", help="Libfastjson version.")
17
+ requires_git = ["git:url=https://github.com/rsyslog/libfastjson.git,rev=v{version}"]
18
+ srcdir = "{git[libfastjson]}"
19
+
20
+
21
+ TaskRegistry.get().add_task_class(Libfastjson)
jolt/pkgs/libffi.py ADDED
@@ -0,0 +1,16 @@
1
+ from jolt import attributes
2
+ from jolt.plugins import autotools, git
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.common_metadata()
7
+ @attributes.requires("requires_src")
8
+ @autotools.requires()
9
+ class Libffi(autotools.Autotools):
10
+ name = "libffi"
11
+ version = "3.5.2"
12
+ requires_src = ["git:clean=true,url=https://github.com/libffi/libffi.git,rev=v{version}"]
13
+ srcdir = "{git[libffi]}"
14
+
15
+
16
+ TaskRegistry.get().add_task_class(Libffi)
jolt/pkgs/libglvnd.py ADDED
@@ -0,0 +1,30 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import x11
3
+ from jolt.tasks import TaskRegistry
4
+ from jolt.plugins import meson, git, pkgconfig
5
+
6
+
7
+ @attributes.arch
8
+ @attributes.requires("requires_git")
9
+ @attributes.requires("requires_glproto")
10
+ @attributes.requires("requires_x11")
11
+ @attributes.requires("requires_xext")
12
+ @meson.requires()
13
+ @pkgconfig.requires()
14
+ class Libglvnd(meson.Meson):
15
+ name = "libglvnd"
16
+ version = Parameter("1.7.0", help="libglvnd version.")
17
+
18
+ requires_git = ["git:url=https://github.com/NVIDIA/libglvnd.git,rev=v{version}"]
19
+ requires_glproto = ["glproto"]
20
+ requires_x11 = ["libx11"]
21
+ requires_xext = ["libxext"]
22
+ srcdir = "{git[libglvnd]}"
23
+
24
+ def publish(self, artifact, tools):
25
+ super().publish(artifact, tools)
26
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
27
+ artifact.environ.LD_LIBRARY_PATH.append("lib/{arch}-linux-gnu")
28
+
29
+
30
+ TaskRegistry.get().add_task_class(Libglvnd)
jolt/pkgs/libogg.py ADDED
@@ -0,0 +1,28 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ class Libogg(cmake.CMake):
11
+ name = "libogg"
12
+ version = Parameter("1.3.6", help="libogg version.")
13
+ shared = BooleanParameter(False, help="Build shared libraries.")
14
+ requires_git = ["git:url=https://github.com/xiph/ogg.git,rev=v{version}"]
15
+ srcdir = "{git[ogg]}"
16
+ options = [
17
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
18
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
19
+ ]
20
+
21
+ def publish(self, artifact, tools):
22
+ super().publish(artifact, tools)
23
+ artifact.cxxinfo.incpaths.append("include")
24
+ artifact.cxxinfo.libpaths.append("lib")
25
+ artifact.cxxinfo.libraries.append("ogg")
26
+
27
+
28
+ TaskRegistry.get().add_task_class(Libogg)
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import meson
3
+ from jolt.plugins import git, meson
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_zlib")
9
+ @meson.requires()
10
+ class Libpciaccess(meson.Meson):
11
+ name = "libpciaccess"
12
+ version = Parameter("0.18.1", help="pciaccess version.")
13
+ requires_git = ["git:url=https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git,rev=libpciaccess-{version}"]
14
+ requires_zlib = ["zlib"]
15
+ srcdir = "{git[libpciaccess]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(Libpciaccess)
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import gperf, libtool
3
+ from jolt.plugins import git, autotools, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_gperf")
9
+ @attributes.requires("requires_libtool")
10
+ @pkgconfig.requires()
11
+ @pkgconfig.to_cxxinfo("libseccomp")
12
+ class Libseccomp(autotools.Autotools):
13
+ name = "libseccomp"
14
+ version = Parameter("2.5.6", help="libseccomp version.")
15
+ requires_git = ["git:url=https://github.com/seccomp/libseccomp.git,rev=v{version}"]
16
+ requires_gperf = ["gperf"]
17
+ requires_libtool = ["libtool"]
18
+ srcdir = "{git[libseccomp]}"
19
+
20
+
21
+ TaskRegistry.get().add_task_class(Libseccomp)
jolt/pkgs/libtirpc.py ADDED
@@ -0,0 +1,24 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import autotools, fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_src")
7
+ @autotools.requires()
8
+ class Libtirpc(autotools.Autotools):
9
+ """Libtirpc package"""
10
+ name = "libtirpc"
11
+
12
+ version = Parameter("1.3.7", help="libtirpc version.")
13
+ requires_src = ["fetch:alias=src,url=https://downloads.sourceforge.net/project/libtirpc/libtirpc/1.3.7/libtirpc-1.3.7.tar.bz2"]
14
+ srcdir = "{fetch[src]}/libtirpc-{version}"
15
+ options = ["--disable-gssapi"]
16
+
17
+ def publish(self, artifact, tools):
18
+ super().publish(artifact, tools)
19
+ artifact.cxxinfo.incpaths.append("include")
20
+ artifact.cxxinfo.libpaths.append("lib")
21
+ artifact.cxxinfo.libraries.append("tirpc")
22
+
23
+
24
+ TaskRegistry.get().add_task_class(Libtirpc)