Skip to content

Commit 7c62982

Browse files
committed
Update and refactor taskfiles.
1 parent b329870 commit 7c62982

File tree

7 files changed

+149
-76
lines changed

7 files changed

+149
-76
lines changed

taskfile.yaml

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -39,51 +39,3 @@ tasks:
3939
run: "once"
4040
cmds:
4141
- "mkdir -p '{{.G_BUILD_DIR}}'"
42-
43-
validate-all-args:
44-
internal: true
45-
requires:
46-
vars: ["BUILD_TYPE", "TARGET"]
47-
cmds:
48-
- task: "validate-build-type"
49-
vars:
50-
BUILD_TYPE: "{{.BUILD_TYPE}}"
51-
- task: "validate-target"
52-
vars:
53-
TARGET: "{{.TARGET}}"
54-
55-
validate-arg:
56-
internal: true
57-
requires:
58-
vars: ["ARG", "VALID_ARGS"]
59-
preconditions:
60-
- sh: >-
61-
{{has .ARG .VALID_ARGS}}
62-
msg: |-
63-
{{- if not (has .ARG .VALID_ARGS)}}
64-
{{.ERR_MSG}}
65-
"{{.ARG}} is not a valid argument. List of valid arguments:"
66-
{{- range .VALID_ARGS}}
67-
{{.}}
68-
{{- end}}
69-
{{- end}}
70-
71-
validate-build-type:
72-
internal: true
73-
requires:
74-
vars: ["BUILD_TYPE"]
75-
cmds:
76-
- task: "validate-arg"
77-
vars:
78-
ARG: "{{.BUILD_TYPE}}"
79-
VALID_ARGS: "{{.G_VALID_BUILD_TYPES}}"
80-
81-
validate-target:
82-
internal: true
83-
requires:
84-
vars: ["TARGET"]
85-
cmds:
86-
- task: "validate-arg"
87-
vars:
88-
ARG: "{{.TARGET}}"
89-
VALID_ARGS: "{{.G_VALID_TARGETS}}"

taskfiles/build.yaml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ includes:
44
deps:
55
internal: true
66
taskfile: "deps.yaml"
7-
utils:
7+
dev-utils:
88
internal: true
99
taskfile: "../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml"
10+
utils:
11+
internal: true
12+
taskfile: "utils.yaml"
1013

1114
tasks:
1215
build-*-*:
@@ -15,7 +18,7 @@ tasks:
1518
BUILD_TYPE: "{{index .MATCH 1}}"
1619
TARGET: "{{index .MATCH 0}}"
1720
deps:
18-
- task: ":validate-all-args"
21+
- task: "utils:validate-all-args"
1922
vars:
2023
BUILD_TYPE: "{{.BUILD_TYPE}}"
2124
TARGET: "{{.TARGET}}"
@@ -30,11 +33,11 @@ tasks:
3033
vars:
3134
BUILD_TYPE: "{{index .MATCH 0}}"
3235
deps:
33-
- task: ":validate-build-type"
36+
- task: "utils:validate-build-type"
3437
vars:
3538
BUILD_TYPE: "{{.BUILD_TYPE}}"
3639
cmds:
37-
- task: "utils:cmake:clean"
40+
- task: "dev-utils:cmake:clean"
3841
vars:
3942
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
4043

@@ -48,7 +51,7 @@ tasks:
4851
requires:
4952
vars: ["INSTALL_PREFIX"]
5053
deps:
51-
- task: ":validate-all-args"
54+
- task: "utils:validate-all-args"
5255
vars:
5356
BUILD_TYPE: "{{.BUILD_TYPE}}"
5457
TARGET: "{{.TARGET}}"
@@ -60,23 +63,34 @@ tasks:
6063
TARGET: "{{.TARGET}}"
6164

6265
build:
66+
internal: true
67+
requires:
68+
vars: ["BUILD_TYPE", "TARGET"]
69+
deps:
70+
- task: "generate"
71+
vars:
72+
BUILD_TYPE: "{{.BUILD_TYPE}}"
73+
TARGET: "{{.TARGET}}"
74+
cmds:
75+
- task: "dev-utils:cmake:build"
76+
vars:
77+
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
78+
TARGETS:
79+
- "{{.TARGET}}"
80+
81+
generate:
6382
internal: true
6483
requires:
6584
vars: ["BUILD_TYPE", "TARGET"]
6685
deps:
6786
- "deps:all"
6887
cmds:
69-
- task: "utils:cmake:generate"
88+
- task: "dev-utils:cmake:generate"
7089
vars:
7190
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
7291
EXTRA_ARGS:
7392
- "-DCMAKE_BUILD_TYPE={{.BUILD_TYPE}}"
7493
SOURCE_DIR: "{{.ROOT_DIR}}"
75-
- task: "utils:cmake:build"
76-
vars:
77-
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
78-
TARGETS:
79-
- "{{.TARGET}}"
8094

