@@ -43,33 +43,51 @@ cmake-help-contains() {
43
43
44
44
# Generate ---------------------------------------------------------------------
45
45
46
+ GENERATE_CMD=(cmake " -Werror=dev" " -Werror=deprecated" )
46
47
BUILD_DIR=" .build"
47
48
48
- CMAKE_BUILD_TYPE= " ${CMAKE_BUILD_TYPE :- Debug} "
49
+ # Compiler
49
50
50
- GENERATE_CMD=(cmake " -Werror=dev" " -Werror=deprecated" )
51
- if ! cmake-help-contains " Visual Studio" || [ -n " $CXX " ]; then
52
- COVERAGE=" ${COVERAGE:- 0} "
53
- if [ " $COVERAGE " = 1 ]; then
54
- BUILD_DIR=" $BUILD_DIR .coverage"
55
- GENERATE_CMD+=(" -DCOVERAGE=ON" )
56
- fi
51
+ if [ -n " $CXX " ]; then
52
+ BUILD_DIR=" $BUILD_DIR .$CXX "
53
+ fi
57
54
58
- BUILD_DIR=" $BUILD_DIR .$CMAKE_BUILD_TYPE ${CXX: +.} $CXX "
59
- GENERATE_CMD+=(" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE " )
55
+ # Generator
60
56
61
- if cmake-help-contains " MSYS Makefiles " && [ -z " $CMAKE_GENERATOR " ] ; then
62
- export CMAKE_GENERATOR= " MSYS Makefiles"
63
- fi
57
+ if [ -n " $CXX " ] && [ -z " $CMAKE_GENERATOR " ] \
58
+ && cmake-help-contains " MSYS Makefiles" ; then
59
+ export CMAKE_GENERATOR= " MSYS Makefiles "
64
60
fi
61
+
62
+ if [ " $CMAKE_GENERATOR " = " MSYS Makefiles" ]; then
63
+ export CMAKE_MAKE_PROGRAM=" make"
64
+ fi
65
+
65
66
if [ -n " $CMAKE_GENERATOR " ]; then
66
67
BUILD_DIR=" $BUILD_DIR .${CMAKE_GENERATOR// / _} "
67
68
GENERATE_CMD+=(" -G" " $CMAKE_GENERATOR " )
69
+ fi
68
70
69
- if [ " $CMAKE_GENERATOR " = " MSYS Makefiles" ]; then
70
- export CMAKE_MAKE_PROGRAM=" make"
71
- fi
71
+ # Build type
72
+
73
+ CMAKE_BUILD_TYPE=" ${CMAKE_BUILD_TYPE:- Debug} "
74
+
75
+ if [[ " $CMAKE_GENERATOR " =~ Makefiles| Ninja ]] || \
76
+ ([ -z " $CMAKE_GENERATOR " ] && ! cmake-help-contains ' Visual Studio' ); then
77
+ BUILD_DIR=" $BUILD_DIR .$CMAKE_BUILD_TYPE "
78
+ GENERATE_CMD+=(" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE " )
72
79
fi
80
+
81
+ # Coverage
82
+
83
+ COVERAGE=" ${COVERAGE:- 0} "
84
+ if [ " $COVERAGE " = 1 ]; then
85
+ BUILD_DIR=" $BUILD_DIR .coverage"
86
+ GENERATE_CMD+=(" -DCOVERAGE=ON" )
87
+ fi
88
+
89
+ # Finish
90
+
73
91
GENERATE_CMD+=(..)
74
92
75
93
# Clean
100
118
BUILD_CMD+=(cmake --build . --config " $CMAKE_BUILD_TYPE " --parallel " $N_PARALLEL_BUILD " --)
101
119
TEST_CMD+=(ctest --build-config " $CMAKE_BUILD_TYPE " --parallel " $N_PARALLEL_TEST " )
102
120
103
- if cmake-help-contains " Visual Studio" && [ -z " $CXX " ]; then
121
+ # Quiet
122
+
123
+ if [[ " $CMAKE_GENERATOR " =~ ' Visual Studio' ]] || \
124
+ ([ -z " $CMAKE_GENERATOR " ] && cmake-help-contains " Visual Studio" ); then
104
125
if [ " $QUIET " != 0 ]; then
105
126
MSBUILD_VERBOSITY=" ${MSBUILD_VERBOSITY:- QUIET} "
106
127
fi
@@ -109,6 +130,15 @@ if cmake-help-contains "Visual Studio" && [ -z "$CXX" ]; then
109
130
fi
110
131
fi
111
132
133
+ if [[ " $CMAKE_GENERATOR " =~ Xcode ]]; then
134
+ if [ " $QUIET " != 0 ]; then
135
+ XCODE_VERBOSITY=" ${XCODE_VERBOSITY:- quiet} "
136
+ fi
137
+ if [ -n " $XCODE_VERBOSITY " ]; then
138
+ BUILD_CMD+=(" -$XCODE_VERBOSITY " )
139
+ fi
140
+ fi
141
+
112
142
# Watch ------------------------------------------------------------------------
113
143
114
144
export WATCH_CMD=(fswatch --one-per-batch --recursive)
0 commit comments