jolt 0.9.419__tar.gz → 0.9.429__tar.gz
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.
- {jolt-0.9.419 → jolt-0.9.429}/PKG-INFO +19 -2
- {jolt-0.9.419 → jolt-0.9.429}/jolt/cache.py +19 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/cli.py +3 -2
- {jolt-0.9.419 → jolt-0.9.429}/jolt/filesystem.py +2 -2
- {jolt-0.9.419 → jolt-0.9.429}/jolt/log.py +12 -2
- jolt-0.9.429/jolt/pkgs/abseil.py +42 -0
- jolt-0.9.429/jolt/pkgs/asio.py +25 -0
- jolt-0.9.429/jolt/pkgs/autoconf.py +41 -0
- jolt-0.9.429/jolt/pkgs/automake.py +41 -0
- jolt-0.9.429/jolt/pkgs/b2.py +31 -0
- jolt-0.9.429/jolt/pkgs/boost.py +111 -0
- jolt-0.9.429/jolt/pkgs/boringssl.py +32 -0
- jolt-0.9.429/jolt/pkgs/busybox.py +39 -0
- jolt-0.9.429/jolt/pkgs/bzip2.py +43 -0
- jolt-0.9.429/jolt/pkgs/cares.py +29 -0
- jolt-0.9.429/jolt/pkgs/catch2.py +36 -0
- jolt-0.9.429/jolt/pkgs/cbindgen.py +17 -0
- jolt-0.9.429/jolt/pkgs/cista.py +19 -0
- jolt-0.9.429/jolt/pkgs/clang.py +44 -0
- jolt-0.9.429/jolt/pkgs/cli11.py +23 -0
- jolt-0.9.429/jolt/pkgs/cmake.py +48 -0
- jolt-0.9.429/jolt/pkgs/cpython.py +196 -0
- jolt-0.9.429/jolt/pkgs/crun.py +29 -0
- jolt-0.9.429/jolt/pkgs/curl.py +38 -0
- jolt-0.9.429/jolt/pkgs/dbus.py +18 -0
- jolt-0.9.429/jolt/pkgs/double_conversion.py +24 -0
- jolt-0.9.429/jolt/pkgs/fastfloat.py +21 -0
- jolt-0.9.429/jolt/pkgs/ffmpeg.py +28 -0
- jolt-0.9.429/jolt/pkgs/flatbuffers.py +29 -0
- jolt-0.9.429/jolt/pkgs/fmt.py +27 -0
- jolt-0.9.429/jolt/pkgs/fstree.py +20 -0
- jolt-0.9.429/jolt/pkgs/gflags.py +18 -0
- jolt-0.9.429/jolt/pkgs/glib.py +18 -0
- jolt-0.9.429/jolt/pkgs/glog.py +25 -0
- jolt-0.9.429/jolt/pkgs/glslang.py +21 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/pkgs/golang.py +16 -11
- jolt-0.9.429/jolt/pkgs/googlebenchmark.py +18 -0
- jolt-0.9.429/jolt/pkgs/googletest.py +46 -0
- jolt-0.9.429/jolt/pkgs/gperf.py +15 -0
- jolt-0.9.429/jolt/pkgs/grpc.py +73 -0
- jolt-0.9.429/jolt/pkgs/hdf5.py +19 -0
- jolt-0.9.429/jolt/pkgs/help2man.py +14 -0
- jolt-0.9.429/jolt/pkgs/inja.py +28 -0
- jolt-0.9.429/jolt/pkgs/jsoncpp.py +31 -0
- jolt-0.9.429/jolt/pkgs/libarchive.py +43 -0
- jolt-0.9.429/jolt/pkgs/libcap.py +44 -0
- jolt-0.9.429/jolt/pkgs/libdrm.py +44 -0
- jolt-0.9.429/jolt/pkgs/libedit.py +42 -0
- jolt-0.9.429/jolt/pkgs/libevent.py +31 -0
- jolt-0.9.429/jolt/pkgs/libexpat.py +27 -0
- jolt-0.9.429/jolt/pkgs/libfastjson.py +21 -0
- jolt-0.9.429/jolt/pkgs/libffi.py +16 -0
- jolt-0.9.429/jolt/pkgs/libglvnd.py +30 -0
- jolt-0.9.429/jolt/pkgs/libogg.py +28 -0
- jolt-0.9.429/jolt/pkgs/libpciaccess.py +18 -0
- jolt-0.9.429/jolt/pkgs/libseccomp.py +21 -0
- jolt-0.9.429/jolt/pkgs/libtirpc.py +24 -0
- jolt-0.9.429/jolt/pkgs/libtool.py +42 -0
- jolt-0.9.429/jolt/pkgs/libunwind.py +35 -0
- jolt-0.9.429/jolt/pkgs/libva.py +18 -0
- jolt-0.9.429/jolt/pkgs/libvorbis.py +33 -0
- jolt-0.9.429/jolt/pkgs/libxml2.py +35 -0
- jolt-0.9.429/jolt/pkgs/libxslt.py +17 -0
- jolt-0.9.429/jolt/pkgs/libyajl.py +16 -0
- jolt-0.9.429/jolt/pkgs/llvm.py +81 -0
- jolt-0.9.429/jolt/pkgs/lua.py +54 -0
- jolt-0.9.429/jolt/pkgs/lz4.py +26 -0
- jolt-0.9.429/jolt/pkgs/m4.py +14 -0
- jolt-0.9.429/jolt/pkgs/make.py +17 -0
- jolt-0.9.429/jolt/pkgs/mesa.py +81 -0
- jolt-0.9.429/jolt/pkgs/meson.py +17 -0
- jolt-0.9.429/jolt/pkgs/mstch.py +28 -0
- jolt-0.9.429/jolt/pkgs/mysql.py +60 -0
- jolt-0.9.429/jolt/pkgs/nasm.py +49 -0
- jolt-0.9.429/jolt/pkgs/ncurses.py +30 -0
- jolt-0.9.429/jolt/pkgs/ng_log.py +25 -0
- jolt-0.9.429/jolt/pkgs/ninja.py +45 -0
- jolt-0.9.429/jolt/pkgs/nlohmann_json.py +25 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/pkgs/nodejs.py +19 -11
- jolt-0.9.429/jolt/pkgs/opencv.py +24 -0
- jolt-0.9.429/jolt/pkgs/openjdk.py +26 -0
- jolt-0.9.429/jolt/pkgs/openssl.py +103 -0
- jolt-0.9.429/jolt/pkgs/paho.py +76 -0
- jolt-0.9.429/jolt/pkgs/patchelf.py +16 -0
- jolt-0.9.429/jolt/pkgs/perl.py +42 -0
- jolt-0.9.429/jolt/pkgs/pkgconfig.py +64 -0
- jolt-0.9.429/jolt/pkgs/poco.py +39 -0
- jolt-0.9.429/jolt/pkgs/protobuf.py +77 -0
- jolt-0.9.429/jolt/pkgs/pugixml.py +27 -0
- jolt-0.9.429/jolt/pkgs/python.py +19 -0
- jolt-0.9.429/jolt/pkgs/qt.py +35 -0
- jolt-0.9.429/jolt/pkgs/rapidjson.py +26 -0
- jolt-0.9.429/jolt/pkgs/rapidyaml.py +28 -0
- jolt-0.9.429/jolt/pkgs/re2.py +30 -0
- jolt-0.9.429/jolt/pkgs/re2c.py +17 -0
- jolt-0.9.429/jolt/pkgs/readline.py +15 -0
- jolt-0.9.429/jolt/pkgs/rust.py +41 -0
- jolt-0.9.429/jolt/pkgs/sdl.py +28 -0
- jolt-0.9.429/jolt/pkgs/simdjson.py +27 -0
- jolt-0.9.429/jolt/pkgs/soci.py +46 -0
- jolt-0.9.429/jolt/pkgs/spdlog.py +29 -0
- jolt-0.9.429/jolt/pkgs/spirv_llvm.py +21 -0
- jolt-0.9.429/jolt/pkgs/spirv_tools.py +24 -0
- jolt-0.9.429/jolt/pkgs/sqlite.py +83 -0
- jolt-0.9.429/jolt/pkgs/ssl.py +12 -0
- jolt-0.9.429/jolt/pkgs/texinfo.py +15 -0
- jolt-0.9.429/jolt/pkgs/tomlplusplus.py +22 -0
- jolt-0.9.429/jolt/pkgs/wayland.py +26 -0
- jolt-0.9.429/jolt/pkgs/x11.py +58 -0
- jolt-0.9.429/jolt/pkgs/xerces_c.py +20 -0
- jolt-0.9.429/jolt/pkgs/xorg.py +360 -0
- jolt-0.9.429/jolt/pkgs/xz.py +29 -0
- jolt-0.9.429/jolt/pkgs/yamlcpp.py +30 -0
- jolt-0.9.429/jolt/pkgs/zeromq.py +47 -0
- jolt-0.9.429/jolt/pkgs/zlib.py +69 -0
- jolt-0.9.429/jolt/pkgs/zstd.py +33 -0
- jolt-0.9.429/jolt/plugins/autotools.py +66 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/cmake.py +74 -6
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/cxxinfo.py +7 -0
- jolt-0.9.429/jolt/plugins/fetch.py +141 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/git.py +33 -11
- jolt-0.9.429/jolt/plugins/libtool.py +63 -0
- jolt-0.9.429/jolt/plugins/meson.py +61 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/ninja.py +236 -17
- jolt-0.9.429/jolt/plugins/pkgconfig.py +219 -0
- jolt-0.9.429/jolt/plugins/python.py +237 -0
- jolt-0.9.429/jolt/plugins/rust.py +25 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/tasks.py +71 -3
- {jolt-0.9.419 → jolt-0.9.429}/jolt/tools.py +86 -42
- {jolt-0.9.419 → jolt-0.9.429}/jolt/utils.py +6 -0
- jolt-0.9.429/jolt/version.py +1 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt.egg-info/PKG-INFO +19 -2
- jolt-0.9.429/jolt.egg-info/SOURCES.txt +208 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt.egg-info/requires.txt +18 -1
- {jolt-0.9.419 → jolt-0.9.429}/setup.py +1 -0
- jolt-0.9.419/jolt/plugins/python.py +0 -100
- jolt-0.9.419/jolt/version.py +0 -1
- jolt-0.9.419/jolt.egg-info/SOURCES.txt +0 -93
- {jolt-0.9.419 → jolt-0.9.429}/README.rst +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/__init__.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/__main__.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/bin/fstree-darwin-x86_64 +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/bin/fstree-linux-x86_64 +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/chroot.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/colors.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/common_pb2.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/common_pb2_grpc.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/config.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/error.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/expires.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/graph.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/hooks.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/influence.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/inspection.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/loader.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/manifest.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/options.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/pkgs/__init__.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/__init__.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/alias.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/allure.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/autoweight.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/cache.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/conan.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/cxx.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/dashboard.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/docker.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/email.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/email.xslt +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/environ.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/gdb.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/gerrit.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/golang.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/googletest.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/http.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/junit.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/linux.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/logstash.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/ninja-compdb.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/nodejs.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/paths.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/podman.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/__init__.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/administration_pb2.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/administration_pb2_grpc.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/log_pb2.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/log_pb2_grpc.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/scheduler_pb2.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/scheduler_pb2_grpc.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/worker_pb2.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/remote_execution/worker_pb2_grpc.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/report.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/scheduler.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/selfdeploy.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/strings.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/symlinks.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/telemetry.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/timeline.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/volume.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/yaml-ninja.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/plugins/yamltask.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/scheduler.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/templates/cxxexecutable.cmake.template +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/templates/cxxlibrary.cmake.template +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/templates/export.sh.template +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/templates/timeline.html.template +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/timer.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/version_utils.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt/xmldom.py +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt.egg-info/dependency_links.txt +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt.egg-info/entry_points.txt +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/jolt.egg-info/top_level.txt +0 -0
- {jolt-0.9.419 → jolt-0.9.429}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jolt
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.429
|
|
4
4
|
Summary: A task executor
|
|
5
5
|
Home-page: https://github.com/srand/jolt
|
|
6
6
|
Author: Robert Andersson
|
|
@@ -26,12 +26,15 @@ Requires-Dist: Jinja2==3.1.4
|
|
|
26
26
|
Requires-Dist: MarkupSafe==2.1.5
|
|
27
27
|
Requires-Dist: PyJWT==2.9.0
|
|
28
28
|
Requires-Dist: PyYAML==6.0.2
|
|
29
|
+
Requires-Dist: PyYAML==6.0.2
|
|
30
|
+
Requires-Dist: Pygments==2.18.0
|
|
29
31
|
Requires-Dist: Pygments==2.18.0
|
|
30
32
|
Requires-Dist: SecretStorage==3.3.3
|
|
31
33
|
Requires-Dist: allure-python-commons==2.13.5
|
|
32
34
|
Requires-Dist: attrs==24.2.0
|
|
33
35
|
Requires-Dist: backports.tarfile==1.2.0
|
|
34
36
|
Requires-Dist: bottle==0.12.25
|
|
37
|
+
Requires-Dist: brotli==1.2.0
|
|
35
38
|
Requires-Dist: bz2file==0.98
|
|
36
39
|
Requires-Dist: certifi==2024.8.30
|
|
37
40
|
Requires-Dist: cffi==1.17.1
|
|
@@ -48,6 +51,7 @@ Requires-Dist: grpcio==1.66.1
|
|
|
48
51
|
Requires-Dist: idna==3.10
|
|
49
52
|
Requires-Dist: importlib_metadata==8.5.0
|
|
50
53
|
Requires-Dist: importlib_metadata==8.5.0
|
|
54
|
+
Requires-Dist: inflate64==1.0.4
|
|
51
55
|
Requires-Dist: jaraco.classes==3.4.0
|
|
52
56
|
Requires-Dist: jaraco.context==6.0.1
|
|
53
57
|
Requires-Dist: jaraco.functools==4.0.2
|
|
@@ -55,30 +59,43 @@ Requires-Dist: jeepney==0.8.0
|
|
|
55
59
|
Requires-Dist: keyring==25.4.1
|
|
56
60
|
Requires-Dist: keyrings.alt==5.0.2
|
|
57
61
|
Requires-Dist: lxml==5.3.0
|
|
62
|
+
Requires-Dist: markdown-it-py==3.0.0
|
|
58
63
|
Requires-Dist: mccabe==0.7.0
|
|
59
64
|
Requires-Dist: more-itertools==10.5.0
|
|
60
65
|
Requires-Dist: more-itertools==10.5.0
|
|
61
66
|
Requires-Dist: multi_key_dict==2.0.3
|
|
67
|
+
Requires-Dist: multivolumefile==0.2.3
|
|
62
68
|
Requires-Dist: nh3==0.2.19
|
|
63
69
|
Requires-Dist: ninja==1.11.1.1
|
|
64
70
|
Requires-Dist: packaging==24.2
|
|
65
71
|
Requires-Dist: patch-ng==1.18.1
|
|
66
72
|
Requires-Dist: pip==25.3
|
|
73
|
+
Requires-Dist: pkginfo==1.12.0
|
|
67
74
|
Requires-Dist: pluggy==1.5.0
|
|
68
75
|
Requires-Dist: pluginbase==1.0.1
|
|
69
76
|
Requires-Dist: protobuf==5.28.2
|
|
70
77
|
Requires-Dist: psutil==6.0.0
|
|
78
|
+
Requires-Dist: py7zr==1.0.0
|
|
79
|
+
Requires-Dist: pybcj==1.0.6
|
|
71
80
|
Requires-Dist: pycodestyle==2.12.1
|
|
72
81
|
Requires-Dist: pycparser==2.22
|
|
82
|
+
Requires-Dist: pycryptodomex==3.23.0
|
|
73
83
|
Requires-Dist: pyflakes==3.2.0
|
|
74
84
|
Requires-Dist: pygit2==1.15.1
|
|
85
|
+
Requires-Dist: pyppmd==1.2.0
|
|
75
86
|
Requires-Dist: python-dateutil==2.9.0.post0
|
|
87
|
+
Requires-Dist: pyzstd==0.18.0
|
|
76
88
|
Requires-Dist: readme_renderer==44.0
|
|
89
|
+
Requires-Dist: requests-toolbelt==1.0.0
|
|
77
90
|
Requires-Dist: requests==2.32.3
|
|
91
|
+
Requires-Dist: rfc3986==2.0.0
|
|
92
|
+
Requires-Dist: rich==13.9.4
|
|
78
93
|
Requires-Dist: setuptools==80.9.0
|
|
79
94
|
Requires-Dist: six==1.16.0
|
|
95
|
+
Requires-Dist: texttable==1.7.0
|
|
80
96
|
Requires-Dist: tqdm==4.66.5
|
|
81
|
-
Requires-Dist:
|
|
97
|
+
Requires-Dist: twine==6.0.1
|
|
98
|
+
Requires-Dist: typing_extensions==4.15.0
|
|
82
99
|
Requires-Dist: urllib3==1.26.20
|
|
83
100
|
Requires-Dist: wheel==0.45.1
|
|
84
101
|
Requires-Dist: zipp==3.20.2
|
|
@@ -214,6 +214,9 @@ class ArtifactListAttribute(ArtifactAttribute):
|
|
|
214
214
|
def count(self):
|
|
215
215
|
return len(self.items())
|
|
216
216
|
|
|
217
|
+
def __str__(self) -> str:
|
|
218
|
+
return fs.pathsep.join(str(v) for v in self._value)
|
|
219
|
+
|
|
217
220
|
|
|
218
221
|
class ArtifactFileAttribute(object):
|
|
219
222
|
""" An attribute that stores a list of source and destination path tuples for files collected into the artifact. """
|
|
@@ -285,6 +288,22 @@ class ArtifactAttributeSet(object):
|
|
|
285
288
|
""" Get a dictionary representation of the attribute set. """
|
|
286
289
|
return {key: str(value) for key, value in self.items()}
|
|
287
290
|
|
|
291
|
+
def __iter__(self):
|
|
292
|
+
""" Iterate over the attribute set. """
|
|
293
|
+
return iter(self.items())
|
|
294
|
+
|
|
295
|
+
def get(self, name, default=None):
|
|
296
|
+
""" Get an attribute by name.
|
|
297
|
+
|
|
298
|
+
Args:
|
|
299
|
+
name (str): The name of the attribute.
|
|
300
|
+
|
|
301
|
+
Returns:
|
|
302
|
+
The attribute object, or None if it does not exist.
|
|
303
|
+
"""
|
|
304
|
+
attributes = self._get_attributes()
|
|
305
|
+
return attributes.get(name, default)
|
|
306
|
+
|
|
288
307
|
def items(self):
|
|
289
308
|
""" Get a list of tuples containing the attribute name and value. """
|
|
290
309
|
return self._get_attributes().items()
|
|
@@ -91,6 +91,7 @@ class PluginGroup(click.Group):
|
|
|
91
91
|
help="Add salt as task influence.")
|
|
92
92
|
@click.option("-g", "--debug", is_flag=True, default=False, hidden=True,
|
|
93
93
|
help="Start debug shell before executing task.")
|
|
94
|
+
@click.option("-m", "--mute", is_flag=True, help="Display task log only if it fails.")
|
|
94
95
|
@click.option("-n", "--network", is_flag=True, default=False, hidden=True,
|
|
95
96
|
help="Build on network.")
|
|
96
97
|
@click.option("-l", "--local", is_flag=True, default=False, hidden=True,
|
|
@@ -102,7 +103,7 @@ class PluginGroup(click.Group):
|
|
|
102
103
|
@click.option("-h", "--help", is_flag=True, help="Show this message and exit.")
|
|
103
104
|
@click.pass_context
|
|
104
105
|
def cli(ctx, verbose, config_file, debugger, profile,
|
|
105
|
-
force, salt, debug, network, local, keep_going, jobs, help, machine_interface, chdir):
|
|
106
|
+
force, salt, debug, mute, network, local, keep_going, jobs, help, machine_interface, chdir):
|
|
106
107
|
"""
|
|
107
108
|
A task execution tool.
|
|
108
109
|
|
|
@@ -171,7 +172,7 @@ def cli(ctx, verbose, config_file, debugger, profile,
|
|
|
171
172
|
task = config.get("jolt", "default", "default")
|
|
172
173
|
taskname, _ = utils.parse_task_name(task)
|
|
173
174
|
if registry.get_task_class(taskname) is not None:
|
|
174
|
-
ctx.invoke(build, task=[task], force=force, salt=salt, debug=debug,
|
|
175
|
+
ctx.invoke(build, task=[task], force=force, salt=salt, debug=debug, mute=mute,
|
|
175
176
|
network=network, local=local, keep_going=keep_going, jobs=jobs)
|
|
176
177
|
else:
|
|
177
178
|
print(cli.get_help(ctx))
|
|
@@ -88,10 +88,10 @@ def move(src, dst):
|
|
|
88
88
|
|
|
89
89
|
def onerror_warning(func, path, exc_info):
|
|
90
90
|
from jolt import log
|
|
91
|
-
if
|
|
91
|
+
if hasattr(exc_info[1], "strerror"):
|
|
92
92
|
msg = exc_info[1].strerror
|
|
93
93
|
else:
|
|
94
|
-
msg = "Reason unknown"
|
|
94
|
+
msg = "Reason unknown: " + str(exc_info[1])
|
|
95
95
|
if os.path.exists(path):
|
|
96
96
|
log.warning("Could not remove file or directory: {} ({})", path, msg)
|
|
97
97
|
|
|
@@ -364,6 +364,9 @@ class _Progress(object):
|
|
|
364
364
|
def reset(self, *args, **kwargs):
|
|
365
365
|
pass
|
|
366
366
|
|
|
367
|
+
def set_description(self, *args, **kwargs):
|
|
368
|
+
pass
|
|
369
|
+
|
|
367
370
|
|
|
368
371
|
def progress_log(desc, count, unit):
|
|
369
372
|
return _Progress(desc)
|
|
@@ -376,8 +379,15 @@ def progress(desc, count, unit, estimates=True, debug=False):
|
|
|
376
379
|
else:
|
|
377
380
|
bar_format = '{desc}{n_fmt}{unit} [{elapsed}]'
|
|
378
381
|
if not debug and is_interactive() and not is_verbose():
|
|
379
|
-
|
|
380
|
-
|
|
382
|
+
class ProgressTqdm(tqdm.tqdm):
|
|
383
|
+
def __init__(self, *args, **kwargs):
|
|
384
|
+
super(ProgressTqdm, self).__init__(*args, **kwargs)
|
|
385
|
+
|
|
386
|
+
def set_description(self, desc=None, refresh=True):
|
|
387
|
+
return super().set_description("[ INFO] " + desc, refresh)
|
|
388
|
+
|
|
389
|
+
p = ProgressTqdm(total=count, unit=unit, unit_scale=True, bar_format=bar_format, dynamic_ncols=True)
|
|
390
|
+
p.set_description(desc)
|
|
381
391
|
return p
|
|
382
392
|
return progress_log(desc, count, unit)
|
|
383
393
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from jolt import attributes, BooleanParameter, Parameter, Task
|
|
2
|
+
from jolt.plugins import cmake, git
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
import os
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@attributes.requires("requires_git")
|
|
8
|
+
@attributes.system
|
|
9
|
+
@cmake.requires()
|
|
10
|
+
@cmake.use_ninja()
|
|
11
|
+
class Abseil(cmake.CMake):
|
|
12
|
+
""" Abseil C++ Common Libraries """
|
|
13
|
+
|
|
14
|
+
name = "abseil"
|
|
15
|
+
version = Parameter("20250814.1")
|
|
16
|
+
shared = BooleanParameter(False, help="Build shared libraries")
|
|
17
|
+
requires_git = ["git:url=https://github.com/abseil/abseil-cpp.git,rev={version}"]
|
|
18
|
+
srcdir = "{git[abseil-cpp]}"
|
|
19
|
+
options = [
|
|
20
|
+
"ABSL_MSVC_STATIC_RUNTIME=OFF",
|
|
21
|
+
"BUILD_SHARED_LIBS={shared[ON,OFF]}",
|
|
22
|
+
"CMAKE_CXX_STANDARD=17",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
def publish(self, artifact, tools):
|
|
26
|
+
super().publish(artifact, tools)
|
|
27
|
+
artifact.cxxinfo.crt = "Dynamic"
|
|
28
|
+
artifact.cxxinfo.incpaths.append("include")
|
|
29
|
+
artifact.cxxinfo.libpaths.append("lib")
|
|
30
|
+
if self.shared:
|
|
31
|
+
artifact.environ.LD_LIBRARY_PATH.append("lib")
|
|
32
|
+
|
|
33
|
+
with tools.cwd(artifact.path, "lib"):
|
|
34
|
+
for libfile in tools.glob("*.lib"):
|
|
35
|
+
libname, _ = os.path.splitext(libfile)
|
|
36
|
+
artifact.cxxinfo.libraries.append(libname)
|
|
37
|
+
for libfile in tools.glob("lib*.a"):
|
|
38
|
+
libname, _ = os.path.splitext(libfile)
|
|
39
|
+
artifact.cxxinfo.libraries.append(libname[3:])
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
TaskRegistry.get().add_task_class(Abseil)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from jolt import attributes, Parameter
|
|
2
|
+
from jolt.plugins import cmake, git, autotools, pkgconfig
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_git")
|
|
7
|
+
@autotools.requires()
|
|
8
|
+
@pkgconfig.requires()
|
|
9
|
+
@pkgconfig.to_cxxinfo("asio")
|
|
10
|
+
class Asio(autotools.Autotools):
|
|
11
|
+
name = "asio"
|
|
12
|
+
version = Parameter("1.36.0", help="asio version.")
|
|
13
|
+
requires_git = ["git:url=https://github.com/chriskohlhoff/asio.git,rev=asio-{_version}"]
|
|
14
|
+
srcdir = "{git[asio]}/asio"
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def _version(self):
|
|
18
|
+
return str(self.version).replace(".", "-")
|
|
19
|
+
|
|
20
|
+
def publish(self, artifact, tools):
|
|
21
|
+
super().publish(artifact, tools)
|
|
22
|
+
artifact.environ.CMAKE_PREFIX_PATH.append(".")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
TaskRegistry.get().add_task_class(Asio)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from jolt import attributes, Parameter
|
|
2
|
+
from jolt.pkgs import help2man, m4, texinfo
|
|
3
|
+
from jolt.plugins import git, autotools
|
|
4
|
+
from jolt.tasks import TaskRegistry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@attributes.requires("requires_git")
|
|
8
|
+
@attributes.requires("requires_help2man")
|
|
9
|
+
@attributes.requires("requires_m4")
|
|
10
|
+
@attributes.requires("requires_texinfo")
|
|
11
|
+
class Autoconf(autotools.Autotools):
|
|
12
|
+
name = "autoconf"
|
|
13
|
+
version = Parameter("2.72", help="Autoconf version.")
|
|
14
|
+
requires_git = ["fetch:alias=src,url=https://ftpmirror.gnu.org/gnu/autoconf/autoconf-{version}.tar.gz"]
|
|
15
|
+
requires_help2man = ["help2man"]
|
|
16
|
+
requires_m4 = ["m4"]
|
|
17
|
+
requires_texinfo = ["texinfo"]
|
|
18
|
+
srcdir = "{fetch[src]}/autoconf-{version}"
|
|
19
|
+
|
|
20
|
+
def publish(self, artifact, tools):
|
|
21
|
+
super().publish(artifact, tools)
|
|
22
|
+
self.unpack(artifact, tools)
|
|
23
|
+
|
|
24
|
+
def unpack(self, artifact, tools):
|
|
25
|
+
with tools.cwd(artifact.path, "bin"):
|
|
26
|
+
for file in tools.glob("*"):
|
|
27
|
+
tools.replace_in_file(
|
|
28
|
+
file,
|
|
29
|
+
artifact.strings.install_prefix,
|
|
30
|
+
artifact.final_path)
|
|
31
|
+
|
|
32
|
+
with tools.cwd(artifact.path, "share/autoconf"):
|
|
33
|
+
tools.replace_in_file(
|
|
34
|
+
"autom4te.cfg",
|
|
35
|
+
artifact.strings.install_prefix,
|
|
36
|
+
artifact.final_path)
|
|
37
|
+
|
|
38
|
+
artifact.strings.install_prefix = artifact.final_path
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
TaskRegistry.get().add_task_class(Autoconf)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from jolt import attributes, Parameter, Task
|
|
2
|
+
from jolt.plugins import git, autotools
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_git")
|
|
7
|
+
@attributes.requires("requires_texinfo")
|
|
8
|
+
@autotools.requires(automake=False, libtool=False)
|
|
9
|
+
class Automake(autotools.Autotools):
|
|
10
|
+
name = "automake"
|
|
11
|
+
version = Parameter("1.18.1", help="Automake version.")
|
|
12
|
+
requires_git = ["fetch:alias=src,url=https://ftpmirror.gnu.org/gnu/automake/automake-{version}.tar.xz"]
|
|
13
|
+
requires_texinfo = ["texinfo"]
|
|
14
|
+
srcdir = "{fetch[src]}/automake-{version}"
|
|
15
|
+
|
|
16
|
+
def publish(self, artifact, tools):
|
|
17
|
+
super().publish(artifact, tools)
|
|
18
|
+
self.unpack(artifact, tools)
|
|
19
|
+
|
|
20
|
+
def unpack(self, artifact, tools):
|
|
21
|
+
with tools.cwd(artifact.path, "bin"):
|
|
22
|
+
for file in tools.glob("*"):
|
|
23
|
+
tools.replace_in_file(
|
|
24
|
+
file,
|
|
25
|
+
artifact.strings.install_prefix,
|
|
26
|
+
artifact.final_path)
|
|
27
|
+
|
|
28
|
+
for file in tools.glob(artifact.path + "/share/automake-*/Automake/Config.pm"):
|
|
29
|
+
tools.replace_in_file(
|
|
30
|
+
file,
|
|
31
|
+
artifact.strings.install_prefix,
|
|
32
|
+
artifact.final_path)
|
|
33
|
+
|
|
34
|
+
with tools.cwd(artifact.path):
|
|
35
|
+
for file in tools.glob("share/aclocal-*"):
|
|
36
|
+
artifact.environ.ACLOCAL_PATH.append(file)
|
|
37
|
+
|
|
38
|
+
artifact.strings.install_prefix = artifact.final_path
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
TaskRegistry.get().add_task_class(Automake)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from jolt import attributes, Parameter
|
|
3
|
+
from jolt.plugins import git
|
|
4
|
+
from jolt.tasks import Task, TaskRegistry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@attributes.common_metadata()
|
|
8
|
+
@attributes.requires("requires_git")
|
|
9
|
+
@attributes.system
|
|
10
|
+
class B2(Task):
|
|
11
|
+
name = "b2"
|
|
12
|
+
version = Parameter("5.4.2", help="B2 version.")
|
|
13
|
+
requires_git = ["git:url=https://github.com/bfgroup/b2.git"]
|
|
14
|
+
|
|
15
|
+
def run(self, artifact, tools):
|
|
16
|
+
self.builddir = tools.builddir("build", incremental=True)
|
|
17
|
+
self.installdir = tools.builddir("install")
|
|
18
|
+
with tools.cwd("{git[b2]}"):
|
|
19
|
+
if self.system == "windows":
|
|
20
|
+
tools.run(".\\bootstrap.bat")
|
|
21
|
+
tools.run(".\\b2 install --prefix={installdir} --build-dir={builddir} -j{}", tools.cpu_count())
|
|
22
|
+
else:
|
|
23
|
+
tools.run("./bootstrap.sh")
|
|
24
|
+
tools.run("./b2 install --prefix={installdir} --build-dir={builddir} -j{}", tools.cpu_count())
|
|
25
|
+
|
|
26
|
+
def publish(self, artifact, tools):
|
|
27
|
+
with tools.cwd(self.installdir):
|
|
28
|
+
artifact.collect("*", symlinks=True)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
TaskRegistry.get().add_task_class(B2)
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from jolt import attributes, Alias, BooleanParameter, Download, IntParameter, Parameter
|
|
3
|
+
from jolt.pkgs import cpython
|
|
4
|
+
from jolt.plugins import git
|
|
5
|
+
from jolt.tasks import Task, TaskRegistry
|
|
6
|
+
from jolt.error import raise_task_error_if
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@attributes.common_metadata()
|
|
10
|
+
@attributes.requires("requires_git")
|
|
11
|
+
@attributes.requires("requires_python_{python[on,off]}")
|
|
12
|
+
@attributes.system
|
|
13
|
+
class Boost(Task):
|
|
14
|
+
name = "boost"
|
|
15
|
+
version = Parameter("1.90.0", help="Boost version.")
|
|
16
|
+
shared = BooleanParameter(False, help="Build shared libraries")
|
|
17
|
+
python = BooleanParameter(False, help="Build Boost.Python")
|
|
18
|
+
bits = IntParameter(64, values=[32, 64], help="Boost address-model")
|
|
19
|
+
requires_git = ["git:url=https://github.com/boostorg/boost.git,path={buildroot}/git-boost,rev=boost-{version},submodules=true"]
|
|
20
|
+
requires_python_on = ["cpython"]
|
|
21
|
+
|
|
22
|
+
def write_user_config(self, deps, tools):
|
|
23
|
+
content = ""
|
|
24
|
+
|
|
25
|
+
if self.python:
|
|
26
|
+
py_exe = tools.which("python3")
|
|
27
|
+
raise_task_error_if(
|
|
28
|
+
py_exe is None, self,
|
|
29
|
+
"Boost.Python requested, but no Python interpreter found in PATH.",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Find the dependency where the Python interpreter is located
|
|
33
|
+
py_dep = None
|
|
34
|
+
py_prefix = os.path.dirname(os.path.dirname(py_exe))
|
|
35
|
+
for _, dep in deps.items():
|
|
36
|
+
if dep.path == py_prefix:
|
|
37
|
+
py_dep = dep
|
|
38
|
+
break
|
|
39
|
+
|
|
40
|
+
raise_task_error_if(
|
|
41
|
+
py_dep is None, self,
|
|
42
|
+
"Boost.Python requested, but the Python dependency could not be found.",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
py_version = str(py_dep.strings.version_major)
|
|
46
|
+
content += f"using python : {py_version} : {py_prefix}/bin/python{py_version} : {py_prefix}/include/python{py_version} : {py_prefix}/lib ;\n"
|
|
47
|
+
|
|
48
|
+
tools.write_file(
|
|
49
|
+
self.userconfigfile,
|
|
50
|
+
content,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
def clean(self, tools):
|
|
54
|
+
self.builddir = tools.builddir("build", incremental=True)
|
|
55
|
+
self.installdir = tools.builddir("install")
|
|
56
|
+
tools.rmtree(self.builddir)
|
|
57
|
+
tools.rmtree(self.installdir)
|
|
58
|
+
|
|
59
|
+
def run(self, deps, tools):
|
|
60
|
+
self.builddir = tools.builddir("build", incremental=True)
|
|
61
|
+
self.installdir = tools.builddir("install")
|
|
62
|
+
self.userconfigfile = tools.expand_path("{builddir}/user-config.jam")
|
|
63
|
+
self.write_user_config(deps, tools)
|
|
64
|
+
|
|
65
|
+
without_libs = []
|
|
66
|
+
if not self.python:
|
|
67
|
+
without_libs.append("python")
|
|
68
|
+
|
|
69
|
+
bootstrap_cmd = []
|
|
70
|
+
if without_libs:
|
|
71
|
+
bootstrap_cmd = ["--without-libraries={}".format(",".join(without_libs))]
|
|
72
|
+
|
|
73
|
+
b2_cmd = [
|
|
74
|
+
"install",
|
|
75
|
+
"address-model={bits}",
|
|
76
|
+
"link={shared[shared,static]}",
|
|
77
|
+
"--prefix={installdir}",
|
|
78
|
+
"--build-dir={builddir}",
|
|
79
|
+
"--user-config={userconfigfile}",
|
|
80
|
+
"-j{}".format(tools.cpu_count()),
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
with tools.cwd("{git[boost]}"):
|
|
84
|
+
if self.system == "windows":
|
|
85
|
+
bootstrap_cmd = [".\\bootstrap.bat", "msvc"] + bootstrap_cmd
|
|
86
|
+
b2_cmd = [".\\b2"] + b2_cmd
|
|
87
|
+
else:
|
|
88
|
+
bootstrap_cmd = ["./bootstrap.sh"] + bootstrap_cmd
|
|
89
|
+
b2_cmd = ["./b2"] + b2_cmd
|
|
90
|
+
|
|
91
|
+
tools.run(" ".join(bootstrap_cmd))
|
|
92
|
+
tools.run(" ".join(b2_cmd))
|
|
93
|
+
|
|
94
|
+
def publish(self, artifact, tools):
|
|
95
|
+
with tools.cwd(self.installdir):
|
|
96
|
+
artifact.collect("*", symlinks=True)
|
|
97
|
+
artifact.cxxinfo.incpaths.append("include")
|
|
98
|
+
artifact.cxxinfo.libpaths.append("lib")
|
|
99
|
+
|
|
100
|
+
with tools.cwd(self.installdir, "lib"):
|
|
101
|
+
for lib in tools.glob("libboost_*.a"):
|
|
102
|
+
name, _ = os.path.splitext(os.path.basename(lib))
|
|
103
|
+
artifact.cxxinfo.libraries.append(name[3:])
|
|
104
|
+
|
|
105
|
+
arch = tools.getenv("VSCMD_ARG_TGT_ARCH", "x64")
|
|
106
|
+
for lib in tools.glob(f"lib*-mt-{arch}-*.lib"):
|
|
107
|
+
name, _ = os.path.splitext(lib)
|
|
108
|
+
artifact.cxxinfo.libraries.append(name)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
TaskRegistry.get().add_task_class(Boost)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from jolt import attributes, BooleanParameter, Parameter
|
|
2
|
+
from jolt.pkgs import nasm
|
|
3
|
+
from jolt.plugins import cmake, git
|
|
4
|
+
from jolt.tasks import TaskRegistry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@attributes.requires("requires_git")
|
|
8
|
+
@attributes.requires("requires_nasm_{system}")
|
|
9
|
+
@attributes.common_metadata()
|
|
10
|
+
@attributes.system
|
|
11
|
+
@cmake.requires()
|
|
12
|
+
@cmake.use_ninja()
|
|
13
|
+
class BoringSSL(cmake.CMake):
|
|
14
|
+
name = "boringssl"
|
|
15
|
+
version = Parameter("0.20251124.0", help="boringssl version.")
|
|
16
|
+
shared = BooleanParameter(False, help="Build shared libraries.")
|
|
17
|
+
requires_git = ["git:url=https://github.com/google/boringssl.git,rev={version}"]
|
|
18
|
+
requires_nasm_windows = ["nasm"]
|
|
19
|
+
srcdir = "{git[boringssl]}"
|
|
20
|
+
options = [
|
|
21
|
+
"BUILD_SHARED_LIBS={shared[ON,OFF]}",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
def publish(self, artifact, tools):
|
|
25
|
+
super().publish(artifact, tools)
|
|
26
|
+
artifact.cxxinfo.incpaths.append("include")
|
|
27
|
+
artifact.cxxinfo.libpaths.append("lib")
|
|
28
|
+
artifact.cxxinfo.libraries.append("ssl")
|
|
29
|
+
artifact.cxxinfo.libraries.append("crypto")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
TaskRegistry.get().add_task_class(BoringSSL)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from jolt import attributes, influence, Parameter, Task
|
|
2
|
+
from jolt.plugins import git
|
|
3
|
+
from jolt.tasks import TaskRegistry
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_git")
|
|
7
|
+
class BusyBox(Task):
|
|
8
|
+
name = "busybox"
|
|
9
|
+
defconfig = Parameter(required=False, help="BusyBox defconfig file.")
|
|
10
|
+
version = Parameter("1.37.0", help="BusyBox version.")
|
|
11
|
+
requires_git = ["git:url=git://busybox.net/busybox.git,rev={version_tag}"]
|
|
12
|
+
srcdir = "{git[busybox]}"
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def version_tag(self):
|
|
16
|
+
return str(self.version).replace(".", "_")
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def defconfig_arg(self):
|
|
20
|
+
if self.defconfig:
|
|
21
|
+
return f"{self.defconfig}_defconfig"
|
|
22
|
+
return "defconfig"
|
|
23
|
+
|
|
24
|
+
def run(self, deps, tools):
|
|
25
|
+
self.outdir = tools.builddir()
|
|
26
|
+
self.installdir = tools.builddir("install")
|
|
27
|
+
|
|
28
|
+
with tools.cwd(self.srcdir):
|
|
29
|
+
tools.run("make O={outdir} {defconfig_arg}")
|
|
30
|
+
tools.run("make O={outdir} -j{}", tools.cpu_count())
|
|
31
|
+
tools.run("make O={outdir} install DESTDIR={installdir}")
|
|
32
|
+
|
|
33
|
+
def publish(self, artifact, tools):
|
|
34
|
+
artifact.environ.PATH.append("bin")
|
|
35
|
+
with tools.cwd(self.installdir):
|
|
36
|
+
artifact.collect("*", symlinks=True)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
TaskRegistry.get().add_task_class(BusyBox)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from jolt import attributes, BooleanParameter, Parameter
|
|
2
|
+
from jolt.tasks import TaskRegistry
|
|
3
|
+
from jolt.plugins import fetch, ninja
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@attributes.requires("requires_src")
|
|
7
|
+
@attributes.system
|
|
8
|
+
@ninja.attributes.cflags("cflags_linux_pic_{pic[on,off]}")
|
|
9
|
+
class LibBzip2(ninja.CXXLibrary):
|
|
10
|
+
name = "libbzip2"
|
|
11
|
+
binary = "bzip2"
|
|
12
|
+
version = Parameter("1.0.8", help="bzip2 version.")
|
|
13
|
+
pic = BooleanParameter(True, help="Build position independent code")
|
|
14
|
+
shared = BooleanParameter(False, help="Build shared libraries")
|
|
15
|
+
cstd = 90
|
|
16
|
+
cflags_darwin_pic_on = ["-fPIC"]
|
|
17
|
+
cflags_linux_pic_on = ["-fPIC"]
|
|
18
|
+
incremental = False
|
|
19
|
+
requires_src = ["fetch:alias=src,url=https://sourceware.org/pub/bzip2/bzip2-{version}.tar.gz"]
|
|
20
|
+
source_influence = False
|
|
21
|
+
sources = [
|
|
22
|
+
"{fetch[src]}/bzip2-{version}/blocksort.c",
|
|
23
|
+
"{fetch[src]}/bzip2-{version}/bzlib.c",
|
|
24
|
+
"{fetch[src]}/bzip2-{version}/bzlib.h",
|
|
25
|
+
"{fetch[src]}/bzip2-{version}/compress.c",
|
|
26
|
+
"{fetch[src]}/bzip2-{version}/crctable.c",
|
|
27
|
+
"{fetch[src]}/bzip2-{version}/decompress.c",
|
|
28
|
+
"{fetch[src]}/bzip2-{version}/huffman.c",
|
|
29
|
+
"{fetch[src]}/bzip2-{version}/randtable.c",
|
|
30
|
+
]
|
|
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("bz2")
|
|
37
|
+
artifact.environ.CMAKE_PREFIX_PATH.append(".")
|
|
38
|
+
|
|
39
|
+
with tools.cwd("{fetch[src]}/bzip2-{version}"):
|
|
40
|
+
artifact.collect("bzlib.h", "include/")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
TaskRegistry.get().add_task_class(LibBzip2)
|
|
@@ -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 CAres(cmake.CMake):
|
|
11
|
+
name = "c-ares"
|
|
12
|
+
version = Parameter("1.34.6", help="c-ares version.")
|
|
13
|
+
shared = BooleanParameter(False, help="Build shared libraries.")
|
|
14
|
+
requires_git = ["git:url=https://github.com/c-ares/c-ares.git,rev=v{version}"]
|
|
15
|
+
srcdir = "{git[c-ares]}"
|
|
16
|
+
options = [
|
|
17
|
+
"CARES_SHARED={shared[ON,OFF]}",
|
|
18
|
+
"CARES_STATIC={shared[OFF,ON]}",
|
|
19
|
+
"CARES_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("cares")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
TaskRegistry.get().add_task_class(CAres)
|
|
@@ -0,0 +1,36 @@
|
|
|
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 Catch2(cmake.CMake):
|
|
11
|
+
name = "catch2"
|
|
12
|
+
version = Parameter("3.11.0", help="catch2 version.")
|
|
13
|
+
shared = BooleanParameter(False, help="Build shared libraries.")
|
|
14
|
+
requires_git = ["git:url=https://github.com/catchorg/Catch2.git,rev=v{version}"]
|
|
15
|
+
srcdir = "{git[Catch2]}"
|
|
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("Catch2")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Catch2Main(Task):
|
|
28
|
+
name = "catch2/main"
|
|
29
|
+
extends = "catch2"
|
|
30
|
+
|
|
31
|
+
def publish(self, artifact, tools):
|
|
32
|
+
artifact.cxxinfo.libraries.append("Catch2Main")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
TaskRegistry.get().add_task_class(Catch2)
|
|
36
|
+
TaskRegistry.get().add_task_class(Catch2Main)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from jolt import attributes
|
|
2
|
+
from jolt.pkgs import rust
|
|
3
|
+
from jolt.plugins import rust
|
|
4
|
+
from jolt.tasks import TaskRegistry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@attributes.requires("requires_git")
|
|
8
|
+
@attributes.requires("requires_rust")
|
|
9
|
+
class CBindgen(rust.Rust):
|
|
10
|
+
name = "cbindgen"
|
|
11
|
+
version = "0.29.2"
|
|
12
|
+
requires_git = ["git:url=https://github.com/mozilla/cbindgen.git,rev=v{version},hash=true"]
|
|
13
|
+
requires_rust = ["rust"]
|
|
14
|
+
srcdir = "{git[cbindgen]}"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
TaskRegistry.get().add_task_class(CBindgen)
|