@@ -43,33 +43,51 @@ cmake-help-contains() {
4343
4444# Generate ---------------------------------------------------------------------
4545
46+ GENERATE_CMD=(cmake " -Werror=dev" " -Werror=deprecated" )
4647BUILD_DIR=" .build"
4748
48- CMAKE_BUILD_TYPE= " ${CMAKE_BUILD_TYPE :- Debug} "
49+ # Compiler
4950
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
5754
58- BUILD_DIR=" $BUILD_DIR .$CMAKE_BUILD_TYPE ${CXX: +.} $CXX "
59- GENERATE_CMD+=(" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE " )
55+ # Generator
6056
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 "
6460fi
61+
62+ if [ " $CMAKE_GENERATOR " = " MSYS Makefiles" ]; then
63+ export CMAKE_MAKE_PROGRAM=" make"
64+ fi
65+
6566if [ -n " $CMAKE_GENERATOR " ]; then
6667 BUILD_DIR=" $BUILD_DIR .${CMAKE_GENERATOR// / _} "
6768 GENERATE_CMD+=(" -G" " $CMAKE_GENERATOR " )
69+ fi
6870
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 " )
7279fi
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+
7391GENERATE_CMD+=(..)
7492
7593# Clean
100118BUILD_CMD+=(cmake --build . --config " $CMAKE_BUILD_TYPE " --parallel " $N_PARALLEL_BUILD " --)
101119TEST_CMD+=(ctest --build-config " $CMAKE_BUILD_TYPE " --parallel " $N_PARALLEL_TEST " )
102120
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
104125 if [ " $QUIET " != 0 ]; then
105126 MSBUILD_VERBOSITY=" ${MSBUILD_VERBOSITY:- QUIET} "
106127 fi
@@ -109,6 +130,15 @@ if cmake-help-contains "Visual Studio" && [ -z "$CXX" ]; then
109130 fi
110131fi
111132
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+
112142# Watch ------------------------------------------------------------------------
113143
114144export WATCH_CMD=(fswatch --one-per-batch --recursive)
0 commit comments