@@ -3,18 +3,45 @@ version: "3"
33vars :
44 G_CATCH2_LIB_NAME : " Catch2"
55 G_CATCH2_WORK_DIR : " {{.G_DEPS_DIR}}/{{.G_CATCH2_LIB_NAME}}"
6+ G_OUTCOME_LIB_NAME : " outcome"
7+ G_OUTCOME_WORK_DIR : " {{.G_DEPS_DIR}}/{{.G_OUTCOME_LIB_NAME}}"
8+ G_QUICKCPPLIB_LIB_NAME : " quickcpplib"
9+ G_QUICKCPPLIB_WORK_DIR : " {{.G_DEPS_DIR}}/{{.G_QUICKCPPLIB_LIB_NAME}}"
610
711tasks :
812 install-all :
913 desc : " Install all dependencies required by ystdlib-cpp."
14+ cmds :
15+ - task : " install-all-init"
16+ - task : " install-all-run"
17+
18+ install-all-init :
19+ internal : true
20+ cmds :
21+ - " mkdir -p {{.G_DEPS_DIR}}"
22+ - " rm -f '{{.G_DEPS_CMAKE_SETTINGS_FILE}}'"
23+ - >-
24+ # Enable CMP0074 to ensure Cmake versions prior to 3.12 does not ignore <PackageName>_ROOT.
25+ echo "set(CMAKE_POLICY_DEFAULT_CMP0074 NEW)" >> "{{.G_DEPS_CMAKE_SETTINGS_FILE}}"
26+
27+ install-all-run :
28+ internal : true
1029 deps :
1130 - " install-Catch2"
31+ - " install-outcome"
32+ - " install-quickcpplib"
33+
34+ add-package-prefix-to-settings :
35+ internal : true
36+ requires :
37+ vars :
38+ - " NAME"
39+ - " INSTALL_PREFIX"
1240 cmds :
13- - " rm -f '{{.G_DEPS_CMAKE_SETTINGS_FILE}}'"
41+ # POSIX-compliant OS ensures that writes with sizes less than `PIPE_BUF` must be atomic.
42+ # See also: https://man7.org/linux/man-pages/man7/pipe.7.html
1443 - >-
15- echo "set(
16- {{.G_CATCH2_LIB_NAME}}_ROOT \"{{.G_CATCH2_WORK_DIR}}/{{.G_CATCH2_LIB_NAME}}-install\"
17- )" >> "{{.G_DEPS_CMAKE_SETTINGS_FILE}}"
44+ echo "set({{.NAME}}_ROOT \"{{.INSTALL_PREFIX}}\")" >> "{{.G_DEPS_CMAKE_SETTINGS_FILE}}"
1845
1946 install-Catch2 :
2047 internal : true
@@ -26,3 +53,44 @@ tasks:
2653 WORK_DIR : " {{.G_CATCH2_WORK_DIR}}"
2754 FILE_SHA256 : " 1ab2de20460d4641553addfdfe6acd4109d871d5531f8f519a52ea4926303087"
2855 URL : " https://github.com/catchorg/Catch2/archive/refs/tags/v3.8.0.tar.gz"
56+ - task : " add-package-prefix-to-settings"
57+ vars :
58+ NAME : " {{.G_CATCH2_LIB_NAME}}"
59+ INSTALL_PREFIX : " {{.G_CATCH2_WORK_DIR}}/{{.G_CATCH2_LIB_NAME}}-install"
60+
61+ install-outcome :
62+ internal : true
63+ run : " once"
64+ deps :
65+ - " install-quickcpplib"
66+ cmds :
67+ - task : " :utils:cmake-install-remote-tar"
68+ vars :
69+ NAME : " {{.G_OUTCOME_LIB_NAME}}"
70+ WORK_DIR : " {{.G_OUTCOME_WORK_DIR}}"
71+ FILE_SHA256 : " 0382248cbb00806ce4b5f3ce6939797dc3b597c85fd3531614959e31ef488b39"
72+ URL : " https://github.com/ned14/outcome/archive/refs/tags/v2.2.11.tar.gz"
73+ GEN_ARGS :
74+ - " -C {{.G_DEPS_CMAKE_SETTINGS_FILE}}"
75+ - " -DCMAKE_BUILD_TYPE=Release"
76+ - task : " add-package-prefix-to-settings"
77+ vars :
78+ NAME : " {{.G_OUTCOME_LIB_NAME}}"
79+ INSTALL_PREFIX : " {{.G_OUTCOME_WORK_DIR}}/{{.G_OUTCOME_LIB_NAME}}-install"
80+
81+ install-quickcpplib :
82+ internal : true
83+ run : " once"
84+ cmds :
85+ - task : " :utils:cmake-install-remote-tar"
86+ vars :
87+ NAME : " {{.G_QUICKCPPLIB_LIB_NAME}}"
88+ WORK_DIR : " {{.G_QUICKCPPLIB_WORK_DIR}}"
89+ FILE_SHA256 : " cd1f4cd5e9580957bd9e9fabf5b9133ffe3594071a1eed6fe685d9143b961294"
90+ URL : " https://github.com/ned14/quickcpplib/archive/master.tar.gz"
91+ GEN_ARGS :
92+ - " -DCMAKE_BUILD_TYPE=Release"
93+ - task : " add-package-prefix-to-settings"
94+ vars :
95+ NAME : " {{.G_QUICKCPPLIB_LIB_NAME}}"
96+ INSTALL_PREFIX : " {{.G_QUICKCPPLIB_WORK_DIR}}/{{.G_QUICKCPPLIB_LIB_NAME}}-install"
0 commit comments