From 1cb22780a3fffcd6aa67a19f74b5802f44f8c1ca Mon Sep 17 00:00:00 2001 From: Bingran Hu Date: Tue, 11 Feb 2025 15:56:21 -0500 Subject: [PATCH] Add Catch2 dep --- taskfile.yaml | 3 +++ taskfiles/deps.yaml | 58 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 taskfiles/deps.yaml diff --git a/taskfile.yaml b/taskfile.yaml index 246b4b9..6ea4721 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -2,6 +2,7 @@ version: "3" includes: build: "./taskfiles/build.yaml" + deps: "./taskfiles/deps.yaml" lint: "./taskfiles/lint.yaml" utils: "tools/yscope-dev-utils/taskfiles/utils.yaml" @@ -19,6 +20,8 @@ tasks: config-cmake-project: internal: true + deps: + - "deps:install-all" sources: - "CMakeLists.txt" - "{{.TASKFILE}}" diff --git a/taskfiles/deps.yaml b/taskfiles/deps.yaml new file mode 100644 index 0000000..85d488f --- /dev/null +++ b/taskfiles/deps.yaml @@ -0,0 +1,58 @@ +version: "3" + +vars: + G_DEPS_DIR: "{{.G_BUILD_DIR}}/deps" + G_DEPS_RELEASES_JSON: >- + { + "Catch2": "v3.8.0" + } + G_DEPS_RELEASES: + ref: 'fromJson .G_DEPS_RELEASES_JSON' + +tasks: + install-all: + desc: "Install all dependencies required by ystdlib-cpp." + deps: + - task: "install-dep" + vars: + NAME: "Catch2" + ORG: "catchorg" + RELEASE: "{{.G_DEPS_RELEASES.Catch2}}" + SOURCE_SHA256: "1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087" + + install-dep: + internal: true + label: "install-{{.NAME}}-{{.VERSION}}-{{.CONF_ARGS}}" + vars: + BUILD_DIR: >- + {{default (printf "%s/%s-build" .G_DEPS_DIR .NAME) .BUILD_DIR}} + CONF_ARGS: >- + {{default "" .CONF_ARGS}} + INSTALL_PREFIX: >- + {{default (printf "%s/%s-install" .G_DEPS_DIR .NAME) .INSTALL_PREFIX}} + SOURCE_DIR: >- + {{default (printf "%s/%s-src" .G_DEPS_DIR .NAME) .SOURCE_DIR}} + requires: + vars: + - "NAME" + - "ORG" + - "RELEASE" + - "SOURCE_SHA256" + sources: + - "{{.G_DEPS_DIR}}/{{.NAME}}-src.md5" + cmds: + - task: ":utils:download-and-extract-tar" + vars: + FILE_SHA256: "{{.SOURCE_SHA256}}" + OUTPUT_DIR: "{{.SOURCE_DIR}}" + URL: >- + {{printf "https://github.com/%s/%s/archive/refs/tags/%s.tar.gz" .ORG .NAME .RELEASE}} + - task: ":utils:cmake-config-and-build" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + CONF_ARGS: "{{.CONF_ARGS}}" + SOURCE_DIR: "{{.SOURCE_DIR}}" + - task: ":utils:cmake-install" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + INSTALL_PREFIX: "{{.INSTALL_PREFIX}}"