Skip to content

Commit 9645ad4

Browse files
committed
Add outcome dependency
1 parent 5f43a3b commit 9645ad4

File tree

2 files changed

+81
-6
lines changed

2 files changed

+81
-6
lines changed

CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,12 @@ if(BUILD_TESTING AND YSTDLIB_CPP_BUILD_TESTING)
5050
set(YSTDLIB_CPP_ENABLE_TESTS ON)
5151
endif()
5252

53-
# Import CMake helper functions
54-
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/CMake)
53+
find_package(outcome REQUIRED)
54+
if(outcome_FOUND)
55+
message(STATUS "Found outcome.")
56+
else()
57+
message(FATAL_ERROR "Could not find libraries for outcome.")
58+
endif()
5559

5660
if(YSTDLIB_CPP_ENABLE_TESTS)
5761
find_package(Catch2 3.8.0 REQUIRED)
@@ -77,6 +81,9 @@ if(YSTDLIB_CPP_ENABLE_TESTS)
7781
catch_discover_tests(${UNIFIED_UNIT_TEST_TARGET} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/testbin)
7882
endif()
7983

84+
# Import CMake helper functions
85+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/CMake)
86+
8087
include(ystdlib-cpp-helpers)
8188

8289
add_subdirectory(src/ystdlib)

taskfiles/deps.yaml

Lines changed: 72 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,45 @@ version: "3"
33
vars:
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

711
tasks:
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

Comments
 (0)