Skip to content

Commit a5d9eea

Browse files
committed
Refactor to simplify code through minor duplication.
1 parent bbf6d8f commit a5d9eea

3 files changed

Lines changed: 59 additions & 90 deletions

File tree

taskfile.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@ vars:
1515
# This must match the package name in CMakeLists.txt.
1616
G_CMAKE_PACKAGE_NAME: "ystdlib"
1717

18-
# Build variables
18+
# Build directories
1919
G_BUILD_DIR: "{{.ROOT_DIR}}/build"
2020
G_EXAMPLES_BUILD_DIR: "{{.G_BUILD_DIR}}/examples"
21+
G_EXAMPLES_DEBUG_BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/debug"
22+
G_EXAMPLES_RELEASE_BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/release"
2123
G_YSTDLIB_BUILD_DIR: "{{.G_BUILD_DIR}}/{{.G_CMAKE_PACKAGE_NAME}}"
24+
G_YSTDLIB_DEBUG_BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/debug"
25+
G_YSTDLIB_RELEASE_BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/release"
2226

2327
tasks:
2428
clean:

taskfiles/examples.yaml

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,55 +10,47 @@ includes:
1010

1111
tasks:
1212
build-debug:
13+
vars:
14+
BUILD_DIR: "{{.G_EXAMPLES_DEBUG_BUILD_DIR}}"
1315
cmds:
14-
- task: "build"
16+
- task: "generate"
1517
vars:
18+
BUILD_DIR: "{{.BUILD_DIR}}"
1619
BUILD_TYPE: "debug"
20+
- task: "utils:cmake:build"
21+
vars:
22+
BUILD_DIR: "{{.BUILD_DIR}}"
1723

1824
build-release:
25+
vars:
26+
BUILD_DIR: "{{.G_EXAMPLES_RELEASE_BUILD_DIR}}"
1927
cmds:
20-
- task: "build"
28+
- task: "generate"
2129
vars:
30+
BUILD_DIR: "{{.BUILD_DIR}}"
2231
BUILD_TYPE: "release"
32+
- task: "utils:cmake:build"
33+
vars:
34+
BUILD_DIR: "{{.BUILD_DIR}}"
2335

2436
clean-debug:
2537
cmds:
26-
- task: "clean"
38+
- task: "utils:cmake:clean"
2739
vars:
28-
BUILD_TYPE: "debug"
40+
BUILD_DIR: "{{.G_EXAMPLES_DEBUG_BUILD_DIR}}"
2941

3042
clean-release:
31-
cmds:
32-
- task: "clean"
33-
vars:
34-
BUILD_TYPE: "release"
35-
36-
build:
37-
internal: true
38-
requires:
39-
vars: ["BUILD_TYPE"]
40-
deps:
41-
- task: "generate"
42-
vars:
43-
BUILD_TYPE: "{{.BUILD_TYPE}}"
44-
cmds:
45-
- task: "utils:cmake:build"
46-
vars:
47-
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
48-
49-
clean:
50-
internal: true
51-
requires:
52-
vars: ["BUILD_TYPE"]
5343
cmds:
5444
- task: "utils:cmake:clean"
5545
vars:
56-
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
46+
BUILD_DIR: "{{.G_EXAMPLES_RELEASE_BUILD_DIR}}"
5747

5848
generate:
5949
internal: true
6050
requires:
61-
vars: ["BUILD_TYPE"]
51+
vars:
52+
- "BUILD_DIR"
53+
- "BUILD_TYPE"
6254
vars:
6355
YSTDLIB_INSTALL_PREFIX: >-
6456
{{.G_EXAMPLES_BUILD_DIR}}/deps/{{.G_CMAKE_PACKAGE_NAME}}/{{.BUILD_TYPE}}
@@ -69,7 +61,7 @@ tasks:
6961
cmds:
7062
- task: "utils:cmake:generate"
7163
vars:
72-
BUILD_DIR: "{{.G_EXAMPLES_BUILD_DIR}}/{{.BUILD_TYPE}}"
64+
BUILD_DIR: "{{.BUILD_DIR}}"
7365
EXTRA_ARGS:
7466
- "-DCMAKE_BUILD_TYPE={{.BUILD_TYPE}}"
7567
- "-D{{.G_CMAKE_PACKAGE_NAME}}_ROOT={{.YSTDLIB_INSTALL_PREFIX}}"

taskfiles/ystdlib.yaml

Lines changed: 33 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -15,116 +15,89 @@ tasks:
1515
build-debug [ystdlib_LIBRARIES="<lib0;...;libn>"]: Configure and build debug libraries. If
1616
ystdlib_LIBRARIES is defined, only configure and build the listed libraries and their internal
1717
dependencies.
18+
vars:
19+
BUILD_DIR: "{{.G_YSTDLIB_DEBUG_BUILD_DIR}}"
1820
cmds:
19-
- task: "build"
21+
- task: "generate"
2022
vars:
23+
BUILD_DIR: "{{.BUILD_DIR}}"
2124
BUILD_TYPE: "debug"
22-
LIBRARIES: "{{.ystdlib_LIBRARIES}}"
25+
- task: "utils:cmake:build"
26+
vars:
27+
BUILD_DIR: "{{.BUILD_DIR}}"
2328