8195
install:
8296
internal: true
@@ -88,7 +102,7 @@ tasks:
88102
BUILD_TYPE: "{{.BUILD_TYPE}}"
89103
TARGET: "{{.TARGET}}"
90104
cmds:
91-
- task: "utils:cmake:install"
105+
- task: "dev-utils:cmake:install"
92106
vars:
93107
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
94108
INSTALL_PREFIX: "{{.INSTALL_PREFIX}}"

taskfiles/deps.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "3"
22

33
includes:
4-
utils:
4+
dev-utils:
55
internal: true
66
taskfile: "../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml"
77

@@ -17,7 +17,7 @@ tasks:
1717
desc: "Install all dependencies required by ystdlib."
1818
run: "once"
1919
cmds:
20-
- task: "utils:cmake:install-deps-and-generate-settings"
20+
- task: "dev-utils:cmake:install-deps-and-generate-settings"
2121
vars:
2222
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
2323
DEP_TASK: "all-parallel"
@@ -33,7 +33,7 @@ tasks:
3333
internal: true
3434
run: "once"
3535
cmds:
36-
- task: "utils:cmake:install-remote-tar"
36+
- task: "dev-utils:cmake:install-remote-tar"
3737
vars:
3838
CMAKE_PACKAGE_NAME: "{{.G_CATCH2_LIB_NAME}}"
3939
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
@@ -45,7 +45,7 @@ tasks:
4545
internal: true
4646
run: "once"
4747
cmds:
48-
- task: "utils:boost:download-and-install"
48+
- task: "dev-utils:boost:download-and-install"
4949
vars:
5050
CMAKE_SETTINGS_DIR: "{{.G_DEPS_CMAKE_SETTINGS_DIR}}"
5151
FILE_SHA256: "d6c69e4459eb5d6ec208250291221e7ff4a2affde9af6e49c9303b89c687461f"

taskfiles/examples.yaml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,20 @@ includes:
77
deps:
88
internal: true
99
taskfile: "deps.yaml"
10-
utils:
10+
dev-utils:
1111
internal: true
1212
taskfile: "../tools/yscope-dev-utils/exports/taskfiles/utils/utils.yaml"
13+
utils:
14+
internal: true
15+
taskfile: "utils.yaml"
1316

1417
tasks:
1518
build-*:
1619
desc: "build-<build type>: Builds the examples with build type."
1720
vars:
1821
BUILD_TYPE: "{{index .MATCH 0}}"
1922
deps:
20-
- task: ":validate-build-type"
23+
- task: "utils:validate-build-type"
2124
vars:
2225
BUILD_TYPE: "{{.BUILD_TYPE}}"
2326
cmds:
@@ -30,15 +33,28 @@ tasks:
3033
vars:
3134
BUILD_TYPE: "{{index .MATCH 0}}"
3235
deps:
33-
- task: ":validate-build-type"
36+
- task: "utils:validate-build-type"
3437
vars:
3538
BUILD_TYPE: "{{.BUILD_TYPE}}"
3639
cmds:
37-
- task: "utils:cmake:clean"
40+
- task: "dev-utils:cmake:clean"
3841
vars:
3942
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
4043

4144
build:
45+
internal: true
46+
requires:
47+
vars: ["BUILD_TYPE"]
48+
deps:
49+
- task: "generate"
50+
vars:
51+
BUILD_TYPE: "{{.BUILD_TYPE}}"
52+
cmds:
53+
- task: "dev-utils:cmake:build"
54+
vars:
55+
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
56+
57+
generate:
4258
internal: true
4359
requires:
4460
vars: ["BUILD_TYPE"]
@@ -51,13 +67,10 @@ tasks:
5167
INSTALL_PREFIX: "{{.INSTALL_PREFIX}}"
5268
TARGET: "all"
5369
cmds:
54-
- task: "utils:cmake:generate"
70+
- task: "dev-utils:cmake:generate"
5571
vars:
5672
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
5773
EXTRA_ARGS:
5874
- "-DCMAKE_BUILD_TYPE={{.BUILD_TYPE}}"
5975
- "-Dystdlib_ROOT={{.INSTALL_PREFIX}}"
6076
SOURCE_DIR: "{{.ROOT_DIR}}/examples"
61-
- task: "utils:cmake:build"
62-
vars:
63-
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"

