From f3493a85b2d82aebab44a5580443413040ae5794 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Fri, 3 Oct 2025 22:21:42 +0000 Subject: [PATCH 01/30] Modularize --- taskfiles/deps/cmake-libs.yaml | 359 +++++++++++++++++++ taskfiles/deps/core.yaml | 46 +++ taskfiles/deps/log-viewer.yaml | 14 + taskfiles/deps/main.yaml | 622 ++------------------------------- taskfiles/deps/metadata.yaml | 28 ++ taskfiles/deps/misc-libs.yaml | 136 +++++++ taskfiles/deps/spider.yaml | 55 +++ taskfiles/deps/utils.yaml | 10 - 8 files changed, 658 insertions(+), 612 deletions(-) create mode 100644 taskfiles/deps/cmake-libs.yaml create mode 100644 taskfiles/deps/core.yaml create mode 100644 taskfiles/deps/log-viewer.yaml create mode 100644 taskfiles/deps/metadata.yaml create mode 100644 taskfiles/deps/misc-libs.yaml create mode 100644 taskfiles/deps/spider.yaml diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml new file mode 100644 index 0000000000..5805991435 --- /dev/null +++ b/taskfiles/deps/cmake-libs.yaml @@ -0,0 +1,359 @@ +version: "3" + +# NOTE: For dependencies built using CMake, we set CMP0074 to NEW whenever: +# - a component's minimum required CMake version is less than 3.27 (where CMP0074 defaults to OLD); +# and +# - the component depends on another via `_ROOT`. +tasks: + absl: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_CXX_STANDARD=20" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "absl" + TARBALL_SHA256: "7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669" + TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ + abseil-cpp-20250512.0.tar.gz" + + catch2: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_TESTING=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_CXX_STANDARD=20" + - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "Catch2" + TARBALL_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" + TARBALL_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz" + + date: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "date" + TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" + TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" + + fmt: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DFMT_DOC=OFF" + - "-DFMT_TEST=OFF" + LIB_NAME: "{{.G_FMT_LIB_NAME}}" + TARBALL_SHA256: "bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af" + TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/11.2.0.tar.gz" + + liblzma: + internal: true + vars: + COMMON_CMAKE_GEN_ARGS: + - "-DBUILD_TESTING=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DXZ_DOC=OFF" + - "-DXZ_TOOL_LZMADEC=OFF" + - "-DXZ_TOOL_LZMAINFO=OFF" + - "-DXZ_TOOL_SCRIPTS=OFF" + - "-DXZ_TOOL_SYMLINKS_LZMA=OFF" + - "-DXZ_TOOL_XZ=OFF" + - "-DXZ_TOOL_XZDEC=OFF" + TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543" + TARBALL_URL: "https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.gz" + run: "once" + deps: + - task: "liblzma-install" + vars: + BUILD_SHARED_LIBS: true + COMMON_CMAKE_GEN_ARGS: + ref: ".COMMON_CMAKE_GEN_ARGS" + TARBALL_SHA256: "{{.TARBALL_SHA256}}" + TARBALL_URL: "{{.TARBALL_URL}}" + - task: "liblzma-install" + vars: + BUILD_SHARED_LIBS: false + COMMON_CMAKE_GEN_ARGS: + ref: ".COMMON_CMAKE_GEN_ARGS" + TARBALL_SHA256: "{{.TARBALL_SHA256}}" + TARBALL_URL: "{{.TARBALL_URL}}" + + liblzma-install: + internal: true + requires: + vars: ["BUILD_SHARED_LIBS", "COMMON_CMAKE_GEN_ARGS", "TARBALL_SHA256", "TARBALL_URL"] + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" + - >- + {{ join " " .COMMON_CMAKE_GEN_ARGS }} + LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" + TARBALL_SHA256: "{{.TARBALL_SHA256}}" + TARBALL_URL: "{{.TARBALL_URL}}" + + log-surgeon: + internal: true + run: "once" + deps: + - "fmt" + - "microsoft.gsl" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_GSL_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-Dlog_surgeon_BUILD_TESTING=OFF" + LIB_NAME: "log_surgeon" + TARBALL_SHA256: "69a99e0804a52c6b6397c5e7eabecc9bb4915d0145632c66fc63ad13678ff56a" + TARBALL_URL: "https://github.com/y-scope/log-surgeon/archive/a722d07.tar.gz" + + lz4: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DBUILD_STATIC_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DLZ4_BUILD_CLI=OFF" + CMAKE_SOURCE_DIR: "build/cmake" + LIB_NAME: "lz4" + TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" + TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" + + mariadb-connector-cpp: + platforms: ["linux"] + preconditions: + # NOTE: The MariaDB connector is only required for building Spider, which is only supported on + # Ubuntu. `INSTALL_LAYOUT` is currently hardcoded to "DEB". To support other Linux distros: + # - Update the precondition accordingly. + # - Make `INSTALL_LAYOUT` configurable. + - >- + source /etc/os-release && [[ "$ID" == "ubuntu" ]] + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DUSE_SYSTEM_INSTALLED_LIB=ON" + - "-DINSTALL_LAYOUT=DEB" + LIB_NAME: "mariadb-connector-cpp" + TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ + tags/1.1.5.tar.gz" + TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" + + microsoft.gsl: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DGSL_TEST=OFF" + LIB_NAME: "{{.G_GSL_LIB_NAME}}" + TARBALL_SHA256: "f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9" + TARBALL_URL: "https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz" + + mongocxx: + internal: true + vars: + VERSION: "r4.1.1" + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" + - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DENABLE_UNINSTALL=OFF" + LIB_NAME: "mongocxx" + TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" + TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ + /mongo-cxx-driver-{{.VERSION}}.tar.gz" + + msgpack-cxx: + internal: true + vars: + VERSION: "7.0.0" + run: "once" + deps: + - task: "boost" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" + - "-DMSGPACK_BUILD_DOCS=OFF" + - "-DMSGPACK_CXX20=ON" + LIB_NAME: "msgpack-cxx" + TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" + TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ + /msgpack-cxx-{{.VERSION}}.tar.gz" + + nlohmann_json: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DJSON_BuildTests=OFF" + LIB_NAME: "nlohmann_json" + TARBALL_SHA256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" + + # NOTE: We use the GitHub-generated source tarball for this version rather than the + # release tarball, since the latter is served from githubusercontent.com which is blocked + # by some developers' firewalls. The contents of the former are a superset of the latter. + TARBALL_URL: "https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz" + + simdjson: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "simdjson" + TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" + TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" + + spdlog: + internal: true + run: "once" + deps: + - "fmt" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" + - "-DSPDLOG_BUILD_EXAMPLE=OFF" + - "-DSPDLOG_BUILD_EXAMPLE_HO=OFF" + - "-DSPDLOG_FMT_EXTERNAL=ON" + LIB_NAME: "spdlog" + TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" + + # NOTE: Since spdlog depends on fmt, we need to choose a version of spdlog that's + # compatible with the version of fmt we use. + TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" + + utfcpp: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "utfcpp" + TARBALL_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" + TARBALL_URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" + + yaml-cpp: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_TESTING=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + LIB_NAME: "yaml-cpp" + TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" + TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" + + ystdlib: + internal: true + run: "once" + deps: + - task: "boost" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" + - "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" + - "-Dystdlib_BUILD_TESTING=OFF" + LIB_NAME: "ystdlib" + TARBALL_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8" + TARBALL_URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz" + + zlib: + internal: true + vars: + LIB_NAME: "zlib" + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_INSTALL_PREFIX={{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + - "-DZLIB_BUILD_EXAMPLES=OFF" + LIB_NAME: "{{.LIB_NAME}}" + TARBALL_SHA256: "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23" + TARBALL_URL: "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" + + zstd: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DZSTD_BUILD_CONTRIB=OFF" + - "-DZSTD_BUILD_PROGRAMS=OFF" + - "-DZSTD_BUILD_SHARED=ON" + - "-DZSTD_BUILD_STATIC=ON" + - "-DZSTD_BUILD_TESTS=OFF" + CMAKE_SOURCE_DIR: "build/cmake" + LIB_NAME: "zstd" + TARBALL_SHA256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" + TARBALL_URL: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml new file mode 100644 index 0000000000..475024e21a --- /dev/null +++ b/taskfiles/deps/core.yaml @@ -0,0 +1,46 @@ +version: "3" + +tasks: + core: + deps: + - task: "init" + - task: "utils:clean-outdated-cpp-checksum-files" + cmds: + - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" + vars: + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-core.cmake" + DEP_TASK: "core-all-parallel" + - task: "utils:combine-cpp-checksum-files" + + core-all-parallel: + internal: true + vars: + CPP_CORE_TASKS: + - "absl" + - "antlr-jar" + - "antlr-runtime" + - "boost" + - "catch2" + - "date" + - "fmt" + - "liblzma" + - "log-surgeon" + - "lz4" + - "microsoft.gsl" + - "mongocxx" + - "msgpack-cxx" + - "nlohmann_json" + - "simdjson" + - "spdlog" + - "sqlite3" + - "utfcpp" + - "yaml-cpp" + - "ystdlib" + - "zlib" + - "zstd" + run: "once" + deps: + - for: + var: "CPP_CORE_TASKS" + task: "{{.ITEM}}" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml new file mode 100644 index 0000000000..10d623ef4e --- /dev/null +++ b/taskfiles/deps/log-viewer.yaml @@ -0,0 +1,14 @@ +version: "3" + +tasks: + log-viewer: + deps: + - task: "init" + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + CHECKSUM_FILE: "{{.G_DEPS_LOG_VIEWER_CHECKSUM_FILE}}" + FILE_SHA256: "f9baaae0886439862204e8062c69dd49354cb14ad4e59f7c35779d544384955e" + OUTPUT_DIR: "{{.G_WEBUI_SRC_DIR}}/yscope-log-viewer" + TAR_FILE: "{{.G_BUILD_DIR}}/yscope-log-viewer.tar.gz" + URL: "https://github.com/y-scope/yscope-log-viewer/archive/3abe4cc.tar.gz" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 9a6b0ab478..663295a63b 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -1,7 +1,22 @@ version: "3" includes: - utils: "./utils.yaml" + cmake-libs: + flatten: true + taskfile: "cmake-libs.yaml" + core: + flatten: true + taskfile: "core.yaml" + misc-libs: + flatten: true + taskfile: "misc-libs.yaml" + spider: + flatten: true + taskfile: "spider.yaml" + log-viewer: + flatten: true + taskfile: "log-viewer.yaml" + utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" vars: @@ -26,614 +41,17 @@ vars: G_ANTLR_VERSION: "4.13.2" G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" -# NOTE: For dependencies built using CMake, we set CMP0074 to NEW whenever: -# - a component's minimum required CMake version is less than 3.27 (where CMP0074 defaults to OLD); -# and -# - the component depends on another via `_ROOT`. tasks: default: deps: - "core" - "log-viewer" - core: - deps: - - "utils:clean-outdated-cpp-checksum-files" - - "utils:init" - cmds: - - "rm -rf '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - - "mkdir -p '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" - vars: - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-core.cmake" - DEP_TASK: "core-all-parallel" - - task: "utils:combine-cpp-checksum-files" - - log-viewer: - deps: - - "utils:init" - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - CHECKSUM_FILE: "{{.G_DEPS_LOG_VIEWER_CHECKSUM_FILE}}" - FILE_SHA256: "f9baaae0886439862204e8062c69dd49354cb14ad4e59f7c35779d544384955e" - OUTPUT_DIR: "{{.G_WEBUI_SRC_DIR}}/yscope-log-viewer" - TAR_FILE: "{{.G_BUILD_DIR}}/yscope-log-viewer.tar.gz" - URL: "https://github.com/y-scope/yscope-log-viewer/archive/3abe4cc.tar.gz" - - core-all-parallel: + init: internal: true run: "once" - deps: - - task: "absl" - - task: "antlr-jar" - - task: "antlr-runtime" - - task: "boost" - - task: "catch2" - - task: "date" - - task: "fmt" - - task: "liblzma" - - task: "log-surgeon" - - task: "lz4" - - task: "microsoft.gsl" - - task: "mongocxx" - - task: "msgpack-cxx" - - task: "nlohmann_json" - - task: "simdjson" - - task: "spdlog" - - task: "sqlite3" - - task: "utfcpp" - - task: "yaml-cpp" - - task: "ystdlib" - - task: "zlib" - - task: "zstd" - - spider: - deps: - - "spider-dep" - platforms: ["linux"] - preconditions: - # NOTE: Spider is only supported on Ubuntu at present. - - >- - source /etc/os-release && [[ "$ID" == "ubuntu" ]] - cmds: - - task: "yscope-dev-utils:cmake:install-remote-tar" - vars: - CMAKE_PACKAGE_NAME: "spider" - TAR_SHA256: "43478b6da99aa2df50c960573ec68c6fcf67cdfbab39b5e314676218aa93b959" - TAR_URL: "https://github.com/y-scope/spider/archive/6a7bad3.tar.gz" - WORK_DIR: "{{.G_SPIDER_BUILD_DIR}}" - CMAKE_JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DSPIDER_BUILD_TESTING=OFF" - - spider-dep: - internal: true - deps: - - "utils:clean-outdated-cpp-checksum-files" - - "utils:init" cmds: - - "rm -rf '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" + - "mkdir -p '{{.G_DEPS_DIR}}'" + - "mkdir -p '{{.G_DEPS_CPP_DIR}}'" + - "mkdir -p '{{.G_DEPS_CPP_CHECKSUMS_DIR}}'" - "mkdir -p '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" - vars: - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" - DEP_TASK: "spider-all-parallel" - - task: "utils:combine-cpp-checksum-files" - - spider-all-parallel: - internal: true - run: "once" - deps: - - task: "absl" - - task: "antlr-jar" - - task: "antlr-runtime" - - task: "boost" - - task: "fmt" - - task: "mariadb-connector-cpp" - - task: "msgpack-cxx" - - task: "spdlog" - - task: "ystdlib" - - absl: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_CXX_STANDARD=20" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "absl" - TARBALL_SHA256: "7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669" - TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ - abseil-cpp-20250512.0.tar.gz" - - antlr-jar: - internal: true - vars: - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" - OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" - run: "once" - deps: - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - - task: "utils:init" - cmds: - - task: "yscope-dev-utils:remote:curl" - vars: - FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" - OUTPUT_FILE: "{{.OUTPUT_FILE}}" - URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - - antlr-runtime: - internal: true - run: "once" - vars: - LIB_NAME: "antlr4-runtime" - - # Paths - BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-build" - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" - INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" - deps: - - task: "utils:init" - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - - # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension - # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and - # `NUM_COMPONENTS_TO_STRIP` parameters. - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - INCLUDE_PATTERNS: ["*/runtime/Cpp"] - NUM_COMPONENTS_TO_STRIP: 3 - OUTPUT_DIR: "{{.SOURCE_DIR}}" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - - task: "yscope-dev-utils:cmake:generate" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - EXTRA_ARGS: - - "-DANTLR4_INSTALL=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - # Set CMP0135 so that extracted files use the current timestamp as their modification - # timestamp, which ensures the library gets rebuilt if the extracted files change. - - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" - SOURCE_DIR: "{{.SOURCE_DIR}}" - - task: "yscope-dev-utils:cmake:build" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" - - task: "yscope-dev-utils:cmake:install" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - CMAKE_PACKAGE_NAME: "{{.LIB_NAME}}" - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" - - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - - boost: - internal: true - vars: - VERSION: "1.87.0" - run: "once" - cmds: - - task: "yscope-dev-utils:boost:download-and-install" - vars: - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f" - TARGETS: - - "filesystem" - - "iostreams" - - "process" - - "program_options" - - "regex" - - "system" - - "url" - URL: "https://github.com/boostorg/boost/releases/download/boost-{{.VERSION}}/\ - boost-{{.VERSION}}-b2-nodocs.tar.gz" - WORK_DIR: "{{.G_DEPS_CPP_DIR}}" - - catch2: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_CXX_STANDARD=20" - - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "Catch2" - TARBALL_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" - TARBALL_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz" - - date: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "date" - TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" - TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" - - fmt: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DFMT_DOC=OFF" - - "-DFMT_TEST=OFF" - LIB_NAME: "{{.G_FMT_LIB_NAME}}" - TARBALL_SHA256: "bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af" - TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/11.2.0.tar.gz" - - liblzma: - internal: true - vars: - COMMON_CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DXZ_DOC=OFF" - - "-DXZ_TOOL_LZMADEC=OFF" - - "-DXZ_TOOL_LZMAINFO=OFF" - - "-DXZ_TOOL_SCRIPTS=OFF" - - "-DXZ_TOOL_SYMLINKS_LZMA=OFF" - - "-DXZ_TOOL_XZ=OFF" - - "-DXZ_TOOL_XZDEC=OFF" - TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543" - TARBALL_URL: "https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.gz" - run: "once" - deps: - - task: "liblzma-install" - vars: - BUILD_SHARED_LIBS: true - COMMON_CMAKE_GEN_ARGS: - ref: ".COMMON_CMAKE_GEN_ARGS" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - task: "liblzma-install" - vars: - BUILD_SHARED_LIBS: false - COMMON_CMAKE_GEN_ARGS: - ref: ".COMMON_CMAKE_GEN_ARGS" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - liblzma-install: - internal: true - requires: - vars: ["BUILD_SHARED_LIBS", "COMMON_CMAKE_GEN_ARGS", "TARBALL_SHA256", "TARBALL_URL"] - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" - - >- - {{ join " " .COMMON_CMAKE_GEN_ARGS }} - LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - log-surgeon: - internal: true - run: "once" - deps: - - "fmt" - - "microsoft.gsl" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_GSL_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-Dlog_surgeon_BUILD_TESTING=OFF" - LIB_NAME: "log_surgeon" - TARBALL_SHA256: "69a99e0804a52c6b6397c5e7eabecc9bb4915d0145632c66fc63ad13678ff56a" - TARBALL_URL: "https://github.com/y-scope/log-surgeon/archive/a722d07.tar.gz" - - lz4: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DBUILD_STATIC_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DLZ4_BUILD_CLI=OFF" - CMAKE_SOURCE_DIR: "build/cmake" - LIB_NAME: "lz4" - TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" - TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" - - mariadb-connector-cpp: - platforms: ["linux"] - preconditions: - # NOTE: The MariaDB connector is only required for building Spider, which is only supported on - # Ubuntu. `INSTALL_LAYOUT` is currently hardcoded to "DEB". To support other Linux distros: - # - Update the precondition accordingly. - # - Make `INSTALL_LAYOUT` configurable. - - >- - source /etc/os-release && [[ "$ID" == "ubuntu" ]] - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - - "-DINSTALL_LAYOUT=DEB" - LIB_NAME: "mariadb-connector-cpp" - TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ - tags/1.1.5.tar.gz" - TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" - - microsoft.gsl: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DGSL_TEST=OFF" - LIB_NAME: "{{.G_GSL_LIB_NAME}}" - TARBALL_SHA256: "f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9" - TARBALL_URL: "https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz" - - mongocxx: - internal: true - vars: - VERSION: "r4.1.1" - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" - - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DENABLE_UNINSTALL=OFF" - LIB_NAME: "mongocxx" - TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" - TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ - /mongo-cxx-driver-{{.VERSION}}.tar.gz" - - msgpack-cxx: - internal: true - vars: - VERSION: "7.0.0" - run: "once" - deps: - - task: "boost" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - - "-DMSGPACK_BUILD_DOCS=OFF" - - "-DMSGPACK_CXX20=ON" - LIB_NAME: "msgpack-cxx" - TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" - TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ - /msgpack-cxx-{{.VERSION}}.tar.gz" - - nlohmann_json: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DJSON_BuildTests=OFF" - LIB_NAME: "nlohmann_json" - TARBALL_SHA256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" - - # NOTE: We use the GitHub-generated source tarball for this version rather than the - # release tarball, since the latter is served from githubusercontent.com which is blocked - # by some developers' firewalls. The contents of the former are a superset of the latter. - TARBALL_URL: "https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz" - - simdjson: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "simdjson" - TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" - TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" - - spdlog: - internal: true - run: "once" - deps: - - "fmt" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - - "-DSPDLOG_BUILD_EXAMPLE=OFF" - - "-DSPDLOG_BUILD_EXAMPLE_HO=OFF" - - "-DSPDLOG_FMT_EXTERNAL=ON" - LIB_NAME: "spdlog" - TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" - - # NOTE: Since spdlog depends on fmt, we need to choose a version of spdlog that's - # compatible with the version of fmt we use. - TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" - - sqlite3: - internal: true - vars: - LIB_NAME: "sqlite3" - - # Paths - EXTRACTION_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" - INSTALL_INCLUDE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install/include" - INSTALL_SYMLINK: "{{.INSTALL_INCLUDE_DIR}}/{{.LIB_NAME}}" - ZIP_FILENAME_STEM: "sqlite-amalgamation-3360000" - SRC_DIR: "{{.EXTRACTION_DIR}}/{{.ZIP_FILENAME_STEM}}" - run: "once" - deps: - - task: "utils:init" - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-zip" - vars: - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" - FILE_SHA256: "999826fe4c871f18919fdb8ed7ec9dd8217180854dd1fe21eea96aed36186729" - OUTPUT_DIR: "{{.EXTRACTION_DIR}}" - URL: "https://www.sqlite.org/2021/{{.ZIP_FILENAME_STEM}}.zip" - - "mkdir -p '{{.INSTALL_INCLUDE_DIR}}'" - - "rm -f '{{.INSTALL_SYMLINK}}'" - - "ln -s '{{.SRC_DIR}}' '{{.INSTALL_SYMLINK}}'" - - |- - echo "set(CLP_SQLITE3_SOURCE_DIRECTORY \"{{.SRC_DIR}}\")" \ - > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" - echo "set(CLP_SQLITE3_INCLUDE_DIRECTORY \"{{.INSTALL_INCLUDE_DIR}}\")" \ - >> "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" - - utfcpp: - internal: true - vars: - LIB_NAME: "utfcpp" - UTFCPP_OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" - run: "once" - deps: - - task: "utils:init" - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" - FILE_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" - OUTPUT_DIR: "{{.UTFCPP_OUTPUT_DIR}}" - URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" - - >- - echo "set( - CLP_UTFCPP_INCLUDE_DIRECTORY \"{{.UTFCPP_OUTPUT_DIR}}\" - )" > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" - - yaml-cpp: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "yaml-cpp" - TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" - TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" - - ystdlib: - internal: true - run: "once" - deps: - - task: "boost" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" - - "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" - - "-Dystdlib_BUILD_TESTING=OFF" - LIB_NAME: "ystdlib" - TARBALL_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8" - TARBALL_URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz" - - zlib: - internal: true - vars: - LIB_NAME: "zlib" - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_INSTALL_PREFIX={{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - - "-DZLIB_BUILD_EXAMPLES=OFF" - LIB_NAME: "{{.LIB_NAME}}" - TARBALL_SHA256: "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23" - TARBALL_URL: "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" - - zstd: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DZSTD_BUILD_CONTRIB=OFF" - - "-DZSTD_BUILD_PROGRAMS=OFF" - - "-DZSTD_BUILD_SHARED=ON" - - "-DZSTD_BUILD_STATIC=ON" - - "-DZSTD_BUILD_TESTS=OFF" - CMAKE_SOURCE_DIR: "build/cmake" - LIB_NAME: "zstd" - TARBALL_SHA256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" - TARBALL_URL: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" diff --git a/taskfiles/deps/metadata.yaml b/taskfiles/deps/metadata.yaml new file mode 100644 index 0000000000..1db4764c5d --- /dev/null +++ b/taskfiles/deps/metadata.yaml @@ -0,0 +1,28 @@ +version: "3" + +vars: + G_DEPS_LIB_NAMES: + map: + absl: "absl" + antlr-runtime: "antlr4-runtime" + boost: "Boost" + catch2: "Catch2" + date: "date" + fmt: "fmt" + liblzma: "LibLZMA" + log-surgeon: "log_surgeon" + lz4: "lz4" + mariadb-connector-cpp: "mariadb-connector-cpp" + microsoft.gsl: "Microsoft.GSL" + mongocxx: "mongocxx" + msgpack-cxx: "msgpack-cxx" + nlohmann_json: "nlohmann_json" + simdjson: "simdjson" + spdlog: "spdlog" + spider: "spider" + sqlite3: "sqlite3" + utfcpp: "utfcpp" + yaml-cpp: "yaml-cpp" + ystdlib: "ystdlib" + zlib: "zlib" + zstd: "zstd" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml new file mode 100644 index 0000000000..2588994662 --- /dev/null +++ b/taskfiles/deps/misc-libs.yaml @@ -0,0 +1,136 @@ +version: "3" + +tasks: + antlr-jar: + internal: true + vars: + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" + OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" + run: "once" + deps: + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.OUTPUT_FILE}}" + cmds: + - task: "yscope-dev-utils:remote:curl" + vars: + FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" + OUTPUT_FILE: "{{.OUTPUT_FILE}}" + URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.OUTPUT_FILE}}" + + antlr-runtime: + internal: true + run: "once" + vars: + LIB_NAME: "antlr4-runtime" + + # Paths + BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-build" + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" + deps: + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + + # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension + # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and + # `NUM_COMPONENTS_TO_STRIP` parameters. + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + INCLUDE_PATTERNS: ["*/runtime/Cpp"] + NUM_COMPONENTS_TO_STRIP: 3 + OUTPUT_DIR: "{{.SOURCE_DIR}}" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" + - task: "yscope-dev-utils:cmake:generate" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + EXTRA_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + SOURCE_DIR: "{{.SOURCE_DIR}}" + - task: "yscope-dev-utils:cmake:build" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" + - task: "yscope-dev-utils:cmake:install" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + CMAKE_PACKAGE_NAME: "{{.LIB_NAME}}" + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + + boost: + internal: true + vars: + VERSION: "1.87.0" + run: "once" + cmds: + - task: "yscope-dev-utils:boost:download-and-install" + vars: + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f" + TARGETS: + - "filesystem" + - "iostreams" + - "process" + - "program_options" + - "regex" + - "system" + - "url" + URL: "https://github.com/boostorg/boost/releases/download/boost-{{.VERSION}}/\ + boost-{{.VERSION}}-b2-nodocs.tar.gz" + WORK_DIR: "{{.G_DEPS_CPP_DIR}}" + + + sqlite3: + internal: true + vars: + LIB_NAME: "sqlite3" + + # Paths + EXTRACTION_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" + INSTALL_INCLUDE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install/include" + INSTALL_SYMLINK: "{{.INSTALL_INCLUDE_DIR}}/{{.LIB_NAME}}" + ZIP_FILENAME_STEM: "sqlite-amalgamation-3360000" + SRC_DIR: "{{.EXTRACTION_DIR}}/{{.ZIP_FILENAME_STEM}}" + run: "once" + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-zip" + vars: + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + FILE_SHA256: "999826fe4c871f18919fdb8ed7ec9dd8217180854dd1fe21eea96aed36186729" + OUTPUT_DIR: "{{.EXTRACTION_DIR}}" + URL: "https://www.sqlite.org/2021/{{.ZIP_FILENAME_STEM}}.zip" + - "mkdir -p '{{.INSTALL_INCLUDE_DIR}}'" + - "rm -f '{{.INSTALL_SYMLINK}}'" + - "ln -s '{{.SRC_DIR}}' '{{.INSTALL_SYMLINK}}'" + - |- + echo "set(CLP_SQLITE3_SOURCE_DIRECTORY \"{{.SRC_DIR}}\")" \ + > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" + echo "set(CLP_SQLITE3_INCLUDE_DIRECTORY \"{{.INSTALL_INCLUDE_DIR}}\")" \ + >> "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml new file mode 100644 index 0000000000..e95f70abb9 --- /dev/null +++ b/taskfiles/deps/spider.yaml @@ -0,0 +1,55 @@ +version: "3" + +tasks: + spider: + deps: + - task: "spider-dep" + platforms: ["linux"] + preconditions: + # NOTE: Spider is only supported on Ubuntu at present. + - >- + source /etc/os-release && [[ "$ID" == "ubuntu" ]] + cmds: + - task: "yscope-dev-utils:cmake:install-remote-tar" + vars: + CMAKE_PACKAGE_NAME: "spider" + TAR_SHA256: "43478b6da99aa2df50c960573ec68c6fcf67cdfbab39b5e314676218aa93b959" + TAR_URL: "https://github.com/y-scope/spider/archive/6a7bad3.tar.gz" + WORK_DIR: "{{.G_SPIDER_BUILD_DIR}}" + CMAKE_JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DSPIDER_BUILD_TESTING=OFF" + + spider-dep: + deps: + - task: "init" + - task: "utils:clean-outdated-cpp-checksum-files" + cmds: + - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" + vars: + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" + DEP_TASK: "spider-all-parallel" + - task: "utils:combine-cpp-checksum-files" + + spider-all-parallel: + internal: true + vars: + CPP_SPIDER_TASKS: + - "absl" + - "antlr-jar" + - "antlr-runtime" + - "boost" + - "fmt" + - "mariadb-connector-cpp" + - "msgpack-cxx" + - "spdlog" + - "ystdlib" + run: "once" + deps: + - for: + var: "CPP_SPIDER_TASKS" + task: "{{.ITEM}}" diff --git a/taskfiles/deps/utils.yaml b/taskfiles/deps/utils.yaml index b6f71720a1..ccd17883f0 100644 --- a/taskfiles/deps/utils.yaml +++ b/taskfiles/deps/utils.yaml @@ -29,15 +29,6 @@ tasks: fi done - init: - internal: true - run: "once" - cmds: - - "mkdir -p '{{.G_DEPS_DIR}}'" - - "mkdir -p '{{.G_DEPS_CPP_DIR}}'" - - "mkdir -p '{{.G_DEPS_CPP_CHECKSUMS_DIR}}'" - - "mkdir -p '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - # Installs a CMake-based library from a remote tarball, generates a corresponding settings file, # and computes a checksum for the installation directory. # @@ -58,7 +49,6 @@ tasks: INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" INSTALL_DIR_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" deps: - - task: "init" - task: "yscope-dev-utils:checksum:validate" vars: CHECKSUM_FILE: "{{.INSTALL_DIR_CHECKSUM_FILE}}" From 5abd02dbd3042e40c685342d6087d088e2e3b52c Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sat, 4 Oct 2025 11:55:51 -0400 Subject: [PATCH 02/30] Remove unnecessary flattening of dep task files --- taskfile.yaml | 2 +- taskfiles/deps/cmake-libs.yaml | 6 ++++++ taskfiles/deps/core.yaml | 13 +++++++++++++ taskfiles/deps/log-viewer.yaml | 5 ++++- taskfiles/deps/main.yaml | 29 +++-------------------------- taskfiles/deps/misc-libs.yaml | 5 +++++ taskfiles/deps/spider.yaml | 4 ++++ 7 files changed, 36 insertions(+), 28 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index f1873b9d91..5055f7e7b2 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -122,7 +122,7 @@ tasks: - "core" - "clp-package-utils" - "clp-py-utils" - - "deps:spider" + - "deps:spider:spider-dep" - "init" - "job-orchestration" - "package-venv" diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 5805991435..0fcda9f698 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -1,5 +1,11 @@ version: "3" +vars: + # Library names + G_BOOST_LIB_NAME: "Boost" + G_FMT_LIB_NAME: "fmt" + G_GSL_LIB_NAME: "Microsoft.GSL" + # NOTE: For dependencies built using CMake, we set CMP0074 to NEW whenever: # - a component's minimum required CMake version is less than 3.27 (where CMP0074 defaults to OLD); # and diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index 475024e21a..326ad297fb 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -1,6 +1,19 @@ version: "3" +vars: + # Checksum paths + G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" + G_DEPS_CPP_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/all.md5" + + # CMake settings paths + # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt + G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" + tasks: + default: + deps: + - task: "core" + core: deps: - task: "init" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml index 10d623ef4e..cc8fece66a 100644 --- a/taskfiles/deps/log-viewer.yaml +++ b/taskfiles/deps/log-viewer.yaml @@ -1,7 +1,10 @@ version: "3" +vars: + G_DEPS_LOG_VIEWER_CHECKSUM_FILE: "{{.G_DEPS_DIR}}/log-viewer.md5" + tasks: - log-viewer: + default: deps: - task: "init" cmds: diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 663295a63b..6fae9d9e4e 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -4,18 +4,12 @@ includes: cmake-libs: flatten: true taskfile: "cmake-libs.yaml" - core: - flatten: true - taskfile: "core.yaml" + core: "core.yaml" misc-libs: flatten: true taskfile: "misc-libs.yaml" - spider: - flatten: true - taskfile: "spider.yaml" - log-viewer: - flatten: true - taskfile: "log-viewer.yaml" + spider: "spider.yaml" + log-viewer: "log-viewer.yaml" utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" @@ -23,23 +17,6 @@ vars: # Directories G_DEPS_DIR: "{{.G_BUILD_DIR}}/deps" G_DEPS_CPP_DIR: "{{.G_DEPS_DIR}}/cpp" - G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" - - # Checksum file paths - G_DEPS_CPP_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/all.md5" - G_DEPS_LOG_VIEWER_CHECKSUM_FILE: "{{.G_DEPS_DIR}}/log-viewer.md5" - - # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt - G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" - - # Library names - G_BOOST_LIB_NAME: "Boost" - G_FMT_LIB_NAME: "fmt" - G_GSL_LIB_NAME: "Microsoft.GSL" - - # Antlr - G_ANTLR_VERSION: "4.13.2" - G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" tasks: default: diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 2588994662..39668a998a 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,5 +1,10 @@ version: "3" +vars: + # Antlr + G_ANTLR_VERSION: "4.13.2" + G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + tasks: antlr-jar: internal: true diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index e95f70abb9..798539d3bb 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -1,6 +1,10 @@ version: "3" tasks: + default: + deps: + - task: "spider" + spider: deps: - task: "spider-dep" From 57f72d7ab842eda20666214a01717a6908433810 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sat, 4 Oct 2025 11:56:20 -0400 Subject: [PATCH 03/30] remove unused metadata file --- taskfiles/deps/metadata.yaml | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 taskfiles/deps/metadata.yaml diff --git a/taskfiles/deps/metadata.yaml b/taskfiles/deps/metadata.yaml deleted file mode 100644 index 1db4764c5d..0000000000 --- a/taskfiles/deps/metadata.yaml +++ /dev/null @@ -1,28 +0,0 @@ -version: "3" - -vars: - G_DEPS_LIB_NAMES: - map: - absl: "absl" - antlr-runtime: "antlr4-runtime" - boost: "Boost" - catch2: "Catch2" - date: "date" - fmt: "fmt" - liblzma: "LibLZMA" - log-surgeon: "log_surgeon" - lz4: "lz4" - mariadb-connector-cpp: "mariadb-connector-cpp" - microsoft.gsl: "Microsoft.GSL" - mongocxx: "mongocxx" - msgpack-cxx: "msgpack-cxx" - nlohmann_json: "nlohmann_json" - simdjson: "simdjson" - spdlog: "spdlog" - spider: "spider" - sqlite3: "sqlite3" - utfcpp: "utfcpp" - yaml-cpp: "yaml-cpp" - ystdlib: "ystdlib" - zlib: "zlib" - zstd: "zstd" From 2f1addbe96c2affa7a9d5349db30b45b60e1ce6e Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sat, 4 Oct 2025 11:59:01 -0400 Subject: [PATCH 04/30] Fix init task namespaces --- taskfiles/deps/core.yaml | 2 +- taskfiles/deps/log-viewer.yaml | 2 +- taskfiles/deps/spider.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index 326ad297fb..52a5b3a8f8 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -16,7 +16,7 @@ tasks: core: deps: - - task: "init" + - task: ":init" - task: "utils:clean-outdated-cpp-checksum-files" cmds: - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml index cc8fece66a..63b6481d19 100644 --- a/taskfiles/deps/log-viewer.yaml +++ b/taskfiles/deps/log-viewer.yaml @@ -6,7 +6,7 @@ vars: tasks: default: deps: - - task: "init" + - task: ":init" cmds: - task: "yscope-dev-utils:remote:download-and-extract-tar" vars: diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index 798539d3bb..134870633d 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -29,7 +29,7 @@ tasks: spider-dep: deps: - - task: "init" + - task: ":init" - task: "utils:clean-outdated-cpp-checksum-files" cmds: - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" From 6a0b11665d91bbbf68f3ac6ca1d72b5e8fb99928 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sat, 4 Oct 2025 12:09:31 -0400 Subject: [PATCH 05/30] use proper includes --- taskfiles/deps/core.yaml | 10 ++++++++++ taskfiles/deps/log-viewer.yaml | 10 ++++++++++ taskfiles/deps/main.yaml | 6 ------ taskfiles/deps/spider.yaml | 10 ++++++++++ 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index 52a5b3a8f8..364e4b83c8 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -1,5 +1,15 @@ version: "3" +includes: + cmake-libs: + flatten: true + taskfile: "cmake-libs.yaml" + misc-libs: + flatten: true + taskfile: "misc-libs.yaml" + utils: "utils.yaml" + yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" + vars: # Checksum paths G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml index 63b6481d19..6d9d69adc5 100644 --- a/taskfiles/deps/log-viewer.yaml +++ b/taskfiles/deps/log-viewer.yaml @@ -1,5 +1,15 @@ version: "3" +includes: + cmake-libs: + flatten: true + taskfile: "cmake-libs.yaml" + misc-libs: + flatten: true + taskfile: "misc-libs.yaml" + utils: "utils.yaml" + yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" + vars: G_DEPS_LOG_VIEWER_CHECKSUM_FILE: "{{.G_DEPS_DIR}}/log-viewer.md5" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 6fae9d9e4e..3c4a2ac791 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -1,13 +1,7 @@ version: "3" includes: - cmake-libs: - flatten: true - taskfile: "cmake-libs.yaml" core: "core.yaml" - misc-libs: - flatten: true - taskfile: "misc-libs.yaml" spider: "spider.yaml" log-viewer: "log-viewer.yaml" utils: "utils.yaml" diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index 134870633d..3656f5ea0b 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -1,5 +1,15 @@ version: "3" +includes: + cmake-libs: + flatten: true + taskfile: "cmake-libs.yaml" + misc-libs: + flatten: true + taskfile: "misc-libs.yaml" + utils: "utils.yaml" + yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" + tasks: default: deps: From a80214686ec704e30a44cd7107e9a638210e19cb Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sun, 5 Oct 2025 05:10:13 -0400 Subject: [PATCH 06/30] Properly design taskfile includes --- taskfiles/deps/core.yaml | 29 +++++------------------------ taskfiles/deps/log-viewer.yaml | 12 +----------- taskfiles/deps/main.yaml | 19 +++++++++++++++++++ taskfiles/deps/misc-libs.yaml | 2 +- taskfiles/deps/spider.yaml | 22 ++++++---------------- taskfiles/deps/utils.yaml | 11 ++++------- 6 files changed, 36 insertions(+), 59 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index 364e4b83c8..c3f07c3725 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -1,24 +1,5 @@ version: "3" -includes: - cmake-libs: - flatten: true - taskfile: "cmake-libs.yaml" - misc-libs: - flatten: true - taskfile: "misc-libs.yaml" - utils: "utils.yaml" - yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - -vars: - # Checksum paths - G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" - G_DEPS_CPP_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/all.md5" - - # CMake settings paths - # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt - G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" - tasks: default: deps: @@ -27,14 +8,14 @@ tasks: core: deps: - task: ":init" - - task: "utils:clean-outdated-cpp-checksum-files" + - task: ":utils:clean-outdated-cpp-checksum-files" cmds: - - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" + - task: ":yscope-dev-utils:cmake:install-deps-and-generate-settings" vars: CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-core.cmake" - DEP_TASK: "core-all-parallel" - - task: "utils:combine-cpp-checksum-files" + DEP_TASK: "core:core-all-parallel" + - task: ":utils:combine-cpp-checksum-files" core-all-parallel: internal: true @@ -66,4 +47,4 @@ tasks: deps: - for: var: "CPP_CORE_TASKS" - task: "{{.ITEM}}" + task: ":{{.ITEM}}" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml index 6d9d69adc5..d7c2ac8baa 100644 --- a/taskfiles/deps/log-viewer.yaml +++ b/taskfiles/deps/log-viewer.yaml @@ -1,15 +1,5 @@ version: "3" -includes: - cmake-libs: - flatten: true - taskfile: "cmake-libs.yaml" - misc-libs: - flatten: true - taskfile: "misc-libs.yaml" - utils: "utils.yaml" - yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - vars: G_DEPS_LOG_VIEWER_CHECKSUM_FILE: "{{.G_DEPS_DIR}}/log-viewer.md5" @@ -18,7 +8,7 @@ tasks: deps: - task: ":init" cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" + - task: ":yscope-dev-utils:remote:download-and-extract-tar" vars: CHECKSUM_FILE: "{{.G_DEPS_LOG_VIEWER_CHECKSUM_FILE}}" FILE_SHA256: "f9baaae0886439862204e8062c69dd49354cb14ad4e59f7c35779d544384955e" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 3c4a2ac791..4ef19cd02c 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -1,17 +1,36 @@ version: "3" includes: + # Components core: "core.yaml" spider: "spider.yaml" log-viewer: "log-viewer.yaml" + + # Utils utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" + # Individual library installs + cmake-libs: + flatten: true + taskfile: "cmake-libs.yaml" + misc-libs: + flatten: true + taskfile: "misc-libs.yaml" + vars: # Directories G_DEPS_DIR: "{{.G_BUILD_DIR}}/deps" G_DEPS_CPP_DIR: "{{.G_DEPS_DIR}}/cpp" + # Checksum dirs and paths + G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" + G_DEPS_CPP_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/all.md5" + + # CMake settings paths + # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt + G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" + tasks: default: deps: diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 39668a998a..e09b34b6f4 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -34,7 +34,6 @@ tasks: antlr-runtime: internal: true - run: "once" vars: LIB_NAME: "antlr4-runtime" @@ -43,6 +42,7 @@ tasks: CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" + run: "once" deps: - task: "yscope-dev-utils:checksum:validate" vars: diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index 3656f5ea0b..ce241fb9e2 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -1,15 +1,5 @@ version: "3" -includes: - cmake-libs: - flatten: true - taskfile: "cmake-libs.yaml" - misc-libs: - flatten: true - taskfile: "misc-libs.yaml" - utils: "utils.yaml" - yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - tasks: default: deps: @@ -24,7 +14,7 @@ tasks: - >- source /etc/os-release && [[ "$ID" == "ubuntu" ]] cmds: - - task: "yscope-dev-utils:cmake:install-remote-tar" + - task: ":yscope-dev-utils:cmake:install-remote-tar" vars: CMAKE_PACKAGE_NAME: "spider" TAR_SHA256: "43478b6da99aa2df50c960573ec68c6fcf67cdfbab39b5e314676218aa93b959" @@ -40,14 +30,14 @@ tasks: spider-dep: deps: - task: ":init" - - task: "utils:clean-outdated-cpp-checksum-files" + - task: ":utils:clean-outdated-cpp-checksum-files" cmds: - - task: "yscope-dev-utils:cmake:install-deps-and-generate-settings" + - task: ":yscope-dev-utils:cmake:install-deps-and-generate-settings" vars: CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" - DEP_TASK: "spider-all-parallel" - - task: "utils:combine-cpp-checksum-files" + DEP_TASK: "spider:spider-all-parallel" + - task: ":utils:combine-cpp-checksum-files" spider-all-parallel: internal: true @@ -66,4 +56,4 @@ tasks: deps: - for: var: "CPP_SPIDER_TASKS" - task: "{{.ITEM}}" + task: ":{{.ITEM}}" diff --git a/taskfiles/deps/utils.yaml b/taskfiles/deps/utils.yaml index ccd17883f0..847f2410d2 100644 --- a/taskfiles/deps/utils.yaml +++ b/taskfiles/deps/utils.yaml @@ -1,8 +1,5 @@ version: "3" -includes: - yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - tasks: # Cleans up the cpp checksum files any time the taskfiles change. This is to ensure that if any # of cpp's dependencies are removed from the taskfiles, then the checksum files for the removed @@ -10,11 +7,11 @@ tasks: # removed dependencies, we remove all of them. clean-outdated-cpp-checksum-files: internal: true - run: "once" sources: - "{{.ROOT_DIR}}/Taskfile.yaml" - "{{.ROOT_DIR}}/taskfiles/**/*.yaml" - "{{.ROOT_DIR}}/tools/yscope-dev-utils/exports/taskfiles/**/*.yaml" + run: "once" cmd: "rm -f '{{.G_DEPS_CPP_CHECKSUMS_DIR}}'/*" # Combines all of cpp's checksum files into `G_DEPS_CPP_CHECKSUM_FILE`. @@ -49,13 +46,13 @@ tasks: INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" INSTALL_DIR_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" deps: - - task: "yscope-dev-utils:checksum:validate" + - task: ":yscope-dev-utils:checksum:validate" vars: CHECKSUM_FILE: "{{.INSTALL_DIR_CHECKSUM_FILE}}" INCLUDE_PATTERNS: - "{{.INSTALL_PREFIX}}" cmds: - - task: "yscope-dev-utils:cmake:install-remote-tar" + - task: ":yscope-dev-utils:cmake:install-remote-tar" vars: CMAKE_GEN_ARGS: ref: ".CMAKE_GEN_ARGS" @@ -68,7 +65,7 @@ tasks: WORK_DIR: "{{.G_DEPS_CPP_DIR}}" # This command must be last - - task: "yscope-dev-utils:checksum:compute" + - task: ":yscope-dev-utils:checksum:compute" vars: CHECKSUM_FILE: "{{.INSTALL_DIR_CHECKSUM_FILE}}" INCLUDE_PATTERNS: From 9160b55f5f68c475599a42c595d8cccac782babf Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sun, 5 Oct 2025 05:23:12 -0400 Subject: [PATCH 07/30] misc reorder of mariadb-connector-cpp task entries according to taskfile guidlines --- taskfiles/deps/cmake-libs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 0fcda9f698..25cb3da5f7 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -155,6 +155,7 @@ tasks: TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" mariadb-connector-cpp: + internal: true platforms: ["linux"] preconditions: # NOTE: The MariaDB connector is only required for building Spider, which is only supported on @@ -163,7 +164,6 @@ tasks: # - Make `INSTALL_LAYOUT` configurable. - >- source /etc/os-release && [[ "$ID" == "ubuntu" ]] - internal: true run: "once" cmds: - task: "utils:install-remote-cmake-lib" @@ -172,9 +172,9 @@ tasks: - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - "-DINSTALL_LAYOUT=DEB" LIB_NAME: "mariadb-connector-cpp" + TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ tags/1.1.5.tar.gz" - TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" microsoft.gsl: internal: true From f2b0917606f64063f3adda49befdf6be8a145f63 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Sun, 5 Oct 2025 18:16:30 +0800 Subject: [PATCH 08/30] Apply suggestions from code review --- taskfile.yaml | 2 +- taskfiles/deps/log-viewer.yaml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index d2bab9d44d..18b647feb5 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -127,7 +127,7 @@ tasks: - "clp-mcp-server" - "clp-package-utils" - "clp-py-utils" - - "deps:spider:spider-dep" + - "deps:spider" - "init" - "job-orchestration" - "package-venv" diff --git a/taskfiles/deps/log-viewer.yaml b/taskfiles/deps/log-viewer.yaml index d7c2ac8baa..835195b58b 100644 --- a/taskfiles/deps/log-viewer.yaml +++ b/taskfiles/deps/log-viewer.yaml @@ -5,8 +5,6 @@ vars: tasks: default: - deps: - - task: ":init" cmds: - task: ":yscope-dev-utils:remote:download-and-extract-tar" vars: From 07914d6e8243a61a149a09b0927251206d49980e Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 12:42:16 -0400 Subject: [PATCH 09/30] Move antlr-jar into its own file --- taskfiles/deps/artifacts.yaml | 31 +++++++++++++++++++++++++++++++ taskfiles/deps/main.yaml | 8 ++++++-- taskfiles/deps/misc-libs.yaml | 28 ---------------------------- 3 files changed, 37 insertions(+), 30 deletions(-) create mode 100644 taskfiles/deps/artifacts.yaml diff --git a/taskfiles/deps/artifacts.yaml b/taskfiles/deps/artifacts.yaml new file mode 100644 index 0000000000..1c4167580f --- /dev/null +++ b/taskfiles/deps/artifacts.yaml @@ -0,0 +1,31 @@ +version: "3" + +vars: + G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + +tasks: + antlr-jar: + internal: true + vars: + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" + OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" + run: "once" + deps: + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.OUTPUT_FILE}}" + cmds: + - task: "yscope-dev-utils:remote:curl" + vars: + FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" + OUTPUT_FILE: "{{.OUTPUT_FILE}}" + URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.OUTPUT_FILE}}" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 4ef19cd02c..a3f52b7966 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -1,7 +1,7 @@ version: "3" includes: - # Components + # Main targets core: "core.yaml" spider: "spider.yaml" log-viewer: "log-viewer.yaml" @@ -10,7 +10,10 @@ includes: utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - # Individual library installs + # Individual component tasks + artifacts: + flatten: true + taskfile: "artifacts.yaml" cmake-libs: flatten: true taskfile: "cmake-libs.yaml" @@ -35,6 +38,7 @@ tasks: default: deps: - "core" + - "spider" - "log-viewer" init: diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index e09b34b6f4..8851883b02 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,37 +1,9 @@ version: "3" vars: - # Antlr G_ANTLR_VERSION: "4.13.2" - G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" tasks: - antlr-jar: - internal: true - vars: - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" - OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" - run: "once" - deps: - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - cmds: - - task: "yscope-dev-utils:remote:curl" - vars: - FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" - OUTPUT_FILE: "{{.OUTPUT_FILE}}" - URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - antlr-runtime: internal: true vars: From d5c0969cfafbdd3821210abf5c1b8c2385c2e5d1 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 12:59:26 -0400 Subject: [PATCH 10/30] complete gen args for mariadb connector and utfcpp --- taskfiles/deps/cmake-libs.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 25cb3da5f7..a30cdc339b 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -169,8 +169,10 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: - - "-DUSE_SYSTEM_INSTALLED_LIB=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DINSTALL_LAYOUT=DEB" + - "-DUSE_SYSTEM_INSTALLED_LIB=ON" LIB_NAME: "mariadb-connector-cpp" TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ @@ -292,6 +294,7 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" LIB_NAME: "utfcpp" TARBALL_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" From 9d462b79cea45717fec80e2a77f12ce64c46729d Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 13:32:50 -0400 Subject: [PATCH 11/30] Fix variable include order --- taskfiles/deps/artifacts.yaml | 3 --- taskfiles/deps/main.yaml | 4 ++++ taskfiles/deps/misc-libs.yaml | 3 --- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/taskfiles/deps/artifacts.yaml b/taskfiles/deps/artifacts.yaml index 1c4167580f..b868f4966b 100644 --- a/taskfiles/deps/artifacts.yaml +++ b/taskfiles/deps/artifacts.yaml @@ -1,8 +1,5 @@ version: "3" -vars: - G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - tasks: antlr-jar: internal: true diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index a3f52b7966..0b6ca7b4a7 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -34,6 +34,10 @@ vars: # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" + # Antlr + G_ANTLR_VERSION: "4.13.2" + G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + tasks: default: deps: diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 8851883b02..41aa973137 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,8 +1,5 @@ version: "3" -vars: - G_ANTLR_VERSION: "4.13.2" - tasks: antlr-runtime: internal: true From c07595e896f2f330a70649b1b81eb7e4fd37de18 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 13:58:32 -0400 Subject: [PATCH 12/30] Change antlr-runtime to be a nice cmake lib for install tasks --- taskfiles/deps/cmake-libs.yaml | 34 ++++++++++++++++++++ taskfiles/deps/misc-libs.yaml | 57 ---------------------------------- 2 files changed, 34 insertions(+), 57 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index a30cdc339b..65f1a0506b 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -2,6 +2,7 @@ version: "3" vars: # Library names + G_ANTLR_RUNTIME_LIB_NAME: "antlr4-runtime" G_BOOST_LIB_NAME: "Boost" G_FMT_LIB_NAME: "fmt" G_GSL_LIB_NAME: "Microsoft.GSL" @@ -26,6 +27,39 @@ tasks: TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ abseil-cpp-20250512.0.tar.gz" + antlr-runtime: + internal: true + run: "once" + # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension + # `utils:install-remote-cmake-lib`) directly since it doesn't yet support the `INCLUDE_PATTERNS` + # or `NUM_COMPONENTS_TO_STRIP` parameters. + # However, we can call `yscope-dev-utils:remote:download-and-extract-tar` with custom tar + # extraction parameters first, and due to the cheksum mechanism of this task, the tar extraction + # will be flagged as `up-to-date`, and the same process will run again during + # `yscope-dev-utils:cmake:install-remote-tar`, ensuring that our library install will succeed. + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + INCLUDE_PATTERNS: ["*/runtime/Cpp"] + NUM_COMPONENTS_TO_STRIP: 3 + OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/{{.G_ANTLR_RUNTIME_LIB_NAME}}-extracted" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + LIB_NAME: "{{.G_ANTLR_RUNTIME_LIB_NAME}}" + TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ + {{.G_ANTLR_VERSION}}.tar.gz" + catch2: internal: true run: "once" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 41aa973137..66dc0422ba 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,63 +1,6 @@ version: "3" tasks: - antlr-runtime: - internal: true - vars: - LIB_NAME: "antlr4-runtime" - - # Paths - BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-build" - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" - INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" - run: "once" - deps: - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - - # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension - # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and - # `NUM_COMPONENTS_TO_STRIP` parameters. - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - INCLUDE_PATTERNS: ["*/runtime/Cpp"] - NUM_COMPONENTS_TO_STRIP: 3 - OUTPUT_DIR: "{{.SOURCE_DIR}}" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - - task: "yscope-dev-utils:cmake:generate" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - EXTRA_ARGS: - - "-DANTLR4_INSTALL=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - # Set CMP0135 so that extracted files use the current timestamp as their modification - # timestamp, which ensures the library gets rebuilt if the extracted files change. - - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" - SOURCE_DIR: "{{.SOURCE_DIR}}" - - task: "yscope-dev-utils:cmake:build" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" - - task: "yscope-dev-utils:cmake:install" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - CMAKE_PACKAGE_NAME: "{{.LIB_NAME}}" - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" - - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - boost: internal: true vars: From 5664d7c74f919718251200690544400c66f227b4 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 22:52:58 -0400 Subject: [PATCH 13/30] test doing antlr-runtime last --- taskfiles/deps/core.yaml | 3 ++- taskfiles/deps/spider.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index c3f07c3725..11268567ac 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -23,7 +23,6 @@ tasks: CPP_CORE_TASKS: - "absl" - "antlr-jar" - - "antlr-runtime" - "boost" - "catch2" - "date" @@ -48,3 +47,5 @@ tasks: - for: var: "CPP_CORE_TASKS" task: ":{{.ITEM}}" + cmds: + - task: "antlr-runtime" diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index ce241fb9e2..84d121c6bb 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -45,7 +45,6 @@ tasks: CPP_SPIDER_TASKS: - "absl" - "antlr-jar" - - "antlr-runtime" - "boost" - "fmt" - "mariadb-connector-cpp" @@ -57,3 +56,5 @@ tasks: - for: var: "CPP_SPIDER_TASKS" task: ":{{.ITEM}}" + cmds: + - task: "antlr-runtime" From 5338f73d717ed04a1abcf1bfbd7ea584683a6381 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Mon, 6 Oct 2025 23:05:20 -0400 Subject: [PATCH 14/30] fix namespace --- taskfiles/deps/core.yaml | 2 +- taskfiles/deps/spider.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index 11268567ac..e3a7bd6f4e 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -48,4 +48,4 @@ tasks: var: "CPP_CORE_TASKS" task: ":{{.ITEM}}" cmds: - - task: "antlr-runtime" + - task: ":antlr-runtime" diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index 84d121c6bb..dfe7125c81 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -57,4 +57,4 @@ tasks: var: "CPP_SPIDER_TASKS" task: ":{{.ITEM}}" cmds: - - task: "antlr-runtime" + - task: ":antlr-runtime" From bde48cb46c064a93e5ac9c3af232711e2550bfb5 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 7 Oct 2025 01:30:37 -0400 Subject: [PATCH 15/30] revert to before antlr change --- taskfiles/deps/cmake-libs.yaml | 34 -------------------- taskfiles/deps/core.yaml | 3 +- taskfiles/deps/misc-libs.yaml | 57 ++++++++++++++++++++++++++++++++++ taskfiles/deps/spider.yaml | 3 +- 4 files changed, 59 insertions(+), 38 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 65f1a0506b..a30cdc339b 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -2,7 +2,6 @@ version: "3" vars: # Library names - G_ANTLR_RUNTIME_LIB_NAME: "antlr4-runtime" G_BOOST_LIB_NAME: "Boost" G_FMT_LIB_NAME: "fmt" G_GSL_LIB_NAME: "Microsoft.GSL" @@ -27,39 +26,6 @@ tasks: TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ abseil-cpp-20250512.0.tar.gz" - antlr-runtime: - internal: true - run: "once" - # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension - # `utils:install-remote-cmake-lib`) directly since it doesn't yet support the `INCLUDE_PATTERNS` - # or `NUM_COMPONENTS_TO_STRIP` parameters. - # However, we can call `yscope-dev-utils:remote:download-and-extract-tar` with custom tar - # extraction parameters first, and due to the cheksum mechanism of this task, the tar extraction - # will be flagged as `up-to-date`, and the same process will run again during - # `yscope-dev-utils:cmake:install-remote-tar`, ensuring that our library install will succeed. - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - INCLUDE_PATTERNS: ["*/runtime/Cpp"] - NUM_COMPONENTS_TO_STRIP: 3 - OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/{{.G_ANTLR_RUNTIME_LIB_NAME}}-extracted" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DANTLR4_INSTALL=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - # Set CMP0135 so that extracted files use the current timestamp as their modification - # timestamp, which ensures the library gets rebuilt if the extracted files change. - - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" - LIB_NAME: "{{.G_ANTLR_RUNTIME_LIB_NAME}}" - TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ - {{.G_ANTLR_VERSION}}.tar.gz" - catch2: internal: true run: "once" diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index e3a7bd6f4e..c3f07c3725 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -23,6 +23,7 @@ tasks: CPP_CORE_TASKS: - "absl" - "antlr-jar" + - "antlr-runtime" - "boost" - "catch2" - "date" @@ -47,5 +48,3 @@ tasks: - for: var: "CPP_CORE_TASKS" task: ":{{.ITEM}}" - cmds: - - task: ":antlr-runtime" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 66dc0422ba..41aa973137 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,6 +1,63 @@ version: "3" tasks: + antlr-runtime: + internal: true + vars: + LIB_NAME: "antlr4-runtime" + + # Paths + BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-build" + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" + run: "once" + deps: + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + + # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension + # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and + # `NUM_COMPONENTS_TO_STRIP` parameters. + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + INCLUDE_PATTERNS: ["*/runtime/Cpp"] + NUM_COMPONENTS_TO_STRIP: 3 + OUTPUT_DIR: "{{.SOURCE_DIR}}" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" + - task: "yscope-dev-utils:cmake:generate" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + EXTRA_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + SOURCE_DIR: "{{.SOURCE_DIR}}" + - task: "yscope-dev-utils:cmake:build" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" + - task: "yscope-dev-utils:cmake:install" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + CMAKE_PACKAGE_NAME: "{{.LIB_NAME}}" + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + boost: internal: true vars: diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index dfe7125c81..ce241fb9e2 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -45,6 +45,7 @@ tasks: CPP_SPIDER_TASKS: - "absl" - "antlr-jar" + - "antlr-runtime" - "boost" - "fmt" - "mariadb-connector-cpp" @@ -56,5 +57,3 @@ tasks: - for: var: "CPP_SPIDER_TASKS" task: ":{{.ITEM}}" - cmds: - - task: ":antlr-runtime" From 7e8221d7999a37a8959d4511b05070e901d99d78 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 7 Oct 2025 07:04:49 -0400 Subject: [PATCH 16/30] Change installation method of antlr --- taskfiles/deps/cmake-libs.yaml | 20 ++++++++++++ taskfiles/deps/misc-libs.yaml | 57 ---------------------------------- 2 files changed, 20 insertions(+), 57 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index a30cdc339b..775bcd718a 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -26,6 +26,26 @@ tasks: TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ abseil-cpp-20250512.0.tar.gz" + antlr-runtime: + internal: true + run: "once" + cmds: + - task: "utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + CMAKE_SOURCE_DIR: "runtime/Cpp" + LIB_NAME: "antlr4-runtime" + TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ + {{.G_ANTLR_VERSION}}.tar.gz" + catch2: internal: true run: "once" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 41aa973137..66dc0422ba 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -1,63 +1,6 @@ version: "3" tasks: - antlr-runtime: - internal: true - vars: - LIB_NAME: "antlr4-runtime" - - # Paths - BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-build" - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" - INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" - run: "once" - deps: - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - - # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension - # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and - # `NUM_COMPONENTS_TO_STRIP` parameters. - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - INCLUDE_PATTERNS: ["*/runtime/Cpp"] - NUM_COMPONENTS_TO_STRIP: 3 - OUTPUT_DIR: "{{.SOURCE_DIR}}" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - - task: "yscope-dev-utils:cmake:generate" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - EXTRA_ARGS: - - "-DANTLR4_INSTALL=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - # Set CMP0135 so that extracted files use the current timestamp as their modification - # timestamp, which ensures the library gets rebuilt if the extracted files change. - - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" - SOURCE_DIR: "{{.SOURCE_DIR}}" - - task: "yscope-dev-utils:cmake:build" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" - - task: "yscope-dev-utils:cmake:install" - vars: - BUILD_DIR: "{{.BUILD_DIR}}" - CMAKE_PACKAGE_NAME: "{{.LIB_NAME}}" - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" - - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] - boost: internal: true vars: From eb23f83bdefe30c0b4c265ecd09890965d527a62 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 7 Oct 2025 19:07:09 +0800 Subject: [PATCH 17/30] Apply suggestions from code review --- taskfiles/deps/main.yaml | 4 ++-- taskfiles/deps/misc-libs.yaml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 0b6ca7b4a7..70e4971feb 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -1,7 +1,7 @@ version: "3" includes: - # Main targets + # Main project targets core: "core.yaml" spider: "spider.yaml" log-viewer: "log-viewer.yaml" @@ -10,7 +10,7 @@ includes: utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - # Individual component tasks + # Individual library component installation tasks artifacts: flatten: true taskfile: "artifacts.yaml" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/misc-libs.yaml index 66dc0422ba..a187b446df 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/misc-libs.yaml @@ -23,7 +23,6 @@ tasks: boost-{{.VERSION}}-b2-nodocs.tar.gz" WORK_DIR: "{{.G_DEPS_CPP_DIR}}" - sqlite3: internal: true vars: From 5a2150cef9640ebc1cb15001d0fd9a5a96059356 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 14 Oct 2025 01:53:01 +0800 Subject: [PATCH 18/30] Disable build testing flags for libraries where applicable. Co-authored-by: sitaowang1998 --- taskfiles/deps/cmake-libs.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 775bcd718a..7ea1a4f848 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -18,6 +18,7 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: + - "-DABSL_BUILD_TESTING=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_CXX_STANDARD=20" - "-DCMAKE_INSTALL_MESSAGE=LAZY" @@ -71,6 +72,7 @@ tasks: CMAKE_GEN_ARGS: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DENABLE_DATE_TESTING=OFF" LIB_NAME: "date" TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" @@ -193,6 +195,7 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DINSTALL_LAYOUT=DEB" - "-DUSE_SYSTEM_INSTALLED_LIB=ON" + - "-DWITH_UNIT_TESTS=OFF" LIB_NAME: "mariadb-connector-cpp" TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ @@ -223,6 +226,7 @@ tasks: CMAKE_GEN_ARGS: - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" + - "-DENABLE_TESTS=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DENABLE_UNINSTALL=OFF" @@ -247,6 +251,7 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DMSGPACK_BUILD_DOCS=OFF" + - "-DMSGPACK_BUILD_TESTS=OFF" - "-DMSGPACK_CXX20=ON" LIB_NAME: "msgpack-cxx" TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" @@ -298,7 +303,8 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DSPDLOG_BUILD_EXAMPLE=OFF" - - "-DSPDLOG_BUILD_EXAMPLE_HO=OFF" + - "-DSPDLOG_BUILD_TESTS=OFF" + - "-DSPDLOG_BUILD_TESTS_HO=OFF" - "-DSPDLOG_FMT_EXTERNAL=ON" LIB_NAME: "spdlog" TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" From c890b06185ebada803f970ea733e7522018c8a06 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 14 Oct 2025 17:26:56 +0000 Subject: [PATCH 19/30] Revert "Disable build testing flags for libraries where applicable." This reverts commit 5a2150cef9640ebc1cb15001d0fd9a5a96059356. --- taskfiles/deps/cmake-libs.yaml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 7ea1a4f848..775bcd718a 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -18,7 +18,6 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: - - "-DABSL_BUILD_TESTING=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_CXX_STANDARD=20" - "-DCMAKE_INSTALL_MESSAGE=LAZY" @@ -72,7 +71,6 @@ tasks: CMAKE_GEN_ARGS: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DENABLE_DATE_TESTING=OFF" LIB_NAME: "date" TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" @@ -195,7 +193,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DINSTALL_LAYOUT=DEB" - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - - "-DWITH_UNIT_TESTS=OFF" LIB_NAME: "mariadb-connector-cpp" TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ @@ -226,7 +223,6 @@ tasks: CMAKE_GEN_ARGS: - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" - - "-DENABLE_TESTS=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DENABLE_UNINSTALL=OFF" @@ -251,7 +247,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DMSGPACK_BUILD_DOCS=OFF" - - "-DMSGPACK_BUILD_TESTS=OFF" - "-DMSGPACK_CXX20=ON" LIB_NAME: "msgpack-cxx" TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" @@ -303,8 +298,7 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DSPDLOG_BUILD_EXAMPLE=OFF" - - "-DSPDLOG_BUILD_TESTS=OFF" - - "-DSPDLOG_BUILD_TESTS_HO=OFF" + - "-DSPDLOG_BUILD_EXAMPLE_HO=OFF" - "-DSPDLOG_FMT_EXTERNAL=ON" LIB_NAME: "spdlog" TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" From a958ed16fa1000dc642bbee5498a47a988008b2b Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 14 Oct 2025 20:01:22 +0000 Subject: [PATCH 20/30] sanitize build flags --- taskfiles/deps/cmake-libs.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 775bcd718a..7622fc87c0 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -34,6 +34,7 @@ tasks: vars: CMAKE_GEN_ARGS: - "-DANTLR4_INSTALL=ON" + - "-DANTLR_BUILD_CPP_TESTS=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" @@ -53,7 +54,9 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" + - "-DCATCH_BUILD_TESTING=OFF" + - "-DCATCH_INSTALL_DOCS=OFF" + - "-DCATCH_INSTALL_EXTRAS=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_CXX_STANDARD=20" - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" @@ -82,6 +85,7 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DFMT_DOC=OFF" @@ -193,6 +197,7 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DINSTALL_LAYOUT=DEB" - "-DUSE_SYSTEM_INSTALLED_LIB=ON" + - "-DWITH_UNIT_TESTS=OFF" LIB_NAME: "mariadb-connector-cpp" TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ @@ -225,6 +230,7 @@ tasks: - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DENABLE_EXAMPLES=OFF" - "-DENABLE_UNINSTALL=OFF" LIB_NAME: "mongocxx" TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" @@ -278,8 +284,10 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DSIMDJSON_BUILD_STATIC_LIB=ON" LIB_NAME: "simdjson" TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" @@ -298,7 +306,7 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DSPDLOG_BUILD_EXAMPLE=OFF" - - "-DSPDLOG_BUILD_EXAMPLE_HO=OFF" + - "-DSPDLOG_BUILD_SHARED=ON" - "-DSPDLOG_FMT_EXTERNAL=ON" LIB_NAME: "spdlog" TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" @@ -327,9 +335,9 @@ tasks: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DYAML_CPP_BUILD_TESTS=OFF" LIB_NAME: "yaml-cpp" TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" @@ -377,7 +385,6 @@ tasks: CMAKE_GEN_ARGS: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DZSTD_BUILD_CONTRIB=OFF" - "-DZSTD_BUILD_PROGRAMS=OFF" - "-DZSTD_BUILD_SHARED=ON" - "-DZSTD_BUILD_STATIC=ON" From 4a6e7746aa8d26699a91396537f730d8e08b2b6f Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Wed, 15 Oct 2025 04:03:16 +0800 Subject: [PATCH 21/30] Apply suggestions from code review Co-authored-by: sitaowang1998 --- taskfiles/deps/cmake-libs.yaml | 10 +++++----- taskfiles/deps/main.yaml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 7622fc87c0..1dc89dd43b 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -97,7 +97,7 @@ tasks: liblzma: internal: true vars: - COMMON_CMAKE_GEN_ARGS: + LIBLZMA_CMAKE_GEN_ARGS: - "-DBUILD_TESTING=OFF" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" @@ -116,28 +116,28 @@ tasks: vars: BUILD_SHARED_LIBS: true COMMON_CMAKE_GEN_ARGS: - ref: ".COMMON_CMAKE_GEN_ARGS" + ref: ".LIBLZMA_CMAKE_GEN_ARGS" TARBALL_SHA256: "{{.TARBALL_SHA256}}" TARBALL_URL: "{{.TARBALL_URL}}" - task: "liblzma-install" vars: BUILD_SHARED_LIBS: false COMMON_CMAKE_GEN_ARGS: - ref: ".COMMON_CMAKE_GEN_ARGS" + ref: ".LIBLZMA_CMAKE_GEN_ARGS" TARBALL_SHA256: "{{.TARBALL_SHA256}}" TARBALL_URL: "{{.TARBALL_URL}}" liblzma-install: internal: true requires: - vars: ["BUILD_SHARED_LIBS", "COMMON_CMAKE_GEN_ARGS", "TARBALL_SHA256", "TARBALL_URL"] + vars: ["BUILD_SHARED_LIBS", "LIBLZMA_CMAKE_GEN_ARGS", "TARBALL_SHA256", "TARBALL_URL"] cmds: - task: "utils:install-remote-cmake-lib" vars: CMAKE_GEN_ARGS: - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" - >- - {{ join " " .COMMON_CMAKE_GEN_ARGS }} + {{ join " " .LIBLZMA_CMAKE_GEN_ARGS }} LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" TARBALL_SHA256: "{{.TARBALL_SHA256}}" TARBALL_URL: "{{.TARBALL_URL}}" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 70e4971feb..ab20302e0f 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -42,8 +42,8 @@ tasks: default: deps: - "core" - - "spider" - "log-viewer" + - "spider" init: internal: true From 544b0c99680f89e77ee3728abd310822dba16929 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 14 Oct 2025 20:36:15 +0000 Subject: [PATCH 22/30] fix bug --- taskfiles/deps/cmake-libs.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml index 1dc89dd43b..a1fd82296f 100644 --- a/taskfiles/deps/cmake-libs.yaml +++ b/taskfiles/deps/cmake-libs.yaml @@ -115,14 +115,14 @@ tasks: - task: "liblzma-install" vars: BUILD_SHARED_LIBS: true - COMMON_CMAKE_GEN_ARGS: + LIBLZMA_CMAKE_GEN_ARGS: ref: ".LIBLZMA_CMAKE_GEN_ARGS" TARBALL_SHA256: "{{.TARBALL_SHA256}}" TARBALL_URL: "{{.TARBALL_URL}}" - task: "liblzma-install" vars: BUILD_SHARED_LIBS: false - COMMON_CMAKE_GEN_ARGS: + LIBLZMA_CMAKE_GEN_ARGS: ref: ".LIBLZMA_CMAKE_GEN_ARGS" TARBALL_SHA256: "{{.TARBALL_SHA256}}" TARBALL_URL: "{{.TARBALL_URL}}" From 1bcc79a46e31376d60a3d410d9484c91a4844562 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 16 Oct 2025 04:00:24 -0400 Subject: [PATCH 23/30] Properly checksum all installation tasks --- taskfiles/deps/cmake-libs.yaml | 395 ------------------ taskfiles/deps/installs/absl.yaml | 18 + taskfiles/deps/installs/all.yaml | 31 ++ .../antlr-jar.yaml} | 8 +- taskfiles/deps/installs/antlr-runtime.yaml | 25 ++ taskfiles/deps/installs/boost.yaml | 24 ++ taskfiles/deps/installs/catch2.yaml | 21 + taskfiles/deps/installs/date.yaml | 16 + taskfiles/deps/installs/fmt.yaml | 19 + taskfiles/deps/installs/liblzma.yaml | 42 ++ taskfiles/deps/installs/log-surgeon.yaml | 27 ++ taskfiles/deps/installs/lz4.yaml | 20 + .../deps/installs/mariadb-connector-cpp.yaml | 28 ++ taskfiles/deps/installs/microsoft.gsl.yaml | 17 + taskfiles/deps/installs/mongocxx.yaml | 24 ++ taskfiles/deps/installs/msgpack-cxx.yaml | 31 ++ taskfiles/deps/installs/nlohmann_json.yaml | 21 + taskfiles/deps/installs/simdjson.yaml | 18 + taskfiles/deps/installs/spdlog.yaml | 32 ++ .../{misc-libs.yaml => installs/sqlite3.yaml} | 26 +- taskfiles/deps/installs/utfcpp.yaml | 16 + taskfiles/deps/installs/yaml-cpp.yaml | 17 + taskfiles/deps/installs/ystdlib.yaml | 25 ++ taskfiles/deps/installs/zlib.yaml | 21 + taskfiles/deps/installs/zstd.yaml | 21 + taskfiles/deps/main.yaml | 23 +- taskfiles/deps/utils.yaml | 27 +- 27 files changed, 557 insertions(+), 436 deletions(-) delete mode 100644 taskfiles/deps/cmake-libs.yaml create mode 100644 taskfiles/deps/installs/absl.yaml create mode 100644 taskfiles/deps/installs/all.yaml rename taskfiles/deps/{artifacts.yaml => installs/antlr-jar.yaml} (81%) create mode 100644 taskfiles/deps/installs/antlr-runtime.yaml create mode 100644 taskfiles/deps/installs/boost.yaml create mode 100644 taskfiles/deps/installs/catch2.yaml create mode 100644 taskfiles/deps/installs/date.yaml create mode 100644 taskfiles/deps/installs/fmt.yaml create mode 100644 taskfiles/deps/installs/liblzma.yaml create mode 100644 taskfiles/deps/installs/log-surgeon.yaml create mode 100644 taskfiles/deps/installs/lz4.yaml create mode 100644 taskfiles/deps/installs/mariadb-connector-cpp.yaml create mode 100644 taskfiles/deps/installs/microsoft.gsl.yaml create mode 100644 taskfiles/deps/installs/mongocxx.yaml create mode 100644 taskfiles/deps/installs/msgpack-cxx.yaml create mode 100644 taskfiles/deps/installs/nlohmann_json.yaml create mode 100644 taskfiles/deps/installs/simdjson.yaml create mode 100644 taskfiles/deps/installs/spdlog.yaml rename taskfiles/deps/{misc-libs.yaml => installs/sqlite3.yaml} (60%) create mode 100644 taskfiles/deps/installs/utfcpp.yaml create mode 100644 taskfiles/deps/installs/yaml-cpp.yaml create mode 100644 taskfiles/deps/installs/ystdlib.yaml create mode 100644 taskfiles/deps/installs/zlib.yaml create mode 100644 taskfiles/deps/installs/zstd.yaml diff --git a/taskfiles/deps/cmake-libs.yaml b/taskfiles/deps/cmake-libs.yaml deleted file mode 100644 index a1fd82296f..0000000000 --- a/taskfiles/deps/cmake-libs.yaml +++ /dev/null @@ -1,395 +0,0 @@ -version: "3" - -vars: - # Library names - G_BOOST_LIB_NAME: "Boost" - G_FMT_LIB_NAME: "fmt" - G_GSL_LIB_NAME: "Microsoft.GSL" - -# NOTE: For dependencies built using CMake, we set CMP0074 to NEW whenever: -# - a component's minimum required CMake version is less than 3.27 (where CMP0074 defaults to OLD); -# and -# - the component depends on another via `_ROOT`. -tasks: - absl: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_CXX_STANDARD=20" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "absl" - TARBALL_SHA256: "7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669" - TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ - abseil-cpp-20250512.0.tar.gz" - - antlr-runtime: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DANTLR4_INSTALL=ON" - - "-DANTLR_BUILD_CPP_TESTS=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - # Set CMP0135 so that extracted files use the current timestamp as their modification - # timestamp, which ensures the library gets rebuilt if the extracted files change. - - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" - CMAKE_SOURCE_DIR: "runtime/Cpp" - LIB_NAME: "antlr4-runtime" - TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" - TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ - {{.G_ANTLR_VERSION}}.tar.gz" - - catch2: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCATCH_BUILD_TESTING=OFF" - - "-DCATCH_INSTALL_DOCS=OFF" - - "-DCATCH_INSTALL_EXTRAS=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_CXX_STANDARD=20" - - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "Catch2" - TARBALL_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" - TARBALL_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz" - - date: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "date" - TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" - TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" - - fmt: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DFMT_DOC=OFF" - - "-DFMT_TEST=OFF" - LIB_NAME: "{{.G_FMT_LIB_NAME}}" - TARBALL_SHA256: "bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af" - TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/11.2.0.tar.gz" - - liblzma: - internal: true - vars: - LIBLZMA_CMAKE_GEN_ARGS: - - "-DBUILD_TESTING=OFF" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DXZ_DOC=OFF" - - "-DXZ_TOOL_LZMADEC=OFF" - - "-DXZ_TOOL_LZMAINFO=OFF" - - "-DXZ_TOOL_SCRIPTS=OFF" - - "-DXZ_TOOL_SYMLINKS_LZMA=OFF" - - "-DXZ_TOOL_XZ=OFF" - - "-DXZ_TOOL_XZDEC=OFF" - TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543" - TARBALL_URL: "https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.gz" - run: "once" - deps: - - task: "liblzma-install" - vars: - BUILD_SHARED_LIBS: true - LIBLZMA_CMAKE_GEN_ARGS: - ref: ".LIBLZMA_CMAKE_GEN_ARGS" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - task: "liblzma-install" - vars: - BUILD_SHARED_LIBS: false - LIBLZMA_CMAKE_GEN_ARGS: - ref: ".LIBLZMA_CMAKE_GEN_ARGS" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - liblzma-install: - internal: true - requires: - vars: ["BUILD_SHARED_LIBS", "LIBLZMA_CMAKE_GEN_ARGS", "TARBALL_SHA256", "TARBALL_URL"] - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" - - >- - {{ join " " .LIBLZMA_CMAKE_GEN_ARGS }} - LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" - TARBALL_SHA256: "{{.TARBALL_SHA256}}" - TARBALL_URL: "{{.TARBALL_URL}}" - - log-surgeon: - internal: true - run: "once" - deps: - - "fmt" - - "microsoft.gsl" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_GSL_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-Dlog_surgeon_BUILD_TESTING=OFF" - LIB_NAME: "log_surgeon" - TARBALL_SHA256: "69a99e0804a52c6b6397c5e7eabecc9bb4915d0145632c66fc63ad13678ff56a" - TARBALL_URL: "https://github.com/y-scope/log-surgeon/archive/a722d07.tar.gz" - - lz4: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DBUILD_STATIC_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DLZ4_BUILD_CLI=OFF" - CMAKE_SOURCE_DIR: "build/cmake" - LIB_NAME: "lz4" - TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" - TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" - - mariadb-connector-cpp: - internal: true - platforms: ["linux"] - preconditions: - # NOTE: The MariaDB connector is only required for building Spider, which is only supported on - # Ubuntu. `INSTALL_LAYOUT` is currently hardcoded to "DEB". To support other Linux distros: - # - Update the precondition accordingly. - # - Make `INSTALL_LAYOUT` configurable. - - >- - source /etc/os-release && [[ "$ID" == "ubuntu" ]] - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DINSTALL_LAYOUT=DEB" - - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - - "-DWITH_UNIT_TESTS=OFF" - LIB_NAME: "mariadb-connector-cpp" - TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" - TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ - tags/1.1.5.tar.gz" - - microsoft.gsl: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DGSL_TEST=OFF" - LIB_NAME: "{{.G_GSL_LIB_NAME}}" - TARBALL_SHA256: "f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9" - TARBALL_URL: "https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz" - - mongocxx: - internal: true - vars: - VERSION: "r4.1.1" - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" - - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DENABLE_EXAMPLES=OFF" - - "-DENABLE_UNINSTALL=OFF" - LIB_NAME: "mongocxx" - TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" - TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ - /mongo-cxx-driver-{{.VERSION}}.tar.gz" - - msgpack-cxx: - internal: true - vars: - VERSION: "7.0.0" - run: "once" - deps: - - task: "boost" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - - "-DMSGPACK_BUILD_DOCS=OFF" - - "-DMSGPACK_CXX20=ON" - LIB_NAME: "msgpack-cxx" - TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" - TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ - /msgpack-cxx-{{.VERSION}}.tar.gz" - - nlohmann_json: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DJSON_BuildTests=OFF" - LIB_NAME: "nlohmann_json" - TARBALL_SHA256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" - - # NOTE: We use the GitHub-generated source tarball for this version rather than the - # release tarball, since the latter is served from githubusercontent.com which is blocked - # by some developers' firewalls. The contents of the former are a superset of the latter. - TARBALL_URL: "https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz" - - simdjson: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DSIMDJSON_BUILD_STATIC_LIB=ON" - LIB_NAME: "simdjson" - TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" - TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" - - spdlog: - internal: true - run: "once" - deps: - - "fmt" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - - "-DSPDLOG_BUILD_EXAMPLE=OFF" - - "-DSPDLOG_BUILD_SHARED=ON" - - "-DSPDLOG_FMT_EXTERNAL=ON" - LIB_NAME: "spdlog" - TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" - - # NOTE: Since spdlog depends on fmt, we need to choose a version of spdlog that's - # compatible with the version of fmt we use. - TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" - - utfcpp: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - LIB_NAME: "utfcpp" - TARBALL_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" - TARBALL_URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" - - yaml-cpp: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DYAML_CPP_BUILD_TESTS=OFF" - LIB_NAME: "yaml-cpp" - TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" - TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" - - ystdlib: - internal: true - run: "once" - deps: - - task: "boost" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" - - "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" - - "-Dystdlib_BUILD_TESTING=OFF" - LIB_NAME: "ystdlib" - TARBALL_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8" - TARBALL_URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz" - - zlib: - internal: true - vars: - LIB_NAME: "zlib" - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DBUILD_SHARED_LIBS=ON" - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DCMAKE_INSTALL_PREFIX={{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - - "-DZLIB_BUILD_EXAMPLES=OFF" - LIB_NAME: "{{.LIB_NAME}}" - TARBALL_SHA256: "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23" - TARBALL_URL: "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" - - zstd: - internal: true - run: "once" - cmds: - - task: "utils:install-remote-cmake-lib" - vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - - "-DZSTD_BUILD_PROGRAMS=OFF" - - "-DZSTD_BUILD_SHARED=ON" - - "-DZSTD_BUILD_STATIC=ON" - - "-DZSTD_BUILD_TESTS=OFF" - CMAKE_SOURCE_DIR: "build/cmake" - LIB_NAME: "zstd" - TARBALL_SHA256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" - TARBALL_URL: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" diff --git a/taskfiles/deps/installs/absl.yaml b/taskfiles/deps/installs/absl.yaml new file mode 100644 index 0000000000..dbdfb76cbc --- /dev/null +++ b/taskfiles/deps/installs/absl.yaml @@ -0,0 +1,18 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_CXX_STANDARD=20" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + INSTALL_TASK_NAME: "absl" + LIB_NAME: "absl" + TARBALL_SHA256: "7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669" + TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ + abseil-cpp-20250512.0.tar.gz" diff --git a/taskfiles/deps/installs/all.yaml b/taskfiles/deps/installs/all.yaml new file mode 100644 index 0000000000..3fc2196569 --- /dev/null +++ b/taskfiles/deps/installs/all.yaml @@ -0,0 +1,31 @@ +version: "3" + +# NOTE: For dependencies built using CMake, we set CMP0074 to NEW whenever: +# - a component's minimum required CMake version is less than 3.27 (where CMP0074 defaults to OLD); +# and +# - the component depends on another via `_ROOT`. + +includes: + absl: "absl.yaml" + antlr-jar: "antlr-jar.yaml" + antlr-runtime: "antlr-runtime.yaml" + boost: "boost.yaml" + catch2: "catch2.yaml" + date: "date.yaml" + fmt: "fmt.yaml" + liblzma: "liblzma.yaml" + log-surgeon: "log-surgeon.yaml" + lz4: "lz4.yaml" + mariadb-connector-cpp: "mariadb-connector-cpp.yaml" + microsoft.gsl: "microsoft.gsl.yaml" + mongocxx: "mongocxx.yaml" + msgpack-cxx: "msgpack-cxx.yaml" + nlohmann_json: "nlohmann_json.yaml" + simdjson: "simdjson.yaml" + spdlog: "spdlog.yaml" + sqlite3: "sqlite3.yaml" + utfcpp: "utfcpp.yaml" + yaml-cpp: "yaml-cpp.yaml" + ystdlib: "ystdlib.yaml" + zlib: "zlib.yaml" + zstd: "zstd.yaml" diff --git a/taskfiles/deps/artifacts.yaml b/taskfiles/deps/installs/antlr-jar.yaml similarity index 81% rename from taskfiles/deps/artifacts.yaml rename to taskfiles/deps/installs/antlr-jar.yaml index b868f4966b..a00052ee9e 100644 --- a/taskfiles/deps/artifacts.yaml +++ b/taskfiles/deps/installs/antlr-jar.yaml @@ -1,27 +1,27 @@ version: "3" tasks: - antlr-jar: + default: internal: true vars: CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" run: "once" deps: - - task: "yscope-dev-utils:checksum:validate" + - task: ":yscope-dev-utils:checksum:validate" vars: CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: - "{{.OUTPUT_FILE}}" cmds: - - task: "yscope-dev-utils:remote:curl" + - task: ":yscope-dev-utils:remote:curl" vars: FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" OUTPUT_FILE: "{{.OUTPUT_FILE}}" URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" # This command must be last - - task: "yscope-dev-utils:checksum:compute" + - task: ":yscope-dev-utils:checksum:compute" vars: CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: diff --git a/taskfiles/deps/installs/antlr-runtime.yaml b/taskfiles/deps/installs/antlr-runtime.yaml new file mode 100644 index 0000000000..f584ac4bce --- /dev/null +++ b/taskfiles/deps/installs/antlr-runtime.yaml @@ -0,0 +1,25 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DANTLR_BUILD_CPP_TESTS=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + CMAKE_SOURCE_DIR: "runtime/Cpp" + INSTALL_TASK_NAME: "antlr-runtime" + LIB_NAME: "antlr4-runtime" + TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ + {{.G_ANTLR_VERSION}}.tar.gz" + diff --git a/taskfiles/deps/installs/boost.yaml b/taskfiles/deps/installs/boost.yaml new file mode 100644 index 0000000000..5fe94b677f --- /dev/null +++ b/taskfiles/deps/installs/boost.yaml @@ -0,0 +1,24 @@ +version: "3" + +tasks: + default: + internal: true + vars: + VERSION: "1.87.0" + run: "once" + cmds: + - task: ":yscope-dev-utils:boost:download-and-install" + vars: + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f" + TARGETS: + - "filesystem" + - "iostreams" + - "process" + - "program_options" + - "regex" + - "system" + - "url" + URL: "https://github.com/boostorg/boost/releases/download/boost-{{.VERSION}}/\ + boost-{{.VERSION}}-b2-nodocs.tar.gz" + WORK_DIR: "{{.G_DEPS_CPP_DIR}}" diff --git a/taskfiles/deps/installs/catch2.yaml b/taskfiles/deps/installs/catch2.yaml new file mode 100644 index 0000000000..a975c2591a --- /dev/null +++ b/taskfiles/deps/installs/catch2.yaml @@ -0,0 +1,21 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCATCH_BUILD_TESTING=OFF" + - "-DCATCH_INSTALL_DOCS=OFF" + - "-DCATCH_INSTALL_EXTRAS=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_CXX_STANDARD=20" + - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + INSTALL_TASK_NAME: "catch2" + LIB_NAME: "Catch2" + TARBALL_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" + TARBALL_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz" diff --git a/taskfiles/deps/installs/date.yaml b/taskfiles/deps/installs/date.yaml new file mode 100644 index 0000000000..31350c6ea8 --- /dev/null +++ b/taskfiles/deps/installs/date.yaml @@ -0,0 +1,16 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + INSTALL_TASK_NAME: "date" + LIB_NAME: "date" + TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" + TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" diff --git a/taskfiles/deps/installs/fmt.yaml b/taskfiles/deps/installs/fmt.yaml new file mode 100644 index 0000000000..05e44de85c --- /dev/null +++ b/taskfiles/deps/installs/fmt.yaml @@ -0,0 +1,19 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DFMT_DOC=OFF" + - "-DFMT_TEST=OFF" + INSTALL_TASK_NAME: "fmt" + LIB_NAME: "{{.G_FMT_LIB_NAME}}" + TARBALL_SHA256: "bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af" + TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/11.2.0.tar.gz" diff --git a/taskfiles/deps/installs/liblzma.yaml b/taskfiles/deps/installs/liblzma.yaml new file mode 100644 index 0000000000..46184f6b7a --- /dev/null +++ b/taskfiles/deps/installs/liblzma.yaml @@ -0,0 +1,42 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + deps: + - task: "liblzma-install" + vars: + BUILD_SHARED_LIBS: true + - task: "liblzma-install" + vars: + BUILD_SHARED_LIBS: false + + liblzma-install: + internal: true + vars: + LIBLZMA_CMAKE_GEN_ARGS: + - "-DBUILD_TESTING=OFF" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DXZ_DOC=OFF" + - "-DXZ_TOOL_LZMADEC=OFF" + - "-DXZ_TOOL_LZMAINFO=OFF" + - "-DXZ_TOOL_SCRIPTS=OFF" + - "-DXZ_TOOL_SYMLINKS_LZMA=OFF" + - "-DXZ_TOOL_XZ=OFF" + - "-DXZ_TOOL_XZDEC=OFF" + requires: + vars: ["BUILD_SHARED_LIBS"] + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" + - >- + {{ join " " .LIBLZMA_CMAKE_GEN_ARGS }} + INSTALL_TASK_NAME: "liblzma" + LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" + TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543" + TARBALL_URL: >- + https://github.com/tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.gz diff --git a/taskfiles/deps/installs/log-surgeon.yaml b/taskfiles/deps/installs/log-surgeon.yaml new file mode 100644 index 0000000000..a93d2585c2 --- /dev/null +++ b/taskfiles/deps/installs/log-surgeon.yaml @@ -0,0 +1,27 @@ +version: "3" + +tasks: + default: + internal: true + vars: + DEPS: ["fmt", "microsoft.gsl"] + run: "once" + deps: + - for: + var: "DEPS" + task: ":{{.ITEM}}" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_GSL_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-Dlog_surgeon_BUILD_TESTING=OFF" + DEPS: + ref: ".DEPS" + INSTALL_TASK_NAME: "log-surgeon" + LIB_NAME: "log_surgeon" + TARBALL_SHA256: "69a99e0804a52c6b6397c5e7eabecc9bb4915d0145632c66fc63ad13678ff56a" + TARBALL_URL: "https://github.com/y-scope/log-surgeon/archive/a722d07.tar.gz" diff --git a/taskfiles/deps/installs/lz4.yaml b/taskfiles/deps/installs/lz4.yaml new file mode 100644 index 0000000000..035141864d --- /dev/null +++ b/taskfiles/deps/installs/lz4.yaml @@ -0,0 +1,20 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DBUILD_STATIC_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DLZ4_BUILD_CLI=OFF" + CMAKE_SOURCE_DIR: "build/cmake" + INSTALL_TASK_NAME: "lz4" + LIB_NAME: "lz4" + TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" + TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" diff --git a/taskfiles/deps/installs/mariadb-connector-cpp.yaml b/taskfiles/deps/installs/mariadb-connector-cpp.yaml new file mode 100644 index 0000000000..7948edc233 --- /dev/null +++ b/taskfiles/deps/installs/mariadb-connector-cpp.yaml @@ -0,0 +1,28 @@ +version: "3" + +tasks: + default: + internal: true + platforms: ["linux"] + preconditions: + # NOTE: The MariaDB connector is only required for building Spider, which is only supported on + # Ubuntu. `INSTALL_LAYOUT` is currently hardcoded to "DEB". To support other Linux distros: + # - Update the precondition accordingly. + # - Make `INSTALL_LAYOUT` configurable. + - >- + source /etc/os-release && [[ "$ID" == "ubuntu" ]] + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DINSTALL_LAYOUT=DEB" + - "-DUSE_SYSTEM_INSTALLED_LIB=ON" + - "-DWITH_UNIT_TESTS=OFF" + INSTALL_TASK_NAME: "mariadb-connector-cpp" + LIB_NAME: "mariadb-connector-cpp" + TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" + TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ + tags/1.1.5.tar.gz" diff --git a/taskfiles/deps/installs/microsoft.gsl.yaml b/taskfiles/deps/installs/microsoft.gsl.yaml new file mode 100644 index 0000000000..c72a0a4336 --- /dev/null +++ b/taskfiles/deps/installs/microsoft.gsl.yaml @@ -0,0 +1,17 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DGSL_TEST=OFF" + INSTALL_TASK_NAME: "microsoft.gsl" + LIB_NAME: "{{.G_GSL_LIB_NAME}}" + TARBALL_SHA256: "f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9" + TARBALL_URL: "https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz" diff --git a/taskfiles/deps/installs/mongocxx.yaml b/taskfiles/deps/installs/mongocxx.yaml new file mode 100644 index 0000000000..1629f98073 --- /dev/null +++ b/taskfiles/deps/installs/mongocxx.yaml @@ -0,0 +1,24 @@ +version: "3" + +tasks: + default: + internal: true + vars: + VERSION: "r4.1.1" + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_AND_STATIC_LIBS=ON" + - "-DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DENABLE_EXAMPLES=OFF" + - "-DENABLE_UNINSTALL=OFF" + INSTALL_TASK_NAME: "mongocxx" + LIB_NAME: "mongocxx" + TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" + TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ + /mongo-cxx-driver-{{.VERSION}}.tar.gz" + diff --git a/taskfiles/deps/installs/msgpack-cxx.yaml b/taskfiles/deps/installs/msgpack-cxx.yaml new file mode 100644 index 0000000000..52576f2d80 --- /dev/null +++ b/taskfiles/deps/installs/msgpack-cxx.yaml @@ -0,0 +1,31 @@ +version: "3" + +tasks: + default: + internal: true + vars: + DEPS: ["boost"] + VERSION: "7.0.0" + run: "once" + deps: + - for: + var: "DEPS" + task: ":{{.ITEM}}" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" + - "-DMSGPACK_BUILD_DOCS=OFF" + - "-DMSGPACK_CXX20=ON" + DEPS: + ref: ".DEPS" + INSTALL_TASK_NAME: "msgpack-cxx" + LIB_NAME: "msgpack-cxx" + TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" + TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ + /msgpack-cxx-{{.VERSION}}.tar.gz" + diff --git a/taskfiles/deps/installs/nlohmann_json.yaml b/taskfiles/deps/installs/nlohmann_json.yaml new file mode 100644 index 0000000000..f9177e8c9e --- /dev/null +++ b/taskfiles/deps/installs/nlohmann_json.yaml @@ -0,0 +1,21 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DJSON_BuildTests=OFF" + INSTALL_TASK_NAME: "nlohmann_json" + LIB_NAME: "nlohmann_json" + TARBALL_SHA256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" + + # NOTE: We use the GitHub-generated source tarball for this version rather than the + # release tarball, since the latter is served from githubusercontent.com which is blocked + # by some developers' firewalls. The contents of the former are a superset of the latter. + TARBALL_URL: "https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz" diff --git a/taskfiles/deps/installs/simdjson.yaml b/taskfiles/deps/installs/simdjson.yaml new file mode 100644 index 0000000000..3015c4840e --- /dev/null +++ b/taskfiles/deps/installs/simdjson.yaml @@ -0,0 +1,18 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DSIMDJSON_BUILD_STATIC_LIB=ON" + INSTALL_TASK_NAME: "simdjson" + LIB_NAME: "simdjson" + TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" + TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" diff --git a/taskfiles/deps/installs/spdlog.yaml b/taskfiles/deps/installs/spdlog.yaml new file mode 100644 index 0000000000..42dcfd079f --- /dev/null +++ b/taskfiles/deps/installs/spdlog.yaml @@ -0,0 +1,32 @@ +version: "3" + +tasks: + default: + internal: true + vars: + DEPS: ["fmt"] + run: "once" + deps: + - for: + var: "DEPS" + task: ":{{.ITEM}}" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_FMT_LIB_NAME}}.cmake" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" + - "-DSPDLOG_BUILD_EXAMPLE=OFF" + - "-DSPDLOG_BUILD_SHARED=ON" + - "-DSPDLOG_FMT_EXTERNAL=ON" + DEPS: + ref: ".DEPS" + INSTALL_TASK_NAME: "spdlog" + LIB_NAME: "spdlog" + TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" + + # NOTE: Since spdlog depends on fmt, we need to choose a version of spdlog that's + # compatible with the version of fmt we use. + TARBALL_URL: "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" diff --git a/taskfiles/deps/misc-libs.yaml b/taskfiles/deps/installs/sqlite3.yaml similarity index 60% rename from taskfiles/deps/misc-libs.yaml rename to taskfiles/deps/installs/sqlite3.yaml index a187b446df..804e516e62 100644 --- a/taskfiles/deps/misc-libs.yaml +++ b/taskfiles/deps/installs/sqlite3.yaml @@ -1,29 +1,7 @@ version: "3" tasks: - boost: - internal: true - vars: - VERSION: "1.87.0" - run: "once" - cmds: - - task: "yscope-dev-utils:boost:download-and-install" - vars: - CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f" - TARGETS: - - "filesystem" - - "iostreams" - - "process" - - "program_options" - - "regex" - - "system" - - "url" - URL: "https://github.com/boostorg/boost/releases/download/boost-{{.VERSION}}/\ - boost-{{.VERSION}}-b2-nodocs.tar.gz" - WORK_DIR: "{{.G_DEPS_CPP_DIR}}" - - sqlite3: + default: internal: true vars: LIB_NAME: "sqlite3" @@ -36,7 +14,7 @@ tasks: SRC_DIR: "{{.EXTRACTION_DIR}}/{{.ZIP_FILENAME_STEM}}" run: "once" cmds: - - task: "yscope-dev-utils:remote:download-and-extract-zip" + - task: ":yscope-dev-utils:remote:download-and-extract-zip" vars: CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" FILE_SHA256: "999826fe4c871f18919fdb8ed7ec9dd8217180854dd1fe21eea96aed36186729" diff --git a/taskfiles/deps/installs/utfcpp.yaml b/taskfiles/deps/installs/utfcpp.yaml new file mode 100644 index 0000000000..34c6a22329 --- /dev/null +++ b/taskfiles/deps/installs/utfcpp.yaml @@ -0,0 +1,16 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + INSTALL_TASK_NAME: "utfcpp" + LIB_NAME: "utfcpp" + TARBALL_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" + TARBALL_URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" diff --git a/taskfiles/deps/installs/yaml-cpp.yaml b/taskfiles/deps/installs/yaml-cpp.yaml new file mode 100644 index 0000000000..b9d8924c50 --- /dev/null +++ b/taskfiles/deps/installs/yaml-cpp.yaml @@ -0,0 +1,17 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DYAML_CPP_BUILD_TESTS=OFF" + INSTALL_TASK_NAME: "yaml-cpp" + LIB_NAME: "yaml-cpp" + TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" + TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" diff --git a/taskfiles/deps/installs/ystdlib.yaml b/taskfiles/deps/installs/ystdlib.yaml new file mode 100644 index 0000000000..09584e3b3f --- /dev/null +++ b/taskfiles/deps/installs/ystdlib.yaml @@ -0,0 +1,25 @@ +version: "3" + +tasks: + default: + internal: true + vars: + DEPS: ["boost"] + run: "once" + deps: + - for: + var: "DEPS" + task: ":{{.ITEM}}" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" + - "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" + - "-Dystdlib_BUILD_TESTING=OFF" + DEPS: + ref: ".DEPS" + INSTALL_TASK_NAME: "ystdlib" + LIB_NAME: "ystdlib" + TARBALL_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8" + TARBALL_URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz" diff --git a/taskfiles/deps/installs/zlib.yaml b/taskfiles/deps/installs/zlib.yaml new file mode 100644 index 0000000000..54472416d5 --- /dev/null +++ b/taskfiles/deps/installs/zlib.yaml @@ -0,0 +1,21 @@ +version: "3" + +tasks: + default: + internal: true + vars: + LIB_NAME: "zlib" + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DBUILD_SHARED_LIBS=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DCMAKE_INSTALL_PREFIX={{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + - "-DZLIB_BUILD_EXAMPLES=OFF" + INSTALL_TASK_NAME: "zlib" + LIB_NAME: "{{.LIB_NAME}}" + TARBALL_SHA256: "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23" + TARBALL_URL: "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/taskfiles/deps/installs/zstd.yaml b/taskfiles/deps/installs/zstd.yaml new file mode 100644 index 0000000000..fab9d66347 --- /dev/null +++ b/taskfiles/deps/installs/zstd.yaml @@ -0,0 +1,21 @@ +version: "3" + +tasks: + default: + internal: true + run: "once" + cmds: + - task: ":utils:install-remote-cmake-lib" + vars: + CMAKE_GEN_ARGS: + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + - "-DZSTD_BUILD_PROGRAMS=OFF" + - "-DZSTD_BUILD_SHARED=ON" + - "-DZSTD_BUILD_STATIC=ON" + - "-DZSTD_BUILD_TESTS=OFF" + CMAKE_SOURCE_DIR: "build/cmake" + INSTALL_TASK_NAME: "zstd" + LIB_NAME: "zstd" + TARBALL_SHA256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" + TARBALL_URL: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index ab20302e0f..fdf8842280 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -3,24 +3,18 @@ version: "3" includes: # Main project targets core: "core.yaml" - spider: "spider.yaml" log-viewer: "log-viewer.yaml" + spider: "spider.yaml" + + # Individual library component installation tasks + components: + flatten: true + taskfile: "installs/all.yaml" # Utils utils: "utils.yaml" yscope-dev-utils: "../../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml" - # Individual library component installation tasks - artifacts: - flatten: true - taskfile: "artifacts.yaml" - cmake-libs: - flatten: true - taskfile: "cmake-libs.yaml" - misc-libs: - flatten: true - taskfile: "misc-libs.yaml" - vars: # Directories G_DEPS_DIR: "{{.G_BUILD_DIR}}/deps" @@ -38,6 +32,11 @@ vars: G_ANTLR_VERSION: "4.13.2" G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + # Library names + G_BOOST_LIB_NAME: "Boost" + G_FMT_LIB_NAME: "fmt" + G_GSL_LIB_NAME: "Microsoft.GSL" + tasks: default: deps: diff --git a/taskfiles/deps/utils.yaml b/taskfiles/deps/utils.yaml index 847f2410d2..a011dfed44 100644 --- a/taskfiles/deps/utils.yaml +++ b/taskfiles/deps/utils.yaml @@ -29,6 +29,7 @@ tasks: # Installs a CMake-based library from a remote tarball, generates a corresponding settings file, # and computes a checksum for the installation directory. # + # @param {string} INSTALL_TASK_NAME # @param {string} LIB_NAME # @param {string} TARBALL_SHA256 # @param {string} TARBALL_URL @@ -38,13 +39,37 @@ tasks: # containing the project's top level CMakeLists.txt. install-remote-cmake-lib: internal: true + label: "{{.TASK}}:{{.INSTALL_TASK_NAME}}" vars: CMAKE_GEN_ARGS: ref: "default (list) .CMAKE_GEN_ARGS" CMAKE_SOURCE_DIR: >- {{default "." .CMAKE_SOURCE_DIR}} - INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + DEPS: + ref: "default (list) .DEPS" + INSTALL_DIR_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" + + INSTALL_SOURCE_GLOB: >- + {{- if eq (len .DEPS) 0 -}} + {{ printf "%s.yaml" .INSTALL_TASK_NAME }} + {{- else -}} + {{"{"}} + {{- printf "%s.yaml" .INSTALL_TASK_NAME -}} + {{- range ($.DEPS) -}} + {{- printf ",%s.yaml" . -}} + {{- end -}} + {{- "}"}} + {{- end -}} + requires: + vars: ["INSTALL_TASK_NAME", "LIB_NAME", "TARBALL_SHA256", "TARBALL_URL"] + sources: + - "{{.ROOT_DIR}}/Taskfile.yaml" + - "{{.ROOT_DIR}}/taskfiles/deps/*.yaml" + - "{{.ROOT_DIR}}/taskfiles/deps/installs/{{.INSTALL_SOURCE_GLOB}}" + - "{{.ROOT_DIR}}/tools/yscope-dev-utils/exports/taskfiles/**/*.yaml" + generates: ["{{.INSTALL_DIR_CHECKSUM_FILE}}"] deps: - task: ":yscope-dev-utils:checksum:validate" vars: From 9b40052732666d6384e080c82f2d6de171e38830 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 16 Oct 2025 11:17:49 +0000 Subject: [PATCH 24/30] yaml lint fix --- taskfiles/deps/installs/antlr-runtime.yaml | 1 - taskfiles/deps/installs/mongocxx.yaml | 1 - taskfiles/deps/installs/msgpack-cxx.yaml | 1 - 3 files changed, 3 deletions(-) diff --git a/taskfiles/deps/installs/antlr-runtime.yaml b/taskfiles/deps/installs/antlr-runtime.yaml index f584ac4bce..4d3c534600 100644 --- a/taskfiles/deps/installs/antlr-runtime.yaml +++ b/taskfiles/deps/installs/antlr-runtime.yaml @@ -22,4 +22,3 @@ tasks: TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ {{.G_ANTLR_VERSION}}.tar.gz" - diff --git a/taskfiles/deps/installs/mongocxx.yaml b/taskfiles/deps/installs/mongocxx.yaml index 1629f98073..52e2882cb1 100644 --- a/taskfiles/deps/installs/mongocxx.yaml +++ b/taskfiles/deps/installs/mongocxx.yaml @@ -21,4 +21,3 @@ tasks: TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ /mongo-cxx-driver-{{.VERSION}}.tar.gz" - diff --git a/taskfiles/deps/installs/msgpack-cxx.yaml b/taskfiles/deps/installs/msgpack-cxx.yaml index 52576f2d80..ea0876a8e3 100644 --- a/taskfiles/deps/installs/msgpack-cxx.yaml +++ b/taskfiles/deps/installs/msgpack-cxx.yaml @@ -28,4 +28,3 @@ tasks: TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ /msgpack-cxx-{{.VERSION}}.tar.gz" - From 6437a3d8eb3d7f8b569a5aa0ee49e99a5263fe75 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 16 Oct 2025 11:21:51 +0000 Subject: [PATCH 25/30] change utfcpp back to use source --- taskfiles/deps/installs/utfcpp.yaml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/taskfiles/deps/installs/utfcpp.yaml b/taskfiles/deps/installs/utfcpp.yaml index 34c6a22329..afc659e17e 100644 --- a/taskfiles/deps/installs/utfcpp.yaml +++ b/taskfiles/deps/installs/utfcpp.yaml @@ -3,14 +3,20 @@ version: "3" tasks: default: internal: true + vars: + LIB_NAME: "utfcpp" + UTFCPP_OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" run: "once" cmds: - - task: ":utils:install-remote-cmake-lib" + # Directly use the source project instead of installing it. + # See also: https://github.com/nemtrif/utfcpp/tree/v4.0.6?tab=readme-ov-file#installation + - task: ":yscope-dev-utils:remote:download-and-extract-tar" vars: - CMAKE_GEN_ARGS: - - "-DCMAKE_BUILD_TYPE=Release" - - "-DCMAKE_INSTALL_MESSAGE=LAZY" - INSTALL_TASK_NAME: "utfcpp" - LIB_NAME: "utfcpp" - TARBALL_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" - TARBALL_URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + FILE_SHA256: "6920a6a5d6a04b9a89b2a89af7132f8acefd46e0c2a7b190350539e9213816c0" + OUTPUT_DIR: "{{.UTFCPP_OUTPUT_DIR}}" + URL: "https://github.com/nemtrif/utfcpp/archive/refs/tags/v4.0.6.tar.gz" + - >- + echo "set( + CLP_UTFCPP_INCLUDE_DIRECTORY \"{{.UTFCPP_OUTPUT_DIR}}\" + )" > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" From c34e19b25771068527881f581dd10f7f003ca290 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 23 Oct 2025 08:51:23 +0000 Subject: [PATCH 26/30] Improve var usage --- taskfiles/deps/core.yaml | 6 +++++- taskfiles/deps/main.yaml | 11 +++++------ taskfiles/deps/spider.yaml | 7 +++++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/taskfiles/deps/core.yaml b/taskfiles/deps/core.yaml index c3f07c3725..31a0c340f0 100644 --- a/taskfiles/deps/core.yaml +++ b/taskfiles/deps/core.yaml @@ -1,5 +1,9 @@ version: "3" +vars: + # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt + G_DEPS_CPP_CORE_CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-core.cmake" + tasks: default: deps: @@ -13,7 +17,7 @@ tasks: - task: ":yscope-dev-utils:cmake:install-deps-and-generate-settings" vars: CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-core.cmake" + CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CORE_CMAKE_SETTINGS_FILE}}" DEP_TASK: "core:core-all-parallel" - task: ":utils:combine-cpp-checksum-files" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index fdf8842280..5def6ca3cf 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -24,19 +24,18 @@ vars: G_DEPS_CPP_CHECKSUMS_DIR: "{{.G_DEPS_CPP_DIR}}/checksums" G_DEPS_CPP_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/all.md5" - # CMake settings paths - # NOTE: This must be kept in-sync with its usage in components/core/CMakeLists.txt + # CMake settings directory G_DEPS_CPP_CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_DIR}}/cmake-settings" - # Antlr - G_ANTLR_VERSION: "4.13.2" - G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - # Library names G_BOOST_LIB_NAME: "Boost" G_FMT_LIB_NAME: "fmt" G_GSL_LIB_NAME: "Microsoft.GSL" + # Antlr + G_ANTLR_VERSION: "4.13.2" + G_ANTLR_JAR_FILE: "{{.G_DEPS_CPP_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + tasks: default: deps: diff --git a/taskfiles/deps/spider.yaml b/taskfiles/deps/spider.yaml index ce241fb9e2..f61680901e 100644 --- a/taskfiles/deps/spider.yaml +++ b/taskfiles/deps/spider.yaml @@ -1,5 +1,8 @@ version: "3" +vars: + G_DEPS_CPP_SPIDER_CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" + tasks: default: deps: @@ -22,7 +25,7 @@ tasks: WORK_DIR: "{{.G_SPIDER_BUILD_DIR}}" CMAKE_JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" CMAKE_GEN_ARGS: - - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" + - "-C {{.G_DEPS_CPP_SPIDER_CMAKE_SETTINGS_FILE}}" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DSPIDER_BUILD_TESTING=OFF" @@ -35,7 +38,7 @@ tasks: - task: ":yscope-dev-utils:cmake:install-deps-and-generate-settings" vars: CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" - CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/all-spider.cmake" + CMAKE_SETTINGS_FILE: "{{.G_DEPS_CPP_SPIDER_CMAKE_SETTINGS_FILE}}" DEP_TASK: "spider:spider-all-parallel" - task: ":utils:combine-cpp-checksum-files" From 99b7880d98dadb618d7261a9d6e4e9a078aef49c Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 23 Oct 2025 09:22:10 +0000 Subject: [PATCH 27/30] revert install skipping mechanism --- taskfiles/deps/installs/absl.yaml | 1 - taskfiles/deps/installs/antlr-runtime.yaml | 1 - taskfiles/deps/installs/catch2.yaml | 1 - taskfiles/deps/installs/date.yaml | 1 - taskfiles/deps/installs/fmt.yaml | 1 - taskfiles/deps/installs/liblzma.yaml | 1 - taskfiles/deps/installs/log-surgeon.yaml | 3 -- taskfiles/deps/installs/lz4.yaml | 1 - .../deps/installs/mariadb-connector-cpp.yaml | 1 - taskfiles/deps/installs/microsoft.gsl.yaml | 1 - taskfiles/deps/installs/mongocxx.yaml | 1 - taskfiles/deps/installs/msgpack-cxx.yaml | 3 -- taskfiles/deps/installs/nlohmann_json.yaml | 1 - taskfiles/deps/installs/simdjson.yaml | 1 - taskfiles/deps/installs/spdlog.yaml | 3 -- taskfiles/deps/installs/yaml-cpp.yaml | 1 - taskfiles/deps/installs/ystdlib.yaml | 3 -- taskfiles/deps/installs/zlib.yaml | 1 - taskfiles/deps/installs/zstd.yaml | 1 - taskfiles/deps/utils.yaml | 28 ++----------------- 20 files changed, 2 insertions(+), 53 deletions(-) diff --git a/taskfiles/deps/installs/absl.yaml b/taskfiles/deps/installs/absl.yaml index dbdfb76cbc..9dd09b4dbd 100644 --- a/taskfiles/deps/installs/absl.yaml +++ b/taskfiles/deps/installs/absl.yaml @@ -11,7 +11,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_CXX_STANDARD=20" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - INSTALL_TASK_NAME: "absl" LIB_NAME: "absl" TARBALL_SHA256: "7262daa7c1711406248c10f41026d685e88223bc92817d16fb93c19adb57f669" TARBALL_URL: "https://github.com/abseil/abseil-cpp/releases/download/20250512.0/\ diff --git a/taskfiles/deps/installs/antlr-runtime.yaml b/taskfiles/deps/installs/antlr-runtime.yaml index 4d3c534600..ff9ceb3ff3 100644 --- a/taskfiles/deps/installs/antlr-runtime.yaml +++ b/taskfiles/deps/installs/antlr-runtime.yaml @@ -17,7 +17,6 @@ tasks: # timestamp, which ensures the library gets rebuilt if the extracted files change. - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" CMAKE_SOURCE_DIR: "runtime/Cpp" - INSTALL_TASK_NAME: "antlr-runtime" LIB_NAME: "antlr4-runtime" TARBALL_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" TARBALL_URL: "https://github.com/antlr/antlr4/archive/refs/tags/\ diff --git a/taskfiles/deps/installs/catch2.yaml b/taskfiles/deps/installs/catch2.yaml index a975c2591a..2ade404bb6 100644 --- a/taskfiles/deps/installs/catch2.yaml +++ b/taskfiles/deps/installs/catch2.yaml @@ -15,7 +15,6 @@ tasks: - "-DCMAKE_CXX_STANDARD=20" - "-DCMAKE_CXX_STANDARD_REQUIRED=ON" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - INSTALL_TASK_NAME: "catch2" LIB_NAME: "Catch2" TARBALL_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" TARBALL_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz" diff --git a/taskfiles/deps/installs/date.yaml b/taskfiles/deps/installs/date.yaml index 31350c6ea8..d5cb506df9 100644 --- a/taskfiles/deps/installs/date.yaml +++ b/taskfiles/deps/installs/date.yaml @@ -10,7 +10,6 @@ tasks: CMAKE_GEN_ARGS: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - INSTALL_TASK_NAME: "date" LIB_NAME: "date" TARBALL_SHA256: "7a390f200f0ccd207e8cff6757e04817c1a0aec3e327b006b7eb451c57ee3538" TARBALL_URL: "https://github.com/HowardHinnant/date/archive/refs/tags/v3.0.1.tar.gz" diff --git a/taskfiles/deps/installs/fmt.yaml b/taskfiles/deps/installs/fmt.yaml index 05e44de85c..2e0ed9f235 100644 --- a/taskfiles/deps/installs/fmt.yaml +++ b/taskfiles/deps/installs/fmt.yaml @@ -13,7 +13,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DFMT_DOC=OFF" - "-DFMT_TEST=OFF" - INSTALL_TASK_NAME: "fmt" LIB_NAME: "{{.G_FMT_LIB_NAME}}" TARBALL_SHA256: "bc23066d87ab3168f27cef3e97d545fa63314f5c79df5ea444d41d56f962c6af" TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/11.2.0.tar.gz" diff --git a/taskfiles/deps/installs/liblzma.yaml b/taskfiles/deps/installs/liblzma.yaml index 46184f6b7a..a440c21aa6 100644 --- a/taskfiles/deps/installs/liblzma.yaml +++ b/taskfiles/deps/installs/liblzma.yaml @@ -35,7 +35,6 @@ tasks: - "-DBUILD_SHARED_LIBS={{ if .BUILD_SHARED_LIBS }}ON{{ else }}OFF{{ end }}" - >- {{ join " " .LIBLZMA_CMAKE_GEN_ARGS }} - INSTALL_TASK_NAME: "liblzma" LIB_NAME: "LibLZMA-{{ if .BUILD_SHARED_LIBS }}shared{{ else }}static{{ end }}" TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543" TARBALL_URL: >- diff --git a/taskfiles/deps/installs/log-surgeon.yaml b/taskfiles/deps/installs/log-surgeon.yaml index a93d2585c2..35f326ad49 100644 --- a/taskfiles/deps/installs/log-surgeon.yaml +++ b/taskfiles/deps/installs/log-surgeon.yaml @@ -19,9 +19,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-Dlog_surgeon_BUILD_TESTING=OFF" - DEPS: - ref: ".DEPS" - INSTALL_TASK_NAME: "log-surgeon" LIB_NAME: "log_surgeon" TARBALL_SHA256: "69a99e0804a52c6b6397c5e7eabecc9bb4915d0145632c66fc63ad13678ff56a" TARBALL_URL: "https://github.com/y-scope/log-surgeon/archive/a722d07.tar.gz" diff --git a/taskfiles/deps/installs/lz4.yaml b/taskfiles/deps/installs/lz4.yaml index 035141864d..c9c8242270 100644 --- a/taskfiles/deps/installs/lz4.yaml +++ b/taskfiles/deps/installs/lz4.yaml @@ -14,7 +14,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DLZ4_BUILD_CLI=OFF" CMAKE_SOURCE_DIR: "build/cmake" - INSTALL_TASK_NAME: "lz4" LIB_NAME: "lz4" TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" diff --git a/taskfiles/deps/installs/mariadb-connector-cpp.yaml b/taskfiles/deps/installs/mariadb-connector-cpp.yaml index 7948edc233..3d49fc26d7 100644 --- a/taskfiles/deps/installs/mariadb-connector-cpp.yaml +++ b/taskfiles/deps/installs/mariadb-connector-cpp.yaml @@ -21,7 +21,6 @@ tasks: - "-DINSTALL_LAYOUT=DEB" - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - "-DWITH_UNIT_TESTS=OFF" - INSTALL_TASK_NAME: "mariadb-connector-cpp" LIB_NAME: "mariadb-connector-cpp" TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ diff --git a/taskfiles/deps/installs/microsoft.gsl.yaml b/taskfiles/deps/installs/microsoft.gsl.yaml index c72a0a4336..bce886c45b 100644 --- a/taskfiles/deps/installs/microsoft.gsl.yaml +++ b/taskfiles/deps/installs/microsoft.gsl.yaml @@ -11,7 +11,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DGSL_TEST=OFF" - INSTALL_TASK_NAME: "microsoft.gsl" LIB_NAME: "{{.G_GSL_LIB_NAME}}" TARBALL_SHA256: "f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9" TARBALL_URL: "https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz" diff --git a/taskfiles/deps/installs/mongocxx.yaml b/taskfiles/deps/installs/mongocxx.yaml index 52e2882cb1..af3d36e9b5 100644 --- a/taskfiles/deps/installs/mongocxx.yaml +++ b/taskfiles/deps/installs/mongocxx.yaml @@ -16,7 +16,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DENABLE_EXAMPLES=OFF" - "-DENABLE_UNINSTALL=OFF" - INSTALL_TASK_NAME: "mongocxx" LIB_NAME: "mongocxx" TARBALL_SHA256: "19dff3cf834a3e09229260f22a0325820a7e30c78b294db91794dd934776b33a" TARBALL_URL: "https://github.com/mongodb/mongo-cxx-driver/releases/download/{{.VERSION}}\ diff --git a/taskfiles/deps/installs/msgpack-cxx.yaml b/taskfiles/deps/installs/msgpack-cxx.yaml index ea0876a8e3..4319610de3 100644 --- a/taskfiles/deps/installs/msgpack-cxx.yaml +++ b/taskfiles/deps/installs/msgpack-cxx.yaml @@ -21,9 +21,6 @@ tasks: - "-DCMAKE_POLICY_DEFAULT_CMP0074=NEW" - "-DMSGPACK_BUILD_DOCS=OFF" - "-DMSGPACK_CXX20=ON" - DEPS: - ref: ".DEPS" - INSTALL_TASK_NAME: "msgpack-cxx" LIB_NAME: "msgpack-cxx" TARBALL_SHA256: "7504b7af7e7b9002ce529d4f941e1b7fb1fb435768780ce7da4abaac79bb156f" TARBALL_URL: "https://github.com/msgpack/msgpack-c/releases/download/cpp-{{.VERSION}}\ diff --git a/taskfiles/deps/installs/nlohmann_json.yaml b/taskfiles/deps/installs/nlohmann_json.yaml index f9177e8c9e..90319225b3 100644 --- a/taskfiles/deps/installs/nlohmann_json.yaml +++ b/taskfiles/deps/installs/nlohmann_json.yaml @@ -11,7 +11,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DJSON_BuildTests=OFF" - INSTALL_TASK_NAME: "nlohmann_json" LIB_NAME: "nlohmann_json" TARBALL_SHA256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" diff --git a/taskfiles/deps/installs/simdjson.yaml b/taskfiles/deps/installs/simdjson.yaml index 3015c4840e..3192b731e7 100644 --- a/taskfiles/deps/installs/simdjson.yaml +++ b/taskfiles/deps/installs/simdjson.yaml @@ -12,7 +12,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DSIMDJSON_BUILD_STATIC_LIB=ON" - INSTALL_TASK_NAME: "simdjson" LIB_NAME: "simdjson" TARBALL_SHA256: "07a1bb3587aac18fd6a10a83fe4ab09f1100ab39f0cb73baea1317826b9f9e0d" TARBALL_URL: "https://github.com/simdjson/simdjson/archive/refs/tags/v3.13.0.tar.gz" diff --git a/taskfiles/deps/installs/spdlog.yaml b/taskfiles/deps/installs/spdlog.yaml index 42dcfd079f..da7522790b 100644 --- a/taskfiles/deps/installs/spdlog.yaml +++ b/taskfiles/deps/installs/spdlog.yaml @@ -21,9 +21,6 @@ tasks: - "-DSPDLOG_BUILD_EXAMPLE=OFF" - "-DSPDLOG_BUILD_SHARED=ON" - "-DSPDLOG_FMT_EXTERNAL=ON" - DEPS: - ref: ".DEPS" - INSTALL_TASK_NAME: "spdlog" LIB_NAME: "spdlog" TARBALL_SHA256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" diff --git a/taskfiles/deps/installs/yaml-cpp.yaml b/taskfiles/deps/installs/yaml-cpp.yaml index b9d8924c50..d1f1002a1c 100644 --- a/taskfiles/deps/installs/yaml-cpp.yaml +++ b/taskfiles/deps/installs/yaml-cpp.yaml @@ -11,7 +11,6 @@ tasks: - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DYAML_CPP_BUILD_TESTS=OFF" - INSTALL_TASK_NAME: "yaml-cpp" LIB_NAME: "yaml-cpp" TARBALL_SHA256: "43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3" TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz" diff --git a/taskfiles/deps/installs/ystdlib.yaml b/taskfiles/deps/installs/ystdlib.yaml index 09584e3b3f..ae78ec0f96 100644 --- a/taskfiles/deps/installs/ystdlib.yaml +++ b/taskfiles/deps/installs/ystdlib.yaml @@ -17,9 +17,6 @@ tasks: - "-C {{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.G_BOOST_LIB_NAME}}.cmake" - "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" - "-Dystdlib_BUILD_TESTING=OFF" - DEPS: - ref: ".DEPS" - INSTALL_TASK_NAME: "ystdlib" LIB_NAME: "ystdlib" TARBALL_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8" TARBALL_URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz" diff --git a/taskfiles/deps/installs/zlib.yaml b/taskfiles/deps/installs/zlib.yaml index 54472416d5..c201950be4 100644 --- a/taskfiles/deps/installs/zlib.yaml +++ b/taskfiles/deps/installs/zlib.yaml @@ -15,7 +15,6 @@ tasks: - "-DCMAKE_INSTALL_MESSAGE=LAZY" - "-DCMAKE_INSTALL_PREFIX={{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - "-DZLIB_BUILD_EXAMPLES=OFF" - INSTALL_TASK_NAME: "zlib" LIB_NAME: "{{.LIB_NAME}}" TARBALL_SHA256: "9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23" TARBALL_URL: "https://github.com/madler/zlib/releases/download/v1.3.1/zlib-1.3.1.tar.gz" diff --git a/taskfiles/deps/installs/zstd.yaml b/taskfiles/deps/installs/zstd.yaml index fab9d66347..3b8fff230e 100644 --- a/taskfiles/deps/installs/zstd.yaml +++ b/taskfiles/deps/installs/zstd.yaml @@ -15,7 +15,6 @@ tasks: - "-DZSTD_BUILD_STATIC=ON" - "-DZSTD_BUILD_TESTS=OFF" CMAKE_SOURCE_DIR: "build/cmake" - INSTALL_TASK_NAME: "zstd" LIB_NAME: "zstd" TARBALL_SHA256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" TARBALL_URL: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" diff --git a/taskfiles/deps/utils.yaml b/taskfiles/deps/utils.yaml index a011dfed44..0dd96f4ea2 100644 --- a/taskfiles/deps/utils.yaml +++ b/taskfiles/deps/utils.yaml @@ -29,7 +29,6 @@ tasks: # Installs a CMake-based library from a remote tarball, generates a corresponding settings file, # and computes a checksum for the installation directory. # - # @param {string} INSTALL_TASK_NAME # @param {string} LIB_NAME # @param {string} TARBALL_SHA256 # @param {string} TARBALL_URL @@ -39,38 +38,15 @@ tasks: # containing the project's top level CMakeLists.txt. install-remote-cmake-lib: internal: true - label: "{{.TASK}}:{{.INSTALL_TASK_NAME}}" vars: CMAKE_GEN_ARGS: ref: "default (list) .CMAKE_GEN_ARGS" CMAKE_SOURCE_DIR: >- {{default "." .CMAKE_SOURCE_DIR}} - DEPS: - ref: "default (list) .DEPS" - - INSTALL_DIR_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install" - - INSTALL_SOURCE_GLOB: >- - {{- if eq (len .DEPS) 0 -}} - {{ printf "%s.yaml" .INSTALL_TASK_NAME }} - {{- else -}} - {{"{"}} - {{- printf "%s.yaml" .INSTALL_TASK_NAME -}} - {{- range ($.DEPS) -}} - {{- printf ",%s.yaml" . -}} - {{- end -}} - {{- "}"}} - {{- end -}} - requires: - vars: ["INSTALL_TASK_NAME", "LIB_NAME", "TARBALL_SHA256", "TARBALL_URL"] - sources: - - "{{.ROOT_DIR}}/Taskfile.yaml" - - "{{.ROOT_DIR}}/taskfiles/deps/*.yaml" - - "{{.ROOT_DIR}}/taskfiles/deps/installs/{{.INSTALL_SOURCE_GLOB}}" - - "{{.ROOT_DIR}}/tools/yscope-dev-utils/exports/taskfiles/**/*.yaml" - generates: ["{{.INSTALL_DIR_CHECKSUM_FILE}}"] + INSTALL_DIR_CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" deps: + - task: ":init" - task: ":yscope-dev-utils:checksum:validate" vars: CHECKSUM_FILE: "{{.INSTALL_DIR_CHECKSUM_FILE}}" From 2347c8b82b1301ee47c539af5317ff60f1408619 Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 23 Oct 2025 09:23:23 +0000 Subject: [PATCH 28/30] remove antlr-jar checksum mechanism --- taskfiles/deps/installs/antlr-jar.yaml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/taskfiles/deps/installs/antlr-jar.yaml b/taskfiles/deps/installs/antlr-jar.yaml index a00052ee9e..fbeeecc8cc 100644 --- a/taskfiles/deps/installs/antlr-jar.yaml +++ b/taskfiles/deps/installs/antlr-jar.yaml @@ -3,26 +3,10 @@ version: "3" tasks: default: internal: true - vars: - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/antlr-jar.md5" - OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" run: "once" - deps: - - task: ":yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" cmds: - task: ":yscope-dev-utils:remote:curl" vars: FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" - OUTPUT_FILE: "{{.OUTPUT_FILE}}" + OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - - # This command must be last - - task: ":yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" From 15ac8986cd75f9e5d6540542f2aed2fd7f4a3a0c Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Thu, 23 Oct 2025 17:50:40 +0800 Subject: [PATCH 29/30] Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- taskfiles/deps/installs/mariadb-connector-cpp.yaml | 2 +- taskfiles/deps/installs/sqlite3.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/taskfiles/deps/installs/mariadb-connector-cpp.yaml b/taskfiles/deps/installs/mariadb-connector-cpp.yaml index 3d49fc26d7..71990df825 100644 --- a/taskfiles/deps/installs/mariadb-connector-cpp.yaml +++ b/taskfiles/deps/installs/mariadb-connector-cpp.yaml @@ -10,7 +10,7 @@ tasks: # - Update the precondition accordingly. # - Make `INSTALL_LAYOUT` configurable. - >- - source /etc/os-release && [[ "$ID" == "ubuntu" ]] + . /etc/os-release && [ "$ID" = "ubuntu" ] run: "once" cmds: - task: ":utils:install-remote-cmake-lib" diff --git a/taskfiles/deps/installs/sqlite3.yaml b/taskfiles/deps/installs/sqlite3.yaml index 804e516e62..54a628a66e 100644 --- a/taskfiles/deps/installs/sqlite3.yaml +++ b/taskfiles/deps/installs/sqlite3.yaml @@ -21,10 +21,10 @@ tasks: OUTPUT_DIR: "{{.EXTRACTION_DIR}}" URL: "https://www.sqlite.org/2021/{{.ZIP_FILENAME_STEM}}.zip" - "mkdir -p '{{.INSTALL_INCLUDE_DIR}}'" - - "rm -f '{{.INSTALL_SYMLINK}}'" - - "ln -s '{{.SRC_DIR}}' '{{.INSTALL_SYMLINK}}'" + - "ln -sfn '{{.SRC_DIR}}' '{{.INSTALL_SYMLINK}}'" + - "mkdir -p '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - |- - echo "set(CLP_SQLITE3_SOURCE_DIRECTORY \"{{.SRC_DIR}}\")" \ - > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" - echo "set(CLP_SQLITE3_INCLUDE_DIRECTORY \"{{.INSTALL_INCLUDE_DIR}}\")" \ - >> "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" + cat > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" < Date: Thu, 23 Oct 2025 10:00:09 -0400 Subject: [PATCH 30/30] misc fixes --- taskfiles/deps/installs/antlr-jar.yaml | 2 ++ taskfiles/deps/installs/boost.yaml | 2 ++ taskfiles/deps/installs/sqlite3.yaml | 9 +++++---- taskfiles/deps/installs/utfcpp.yaml | 12 +++++++----- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/taskfiles/deps/installs/antlr-jar.yaml b/taskfiles/deps/installs/antlr-jar.yaml index fbeeecc8cc..3599e54e65 100644 --- a/taskfiles/deps/installs/antlr-jar.yaml +++ b/taskfiles/deps/installs/antlr-jar.yaml @@ -4,6 +4,8 @@ tasks: default: internal: true run: "once" + deps: + - task: ":init" cmds: - task: ":yscope-dev-utils:remote:curl" vars: diff --git a/taskfiles/deps/installs/boost.yaml b/taskfiles/deps/installs/boost.yaml index 5fe94b677f..17e440f28b 100644 --- a/taskfiles/deps/installs/boost.yaml +++ b/taskfiles/deps/installs/boost.yaml @@ -6,6 +6,8 @@ tasks: vars: VERSION: "1.87.0" run: "once" + deps: + - task: ":init" cmds: - task: ":yscope-dev-utils:boost:download-and-install" vars: diff --git a/taskfiles/deps/installs/sqlite3.yaml b/taskfiles/deps/installs/sqlite3.yaml index 54a628a66e..f87751d1f8 100644 --- a/taskfiles/deps/installs/sqlite3.yaml +++ b/taskfiles/deps/installs/sqlite3.yaml @@ -7,12 +7,14 @@ tasks: LIB_NAME: "sqlite3" # Paths - EXTRACTION_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-src" + EXTRACTION_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-extracted" INSTALL_INCLUDE_DIR: "{{.G_DEPS_CPP_DIR}}/{{.LIB_NAME}}-install/include" INSTALL_SYMLINK: "{{.INSTALL_INCLUDE_DIR}}/{{.LIB_NAME}}" ZIP_FILENAME_STEM: "sqlite-amalgamation-3360000" SRC_DIR: "{{.EXTRACTION_DIR}}/{{.ZIP_FILENAME_STEM}}" run: "once" + deps: + - task: ":init" cmds: - task: ":yscope-dev-utils:remote:download-and-extract-zip" vars: @@ -20,10 +22,9 @@ tasks: FILE_SHA256: "999826fe4c871f18919fdb8ed7ec9dd8217180854dd1fe21eea96aed36186729" OUTPUT_DIR: "{{.EXTRACTION_DIR}}" URL: "https://www.sqlite.org/2021/{{.ZIP_FILENAME_STEM}}.zip" - - "mkdir -p '{{.INSTALL_INCLUDE_DIR}}'" - - "ln -sfn '{{.SRC_DIR}}' '{{.INSTALL_SYMLINK}}'" - - "mkdir -p '{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}'" - |- + mkdir -p "{{.INSTALL_INCLUDE_DIR}}" + ln -sfn "{{.SRC_DIR}}" "{{.INSTALL_SYMLINK}}" cat > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" <- - echo "set( - CLP_UTFCPP_INCLUDE_DIRECTORY \"{{.UTFCPP_OUTPUT_DIR}}\" - )" > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" + - |- + cat > "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}/{{.LIB_NAME}}.cmake" <