jolt 0.9.172__py3-none-any.whl → 0.9.435__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 (185) hide show
  1. jolt/__init__.py +80 -7
  2. jolt/__main__.py +9 -1
  3. jolt/bin/fstree-darwin-x86_64 +0 -0
  4. jolt/bin/fstree-linux-x86_64 +0 -0
  5. jolt/cache.py +596 -252
  6. jolt/chroot.py +36 -11
  7. jolt/cli.py +143 -130
  8. jolt/common_pb2.py +45 -45
  9. jolt/config.py +76 -40
  10. jolt/error.py +19 -4
  11. jolt/filesystem.py +2 -6
  12. jolt/graph.py +400 -82
  13. jolt/influence.py +110 -3
  14. jolt/loader.py +338 -174
  15. jolt/log.py +127 -31
  16. jolt/manifest.py +13 -46
  17. jolt/options.py +35 -11
  18. jolt/pkgs/abseil.py +42 -0
  19. jolt/pkgs/asio.py +25 -0
  20. jolt/pkgs/autoconf.py +41 -0
  21. jolt/pkgs/automake.py +41 -0
  22. jolt/pkgs/b2.py +31 -0
  23. jolt/pkgs/boost.py +111 -0
  24. jolt/pkgs/boringssl.py +32 -0
  25. jolt/pkgs/busybox.py +39 -0
  26. jolt/pkgs/bzip2.py +43 -0
  27. jolt/pkgs/cares.py +29 -0
  28. jolt/pkgs/catch2.py +36 -0
  29. jolt/pkgs/cbindgen.py +17 -0
  30. jolt/pkgs/cista.py +19 -0
  31. jolt/pkgs/clang.py +44 -0
  32. jolt/pkgs/cli11.py +24 -0
  33. jolt/pkgs/cmake.py +48 -0
  34. jolt/pkgs/cpython.py +196 -0
  35. jolt/pkgs/crun.py +29 -0
  36. jolt/pkgs/curl.py +38 -0
  37. jolt/pkgs/dbus.py +18 -0
  38. jolt/pkgs/double_conversion.py +24 -0
  39. jolt/pkgs/fastfloat.py +21 -0
  40. jolt/pkgs/ffmpeg.py +28 -0
  41. jolt/pkgs/flatbuffers.py +29 -0
  42. jolt/pkgs/fmt.py +27 -0
  43. jolt/pkgs/fstree.py +20 -0
  44. jolt/pkgs/gflags.py +18 -0
  45. jolt/pkgs/glib.py +18 -0
  46. jolt/pkgs/glog.py +25 -0
  47. jolt/pkgs/glslang.py +21 -0
  48. jolt/pkgs/golang.py +16 -11
  49. jolt/pkgs/googlebenchmark.py +18 -0
  50. jolt/pkgs/googletest.py +46 -0
  51. jolt/pkgs/gperf.py +15 -0
  52. jolt/pkgs/grpc.py +73 -0
  53. jolt/pkgs/hdf5.py +19 -0
  54. jolt/pkgs/help2man.py +14 -0
  55. jolt/pkgs/inja.py +28 -0
  56. jolt/pkgs/jsoncpp.py +31 -0
  57. jolt/pkgs/libarchive.py +43 -0
  58. jolt/pkgs/libcap.py +44 -0
  59. jolt/pkgs/libdrm.py +44 -0
  60. jolt/pkgs/libedit.py +42 -0
  61. jolt/pkgs/libevent.py +31 -0
  62. jolt/pkgs/libexpat.py +27 -0
  63. jolt/pkgs/libfastjson.py +21 -0
  64. jolt/pkgs/libffi.py +16 -0
  65. jolt/pkgs/libglvnd.py +30 -0
  66. jolt/pkgs/libogg.py +28 -0
  67. jolt/pkgs/libpciaccess.py +18 -0
  68. jolt/pkgs/libseccomp.py +21 -0
  69. jolt/pkgs/libtirpc.py +24 -0
  70. jolt/pkgs/libtool.py +42 -0
  71. jolt/pkgs/libunwind.py +35 -0
  72. jolt/pkgs/libva.py +18 -0
  73. jolt/pkgs/libvorbis.py +33 -0
  74. jolt/pkgs/libxml2.py +35 -0
  75. jolt/pkgs/libxslt.py +17 -0
  76. jolt/pkgs/libyajl.py +16 -0
  77. jolt/pkgs/llvm.py +81 -0
  78. jolt/pkgs/lua.py +54 -0
  79. jolt/pkgs/lz4.py +26 -0
  80. jolt/pkgs/m4.py +14 -0
  81. jolt/pkgs/make.py +17 -0
  82. jolt/pkgs/mesa.py +81 -0
  83. jolt/pkgs/meson.py +17 -0
  84. jolt/pkgs/mstch.py +28 -0
  85. jolt/pkgs/mysql.py +60 -0
  86. jolt/pkgs/nasm.py +49 -0
  87. jolt/pkgs/ncurses.py +30 -0
  88. jolt/pkgs/ng_log.py +25 -0
  89. jolt/pkgs/ninja.py +45 -0
  90. jolt/pkgs/nlohmann_json.py +25 -0
  91. jolt/pkgs/nodejs.py +19 -11
  92. jolt/pkgs/opencv.py +24 -0
  93. jolt/pkgs/openjdk.py +26 -0
  94. jolt/pkgs/openssl.py +103 -0
  95. jolt/pkgs/paho.py +76 -0
  96. jolt/pkgs/patchelf.py +16 -0
  97. jolt/pkgs/perl.py +42 -0
  98. jolt/pkgs/pkgconfig.py +64 -0
  99. jolt/pkgs/poco.py +39 -0
  100. jolt/pkgs/protobuf.py +77 -0
  101. jolt/pkgs/pugixml.py +27 -0
  102. jolt/pkgs/python.py +19 -0
  103. jolt/pkgs/qt.py +35 -0
  104. jolt/pkgs/rapidjson.py +26 -0
  105. jolt/pkgs/rapidyaml.py +28 -0
  106. jolt/pkgs/re2.py +30 -0
  107. jolt/pkgs/re2c.py +17 -0
  108. jolt/pkgs/readline.py +15 -0
  109. jolt/pkgs/rust.py +41 -0
  110. jolt/pkgs/sdl.py +28 -0
  111. jolt/pkgs/simdjson.py +27 -0
  112. jolt/pkgs/soci.py +46 -0
  113. jolt/pkgs/spdlog.py +29 -0
  114. jolt/pkgs/spirv_llvm.py +21 -0
  115. jolt/pkgs/spirv_tools.py +24 -0
  116. jolt/pkgs/sqlite.py +83 -0
  117. jolt/pkgs/ssl.py +12 -0
  118. jolt/pkgs/texinfo.py +15 -0
  119. jolt/pkgs/tomlplusplus.py +22 -0
  120. jolt/pkgs/wayland.py +26 -0
  121. jolt/pkgs/x11.py +58 -0
  122. jolt/pkgs/xerces_c.py +20 -0
  123. jolt/pkgs/xorg.py +360 -0
  124. jolt/pkgs/xz.py +29 -0
  125. jolt/pkgs/yamlcpp.py +30 -0
  126. jolt/pkgs/zeromq.py +47 -0
  127. jolt/pkgs/zlib.py +87 -0
  128. jolt/pkgs/zstd.py +33 -0
  129. jolt/plugins/alias.py +3 -0
  130. jolt/plugins/allure.py +2 -2
  131. jolt/plugins/autotools.py +66 -0
  132. jolt/plugins/cache.py +1 -1
  133. jolt/plugins/cmake.py +74 -6
  134. jolt/plugins/conan.py +238 -0
  135. jolt/plugins/cxxinfo.py +7 -0
  136. jolt/plugins/docker.py +76 -19
  137. jolt/plugins/email.xslt +141 -118
  138. jolt/plugins/environ.py +11 -0
  139. jolt/plugins/fetch.py +141 -0
  140. jolt/plugins/gdb.py +33 -14
  141. jolt/plugins/gerrit.py +0 -13
  142. jolt/plugins/git.py +248 -66
  143. jolt/plugins/googletest.py +1 -1
  144. jolt/plugins/http.py +1 -1
  145. jolt/plugins/libtool.py +63 -0
  146. jolt/plugins/linux.py +990 -0
  147. jolt/plugins/logstash.py +4 -4
  148. jolt/plugins/meson.py +61 -0
  149. jolt/plugins/ninja-compdb.py +96 -28
  150. jolt/plugins/ninja.py +424 -150
  151. jolt/plugins/paths.py +11 -1
  152. jolt/plugins/pkgconfig.py +219 -0
  153. jolt/plugins/podman.py +131 -87
  154. jolt/plugins/python.py +137 -0
  155. jolt/plugins/remote_execution/administration_pb2.py +27 -19
  156. jolt/plugins/remote_execution/log_pb2.py +12 -12
  157. jolt/plugins/remote_execution/scheduler_pb2.py +23 -23
  158. jolt/plugins/remote_execution/worker_pb2.py +19 -19
  159. jolt/plugins/report.py +7 -2
  160. jolt/plugins/rust.py +25 -0
  161. jolt/plugins/scheduler.py +135 -86
  162. jolt/plugins/selfdeploy/setup.py +6 -6
  163. jolt/plugins/selfdeploy.py +49 -31
  164. jolt/plugins/strings.py +35 -22
  165. jolt/plugins/symlinks.py +11 -4
  166. jolt/plugins/telemetry.py +1 -2
  167. jolt/plugins/timeline.py +13 -3
  168. jolt/scheduler.py +467 -165
  169. jolt/tasks.py +427 -111
  170. jolt/templates/timeline.html.template +44 -47
  171. jolt/timer.py +22 -0
  172. jolt/tools.py +527 -188
  173. jolt/utils.py +183 -3
  174. jolt/version.py +1 -1
  175. jolt/xmldom.py +12 -2
  176. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/METADATA +97 -41
  177. jolt-0.9.435.dist-info/RECORD +207 -0
  178. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/WHEEL +1 -1
  179. jolt/plugins/amqp.py +0 -855
  180. jolt/plugins/debian.py +0 -338
  181. jolt/plugins/repo.py +0 -253
  182. jolt/plugins/snap.py +0 -122
  183. jolt-0.9.172.dist-info/RECORD +0 -92
  184. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/entry_points.txt +0 -0
  185. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/top_level.txt +0 -0
