alec

Abstraction Layer for Escape Codes
git clone git://git.dimitrijedobrota.com/alec.git
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING

CMakePresets.json (5855B)


0 {
1 "version": 2,
2 "cmakeMinimumRequired": {
3 "major": 3,
4 "minor": 14,
5 "patch": 0
6 },
7 "configurePresets": [
8 {
9 "name": "dev-mode",
10 "hidden": true,
11 "cacheVariables": {
12 "alec_DEVELOPER_MODE": "ON",
13 "VCPKG_MANIFEST_FEATURES": "test"
14 }
15 },
16 {
17 "name": "vcpkg",
18 "hidden": true,
19 "cacheVariables": {
20 "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
21 }
22 },
23 {
24 "name": "vcpkg-win64-static",
25 "hidden": true,
26 "cacheVariables": {
27 "VCPKG_TARGET_TRIPLET": "x64-windows-static-md"
28 }
29 },
30 {
31 "name": "cppcheck",
32 "hidden": true,
33 "cacheVariables": {
34 "CMAKE_CXX_CPPCHECK": "cppcheck;--inline-suppr"
35 }
36 },
37 {
38 "name": "clang-tidy",
39 "hidden": true,
40 "cacheVariables": {
41 "CMAKE_CXX_CLANG_TIDY": "clang-tidy;--header-filter=^${sourceDir}/"
42 }
43 },
44 {
45 "name": "ci-std",
46 "description": "This preset makes sure the project actually builds with at least the specified standard",
47 "hidden": true,
48 "cacheVariables": {
49 "CMAKE_CXX_EXTENSIONS": "OFF",
50 "CMAKE_CXX_STANDARD": "20",
51 "CMAKE_CXX_STANDARD_REQUIRED": "ON"
52 }
53 },
54 {
55 "name": "flags-gcc-clang",
56 "description": "These flags are supported by both GCC and Clang",
57 "hidden": true,
58 "cacheVariables": {
59 "CMAKE_CXX_FLAGS": "-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS=1 -fstack-protector-strong -fcf-protection=full -fstack-clash-protection -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wformat=2 -Wundef -Werror=float-equal -Wshadow -Wcast-align -Wunused -Wnull-dereference -Wdouble-promotion -Wimplicit-fallthrough -Wextra-semi -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast",
60 "CMAKE_EXE_LINKER_FLAGS": "-Wl,--allow-shlib-undefined,--as-needed,-z,noexecstack,-z,relro,-z,now,-z,nodlopen",
61 "CMAKE_SHARED_LINKER_FLAGS": "-Wl,--allow-shlib-undefined,--as-needed,-z,noexecstack,-z,relro,-z,now,-z,nodlopen"
62 }
63 },
64 {
65 "name": "flags-appleclang",
66 "hidden": true,
67 "cacheVariables": {
68 "CMAKE_CXX_FLAGS": "-fstack-protector-strong -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wformat=2 -Wundef -Werror=float-equal -Wshadow -Wcast-align -Wunused -Wnull-dereference -Wdouble-promotion -Wimplicit-fallthrough -Wextra-semi -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast"
69 }
70 },
71 {
72 "name": "flags-msvc",
73 "description": "Note that all the flags after /W4 are required for MSVC to conform to the language standard",
74 "hidden": true,
75 "cacheVariables": {
76 "CMAKE_CXX_FLAGS": "/sdl /guard:cf /utf-8 /diagnostics:caret /w14165 /w44242 /w44254 /w44263 /w34265 /w34287 /w44296 /w44365 /w44388 /w44464 /w14545 /w14546 /w14547 /w14549 /w14555 /w34619 /w34640 /w24826 /w14905 /w14906 /w14928 /w45038 /W4 /permissive- /volatile:iso /Zc:inline /Zc:preprocessor /Zc:enumTypes /Zc:lambda /Zc:__cplusplus /Zc:externConstexpr /Zc:throwingNew /EHsc",
77 "CMAKE_EXE_LINKER_FLAGS": "/machine:x64 /guard:cf",
78 "CMAKE_SHARED_LINKER_FLAGS": "/machine:x64 /guard:cf"
79 }
80 },
81 {
82 "name": "ci-linux",
83 "inherits": ["flags-gcc-clang", "ci-std"],
84 "generator": "Unix Makefiles",
85 "hidden": true,
86 "cacheVariables": {
87 "CMAKE_BUILD_TYPE": "Release"
88 }
89 },
90 {
91 "name": "ci-darwin",
92 "inherits": ["flags-appleclang", "ci-std"],
93 "generator": "Xcode",
94 "hidden": true,
95 "cacheVariables": {
96 "CMAKE_CATCH_DISCOVER_TESTS_DISCOVERY_MODE": "PRE_TEST"
97 }
98 },
99 {
100 "name": "ci-win64",
101 "inherits": ["flags-msvc", "ci-std"],
102 "generator": "Visual Studio 17 2022",
103 "architecture": "x64",
104 "hidden": true
105 },
107 "name": "coverage-linux",
108 "binaryDir": "${sourceDir}/build/coverage",
109 "inherits": "ci-linux",
110 "hidden": true,
111 "cacheVariables": {
112 "ENABLE_COVERAGE": "ON",
113 "CMAKE_BUILD_TYPE": "Coverage",
114 "CMAKE_CXX_FLAGS_COVERAGE": "-O0 -g --coverage -fkeep-inline-functions -fkeep-static-functions",
115 "CMAKE_EXE_LINKER_FLAGS_COVERAGE": "--coverage",
116 "CMAKE_SHARED_LINKER_FLAGS_COVERAGE": "--coverage",
117 "CMAKE_MAP_IMPORTED_CONFIG_COVERAGE": "Coverage;RelWithDebInfo;Release;Debug;"
119 },
121 "name": "ci-coverage",
122 "inherits": ["coverage-linux", "dev-mode", "vcpkg"],
123 "cacheVariables": {
124 "COVERAGE_HTML_COMMAND": ""
126 },
128 "name": "ci-sanitize",
129 "binaryDir": "${sourceDir}/build/sanitize",
130 "inherits": ["ci-linux", "dev-mode", "vcpkg"],
131 "cacheVariables": {
132 "CMAKE_BUILD_TYPE": "Sanitize",
133 "CMAKE_CXX_FLAGS_SANITIZE": "-U_FORTIFY_SOURCE -O2 -g -fsanitize=address,undefined -fno-omit-frame-pointer -fno-common",
134 "CMAKE_MAP_IMPORTED_CONFIG_SANITIZE": "Sanitize;RelWithDebInfo;Release;Debug;"
136 },
138 "name": "ci-build",
139 "binaryDir": "${sourceDir}/build",
140 "hidden": true
141 },
143 "name": "ci-multi-config",
144 "description": "Speed up multi-config generators by generating only one configuration instead of the defaults",
145 "hidden": true,
146 "cacheVariables": {
147 "CMAKE_CONFIGURATION_TYPES": "Release"
149 },
151 "name": "ci-macos",
152 "inherits": ["ci-build", "ci-darwin", "dev-mode", "ci-multi-config", "vcpkg"]
153 },
155 "name": "ci-ubuntu",
156 "inherits": ["ci-build", "ci-linux", "clang-tidy", "vcpkg", "cppcheck", "dev-mode"]
157 },
159 "name": "ci-windows",
160 "inherits": ["ci-build", "ci-win64", "dev-mode", "ci-multi-config", "vcpkg", "vcpkg-win64-static"]