2429
build-release:
2530
# The name ystdlib_LIBRARIES should match its CMakeLists.txt equivalent for consistency.
2631
desc: >-
2732
build-release [ystdlib_LIBRARIES="<lib0;...;libn>"]: Configure and build release libraries. If
2833
ystdlib_LIBRARIES is defined, only configure and build the listed libraries and their internal
2934
dependencies.
35+
vars:
36+
BUILD_DIR: "{{.G_YSTDLIB_RELEASE_BUILD_DIR}}"
3037
cmds:
31-
- task: "build"
38+
- task: "generate"
3239
vars:
40+
BUILD_DIR: "{{.BUILD_DIR}}"
3341
BUILD_TYPE: "release"
3442
LIBRARIES: "{{.ystdlib_LIBRARIES}}"
43+
- task: "utils:cmake:build"
44+
vars:
45+
BUILD_DIR: "{{.BUILD_DIR}}"
3546

3647
clean-debug:
3748
cmds:
38-
- task: "clean"
49+
- task: "utils:cmake:clean"
3950
vars:
40-
BUILD_TYPE: "debug"
51+
BUILD_DIR: "{{.G_YSTDLIB_DEBUG_BUILD_DIR}}"
4152

4253
clean-release:
4354
cmds:
44-
- task: "clean"
55+
- task: "utils:cmake:clean"
4556
vars:
46-
BUILD_TYPE: "release"
57+
BUILD_DIR: "{{.G_YSTDLIB_RELEASE_BUILD_DIR}}"
4758

4859
install-debug:
4960
desc: >-
5061
install-debug INSTALL_PREFIX="<prefix path>": Install the debug build into <prefix path>.
5162
requires:
52-
vars: ["INSTALL_PREFIX"]
63+
vars:
64+
- "INSTALL_PREFIX"
5365
cmds:
54-
- task: "install"
66+
- task: "build-debug"
67+
- task: "utils:cmake:install"
5568
vars:
56-
BUILD_TYPE: "debug"
69+
BUILD_DIR: "{{.G_YSTDLIB_DEBUG_BUILD_DIR}}"
5770
INSTALL_PREFIX: "{{.INSTALL_PREFIX}}"
5871

5972
install-release:
6073
desc: >-
6174
install-release INSTALL_PREFIX="<prefix path>": Install the release build into <prefix path>.
6275
requires:
63-
vars: ["INSTALL_PREFIX"]
76+
vars:
77+
- "INSTALL_PREFIX"
6478
cmds:
65-
- task: "install"
79+
- task: "build-release"
80+
- task: "utils:cmake:install"
6681
vars:
67-
BUILD_TYPE: "release"
82+
BUILD_DIR: "{{.G_YSTDLIB_RELEASE_BUILD_DIR}}"
6883
INSTALL_PREFIX: "{{.INSTALL_PREFIX}}"
6984

70-
build:
71-
internal: true
72-
requires:
73-
vars: ["BUILD_TYPE"]
74-
deps:
75-
- task: "generate"
76-
vars:
77-
BUILD_TYPE: "{{.BUILD_TYPE}}"
78-
LIBRARIES: "{{.LIBRARIES}}"
79-
cmds:
80-
- task: "utils:cmake:build"
81-
vars:
82-
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
83-
84-
clean:
85-
internal: true
86-
requires:
87-
vars: ["BUILD_TYPE"]
88-
cmds:
89-
- task: "utils:cmake:clean"
90-
vars:
91-
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
92-
9385
generate:
9486
internal: true
9587
requires:
96-
vars: ["BUILD_TYPE"]
88+
vars:
89+
- "BUILD_DIR"
90+
- "BUILD_TYPE"
9791
deps:
9892
- "deps:install-all"
9993
cmds:
10094
- task: "utils:cmake:generate"
10195
vars:
102-
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
96+
BUILD_DIR: "{{.BUILD_DIR}}"
10397
EXTRA_ARGS:
104-
- "-DCMAKE_BUILD_TYPE=\"{{.BUILD_TYPE}}\""
98+
- "-DCMAKE_BUILD_TYPE={{.BUILD_TYPE}}"
10599
- >-
106100
{{- if .LIBRARIES -}}
107101
-D{{.G_CMAKE_PACKAGE_NAME}}_LIBRARIES="{{.LIBRARIES}}"
108102
{{- end}}
109103
SOURCE_DIR: "{{.ROOT_DIR}}"
110-
111-
install:
112-
internal: true
113-
vars:
114-
ABSOLUTE_INSTALL_PREFIX: >-
115-
{{- if osIsAbs .INSTALL_PREFIX -}}
116-
{{.INSTALL_PREFIX}}
117-
{{- else -}}
118-
{{.USER_WORKING_DIR}}/{{.INSTALL_PREFIX}}
119-
{{- end}}
120-
requires:
121-
vars: ["BUILD_TYPE", "INSTALL_PREFIX"]
122-
deps:
123-
- task: "build"
124-
vars:
125-
BUILD_TYPE: "{{.BUILD_TYPE}}"
126-
cmds:
127-
- task: "utils:cmake:install"
128-
vars:
129-
BUILD_DIR: "{{.G_YSTDLIB_BUILD_DIR}}/{{.BUILD_TYPE}}"
130-
INSTALL_PREFIX: "{{.ABSOLUTE_INSTALL_PREFIX}}"

0 commit comments

Comments
 (0)