jolt/pkgs/curl.py ADDED
@@ -0,0 +1,38 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake, ssl
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ssl")
9
+ @attributes.system
10
+ @cmake.requires()
11
+ @cmake.use_ninja()
12
+ class Curl(cmake.CMake):
13
+ name = "curl"
14
+ version = Parameter("8.17.0", help="Curl version.")
15
+ shared = BooleanParameter(False, help="Build shared libraries.")
16
+ requires_git = ["git:url=https://github.com/curl/curl.git,rev=curl-{_version_tag},submodules=true"]
17
+ requires_ssl = ["virtual/ssl"]
18
+ srcdir = "{git[curl]}"
19
+ options = [
20
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
21
+ "CURL_USE_LIBPSL=OFF",
22
+ ]
23
+
24
+ @property
25
+ def _version_tag(self):
26
+ return str(self.version).replace('.', '_')
27
+
28
+ def publish(self, artifact, tools):
29
+ super().publish(artifact, tools)
30
+ artifact.cxxinfo.incpaths.append("include")
31
+ artifact.cxxinfo.libpaths.append("lib")
32
+ if self.system == "windows":
33
+ artifact.cxxinfo.libraries.append("libcurl_imp")
34
+ else:
35
+ artifact.cxxinfo.libraries.append("curl")
36
+
37
+
38
+ TaskRegistry.get().add_task_class(Curl)
jolt/pkgs/dbus.py ADDED
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, 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
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ @pkgconfig.requires()
11
+ class DBus(cmake.CMake):
12
+ name = "dbus"
13
+ version = Parameter("1.16.2", help="DBus version.")
14
+ requires_git = ["git:url=https://gitlab.freedesktop.org/dbus/dbus.git,rev=dbus-{version}"]
15
+ srcdir = "{git[dbus]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(DBus)
@@ -0,0 +1,24 @@
1
+ from jolt import attributes, 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 DoubleConversion(cmake.CMake):
11
+ name = "double-conversion"
12
+ version = Parameter("3.4.0", help="double_conversion version.")
13
+ options = ["BUILD_SHARED_LIBS=ON"]
14
+ requires_git = ["git:url=https://github.com/google/double-conversion.git,rev=v{version}"]
15
+ srcdir = "{git[double-conversion]}"
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("double-conversion")
22
+
23
+
24
+ TaskRegistry.get().add_task_class(DoubleConversion)
jolt/pkgs/fastfloat.py ADDED
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, 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 FastFloat(cmake.CMake):
11
+ name = "fastfloat"
12
+ version = Parameter("8.1.0", help="fastfloat version.")
13
+ requires_git = ["git:url=https://github.com/fastfloat/fast_float.git,rev=v{version}"]
14
+ srcdir = "{git[fast_float]}"
15
+
16
+ def publish(self, artifact, tools):
17
+ super().publish(artifact, tools)
18
+ artifact.cxxinfo.incpaths.append("include")
19
+
20
+
21
+ TaskRegistry.get().add_task_class(FastFloat)
jolt/pkgs/ffmpeg.py ADDED
@@ -0,0 +1,28 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import nasm, pkgconfig, xz, xorg
3
+ from jolt.plugins import git, autotools
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_{system}_libx11")
9
+ @attributes.requires("requires_nasm")
10
+ @attributes.requires("requires_xz")
11
+ @attributes.system
12
+ @autotools.requires()
13
+ class FFmpeg(autotools.Autotools):
14
+ name = "ffmpeg"
15
+ version = Parameter("8.0.1", help="ffmpeg version.")
16
+ shared = BooleanParameter(False, help="Build shared libraries.")
17
+ requires_git = ["git:url=https://github.com/FFmpeg/FFmpeg.git,rev=n{version}"]
18
+ requires_linux_libx11 = ["libx11"]
19
+ requires_nasm = ["nasm"]
20
+ requires_xz = ["xz"]
21
+ srcdir = "{git[FFmpeg]}"
22
+ options = [
23
+ "--{shared[enable,disable]}-shared",
24
+ "--{shared[disable,enable]}-static",
25
+ ]
26
+
27
+
28
+ TaskRegistry.get().add_task_class(FFmpeg)
@@ -0,0 +1,29 @@
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 Flatbuffers(cmake.CMake):
11
+ name = "flatbuffers"
12
+ version = Parameter("25.9.23", help="Flatbuffers version.")
13
+ shared = BooleanParameter(False, help="Build shared libraries.")
14
+ requires_git = ["git:url=https://github.com/google/flatbuffers.git,rev=v{version}"]
15
+ srcdir = "{git[flatbuffers]}"
16
+ options = [
17
+ "FLATBUFFERS_BUILD_FLATLIB={shared[OFF,ON]}",
18
+ "FLATBUFFERS_BUILD_SHAREDLIB={shared[ON,OFF]}",
19
+ "FLATBUFFERS_BUILD_TESTS=OFF",
20
+ ]
21
+
22
+ def publish(self, artifact, tools):
23
+ super().publish(artifact, tools)
24
+ artifact.cxxinfo.incpaths.append("include")
25
+ artifact.cxxinfo.libpaths.append("lib")
26
+ artifact.cxxinfo.libraries.append("flatbuffers")
27
+
28
+
29
+ TaskRegistry.get().add_task_class(Flatbuffers)
jolt/pkgs/fmt.py ADDED
@@ -0,0 +1,27 @@
1
+ from jolt import attributes, BooleanParameter, 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
+ @cmake.use_ninja()
9
+ class Fmt(cmake.CMake):
10
+ name = "fmt"
11
+ version = Parameter("12.1.0", help="Fmt version.")
12
+ shared = BooleanParameter(False, help="Build shared libraries.")
13
+ requires_git = ["git:url=https://github.com/fmtlib/fmt.git,rev={version}"]
14
+ srcdir = "{git[fmt]}"
15
+ options = [
16
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
17
+ "FMT_TEST=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("fmt")
25
+
26
+
27
+ TaskRegistry.get().add_task_class(Fmt)
jolt/pkgs/fstree.py ADDED
@@ -0,0 +1,20 @@
1
+ from jolt import attributes, Parameter, Task
2
+ from jolt.tasks import TaskRegistry
3
+
4
+
5
+ @attributes.system
6
+ class Fstree(Task):
7
+ name = "fstree"
8
+ version = Parameter("24.11.128")
9
+
10
+ def publish(self, artifact, tools):
11
+ self.ext = ".exe" if self.system == "windows" else ""
12
+ with tools.cwd(tools.builddir()):
13
+ tools.mkdir("jolt/bin")
14
+ tools.download("https://github.com/srand/fstree/releases/download/{version}/fstree-{system}-x86_64{ext}", "jolt/bin/fstree-{system}-x86_64{ext}")
15
+ tools.chmod("jolt/bin/fstree-{system}-x86_64{ext}", 0o755)
16
+ artifact.collect("jolt/bin/fstree-{system}-x86_64{ext}", "bin/fstree{ext}")
17
+ artifact.environ.PATH.append("bin")
18
+
19
+
20
+ TaskRegistry.get().add_task_class(Fstree)
jolt/pkgs/gflags.py ADDED
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, 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 GFlags(cmake.CMake):
11
+ name = "gflags"
12
+ version = Parameter("2.3.0", help="gflags version.")
13
+ options = ["BUILD_SHARED_LIBS=ON"]
14
+ requires_git = ["git:url=https://github.com/gflags/gflags.git,rev=v{version}"]
15
+ srcdir = "{git[gflags]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(GFlags)
jolt/pkgs/glib.py ADDED
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import meson, zlib
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 GLib(meson.Meson):
11
+ name = "glib"
12
+ version = Parameter("2.86.3", help="glib version.")
13
+ requires_git = ["git:url=https://gitlab.gnome.org/GNOME/glib.git,rev={version},submodules=true"]
14
+ requires_zlib = ["zlib"]
15
+ srcdir = "{git[glib]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(GLib)
jolt/pkgs/glog.py ADDED
@@ -0,0 +1,25 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import cmake, gflags
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_gflags")
8
+ @attributes.requires("requires_git")
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class Glog(cmake.CMake):
12
+ name = "glog"
13
+ version = Parameter("0.7.1", help="glog version.")
14
+ options = ["BUILD_SHARED_LIBS=ON"]
15
+ requires_gflags = ["gflags"]
16
+ requires_git = ["git:url=https://github.com/google/glog.git,rev=v{version}"]
17
+ srcdir = "{git[glog]}"
18
+ options = ["CMAKE_CXX_STANDARD=14"]
19
+
20
+ def run(self, deps, tools):
21
+ self.warning("GLog is deprecated and unmaintained. Consider using ng-log instead.")
22
+ super().run(deps, tools)
23
+
24
+
25
+ TaskRegistry.get().add_task_class(Glog)
jolt/pkgs/glslang.py ADDED
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, 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 Glslang(cmake.CMake):
11
+ name = "glslang"
12
+ version = Parameter("16.1.0", help="Glslang version.")
13
+ requires_git = ["git:url=https://github.com/KhronosGroup/glslang.git,rev={version}"]
14
+
15
+ def run(self, deps, tools):
16
+ with tools.cwd("{git[glslang]}"):
17
+ tools.run("python3 update_glslang_sources.py")
18
+ super().run(deps, tools)
19
+
20
+
21
+ TaskRegistry.get().add_task_class(Glslang)
jolt/pkgs/golang.py CHANGED
@@ -6,31 +6,36 @@ from jolt.tasks import TaskRegistry
6
6
  import platform
7
7
 
8
8
 
9
+ @jolt_attributes.arch
9
10
  @jolt_attributes.system
10
- @jolt_attributes.attribute("url", "url_{system}")
11
11
  class Golang(Download):
12
12
  name = "golang"
13
- version = Parameter("1.18.3", help="Go version.")
14
- url_linux = "https://go.dev/dl/go{version}.linux-{arch}.tar.gz"
15
- url_windows = "https://go.dev/dl/go{version}.windows-{arch}.zip"
13
+ version = Parameter("1.25.5", help="Go version.")
14
+ url = "https://go.dev/dl/go{version}.{system}-{go_arch}{go_ext}"
16
15
 
17
16
  @property
18
- def arch(self):
19
- arch = platform.machine()
20
- if arch == "x86_64":
17
+ def go_arch(self):
18
+ if self.arch in ["amd64", "x86_64"]:
21
19
  return "amd64"
22
- if arch in ["i386", "i486", "i586", "i686"]:
20
+ if self.arch in ["i386", "i486", "i586", "i686"]:
23
21
  return "i386"
24
- if arch in ["arm", "armv6l", "armv7l"]:
22
+ if self.arch in ["arm", "armv6l", "armv7l"]:
25
23
  return "armv6l"
26
- if arch in ["arm64", "armv8l", "aarch64"]:
24
+ if self.arch in ["arm64", "armv8l", "aarch64"]:
27
25
  return "arm64"
28
26
  return None
29
27
 
28
+ @property
29
+ def go_ext(self):
30
+ if self.system == "windows":
31
+ return ".zip"
32
+ return ".tar.gz"
33
+
30
34
  def publish(self, artifact, tools):
31
35
  super().publish(artifact, tools)
32
- artifact.environ.PATH.append("go/bin")
33
36
  artifact.paths.goroot = "go"
37
+ artifact.environ.GOROOT = str(artifact.paths.goroot)
38
+ artifact.environ.PATH.append("go/bin")
34
39
 
35
40
  def unpack(self, artifact, tools):
36
41
  artifact.environ.GOROOT = str(artifact.paths.goroot)
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.tasks import TaskRegistry
4
+ from jolt.plugins import git, cmake
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ class GoogleBenchmark(cmake.CMake):
11
+ name = "google/benchmark"
12
+ version = Parameter("1.9.4", help="Benchmark version.")
13
+ requires_git = ["git:url=https://github.com/google/benchmark.git,rev=v{version},submodules=true"]
14
+ options = ["BENCHMARK_ENABLE_TESTING=OFF"]
15
+ srcdir = "{git[benchmark]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(GoogleBenchmark)
@@ -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)