taskfiles/lint-cpp.yaml

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
version: "3"
22

3+
includes:
4+
build:
5+
internal: true
6+
taskfile: "build.yaml"
7+
examples:
8+
internal: true
9+
taskfile: "examples.yaml"
10+
311
vars:
4-
G_COMPILE_COMMANDS_DB: "{{.G_BUILD_DIR}}/compile_commands.json"
512
G_LINT_CLANG_TIDY_DIR: "{{.G_BUILD_DIR}}/lint-clang-tidy"
613

714
tasks:
@@ -10,12 +17,14 @@ tasks:
1017
cmds:
1118
- task: "cpp-format-check"
1219
- task: "cpp-static-check"
20+
- task: "cpp-static-check-examples"
1321

1422
cpp-fix:
1523
desc: "Runs the C++ linters to fix all formatting issues and perform static code analysis. "
1624
cmds:
1725
- task: "cpp-format-fix"
1826
- task: "cpp-static-fix"
27+
- task: "cpp-static-fix-examples"
1928

2029
cpp-format-check:
2130
desc: "Runs the C++ linters that identify formatting issues."
@@ -64,17 +73,47 @@ tasks:
6473
desc: "Runs the C++ static analyzers. Only checks for warnings and violations."
6574
deps:
6675
- "cpp-configs"
76+
- task: "build:generate"
77+
vars:
78+
BUILD_TYPE: "debug"
79+
TARGET: "all"
6780
- ":init"
6881
- "venv"
6982
cmds:
7083
- task: ":utils:cpp-lint:clang-tidy-find"
7184
vars:
7285
FLAGS:
7386
- "--config-file '{{.ROOT_DIR}}/.clang-tidy'"
74-
- "-p '{{.G_COMPILE_COMMANDS_DB}}'"
87+
- "-p '{{.G_YSTDLIB_BUILD_DIR}}/debug/compile_commands.json'"
7588
OUTPUT_DIR: "{{.G_LINT_CLANG_TIDY_DIR}}"
7689
ROOT_PATHS:
77-
ref: ".G_LINT_CPP_ROOT_DIRS"
90+
- "{{.G_YSTDLIB_SRC_DIR}}"
91+
VENV_DIR: "{{.G_LINT_VENV_DIR}}"
92+
93+
cpp-static-check-examples:
94+
# Alias task to `cpp-static-fix-examples` since we don't currently support automatic fixes.
95+
# NOTE: clang-tidy does have the ability to fix some errors, but the fixes can be inaccurate.
96+
# When we eventually determine which errors can be safely fixed, we'll allow clang-tidy to
97+
# fix them.
98+
aliases:
99+
- "cpp-static-fix-examples"
100+
desc: "Runs the C++ static analyzers. Only checks for warnings and violations."
101+
deps:
102+
- "cpp-configs"
103+
- task: "examples:generate"
104+
vars:
105+
BUILD_TYPE: "debug"
106+
- ":init"
107+
- "venv"
108+
cmds:
109+
- task: ":utils:cpp-lint:clang-tidy-find"
110+
vars:
111+
FLAGS:
112+
- "--config-file '{{.ROOT_DIR}}/.clang-tidy'"
113+
- "-p '{{.G_EXAMPLES_BUILD_DIR}}/debug/compile_commands.json'"
114+
OUTPUT_DIR: "{{.G_LINT_CLANG_TIDY_DIR}}"
115+
ROOT_PATHS:
116+
- "{{.G_EXAMPLES_SRC_DIR}}"
78117
VENV_DIR: "{{.G_LINT_VENV_DIR}}"
79118

80119
cpp-configs:

taskfiles/test.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ includes:
44
build:
55
internal: true
66
taskfile: "build.yaml"
7+
utils:
8+
internal: true
9+
taskfile: "utils.yaml"
710

811
tasks:
912
test-*-*:
@@ -14,7 +17,7 @@ tasks:
1417
TARGET: "{{index .MATCH 0}}"
1518
TEST_TARGET: "unit-test-{{.TARGET}}"
1619
deps:
17-
- task: ":validate-all-args"
20+
- task: "utils:validate-all-args"
1821
vars:
1922
BUILD_TYPE: "{{.BUILD_TYPE}}"
2023
TARGET: "{{.TARGET}}"

0 commit comments

Comments
 (0)