Skip to content

Commit 6c62d81

Browse files
committed
Refactor and include COVERAGE in build dir name
1 parent ff389fe commit 6c62d81

File tree

2 files changed

+46
-31
lines changed

2 files changed

+46
-31
lines changed

commands/setup

Lines changed: 45 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ EOF
3030
exit 1
3131
fi
3232

33-
CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
33+
# Meta -------------------------------------------------------------------------
3434

3535
if (set +x && [ -z "$CMAKE_HELP" ]); then
3636
CMAKE_HELP="$(cmake --help)"
@@ -40,7 +40,45 @@ cmake-help-contains() {
4040
(set +x && [[ "$CMAKE_HELP" =~ $1 ]])
4141
}
4242

43-
COVERAGE="${COVERAGE:-0}"
43+
# Generate ---------------------------------------------------------------------
44+
45+
BUILD_DIR=".build"
46+
47+
CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
48+
49+
GENERATE_CMD=(cmake)
50+
if ! cmake-help-contains "Visual Studio" || [ -n "$CXX" ]; then
51+
COVERAGE="${COVERAGE:-0}"
52+
if [ "$COVERAGE" = 1 ]; then
53+
BUILD_DIR="$BUILD_DIR.coverage"
54+
GENERATE_CMD+=("-DCOVERAGE=ON")
55+
fi
56+
57+
BUILD_DIR="$BUILD_DIR.$CMAKE_BUILD_TYPE${CXX:+.}$CXX"
58+
GENERATE_CMD+=("-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE")
59+
60+
if cmake-help-contains "MSYS Makefiles"; then
61+
GENERATE_CMD+=("-G" "MSYS Makefiles")
62+
export CMAKE_MAKE_PROGRAM="make"
63+
fi
64+
fi
65+
GENERATE_CMD+=(..)
66+
67+
# Clean
68+
69+
CLEAN="${CLEAN:-0}"
70+
if [ "$CLEAN" = 1 ]; then
71+
rm -rf "$BUILD_DIR"
72+
fi
73+
74+
# Generate
75+
76+
mkdir -p "$BUILD_DIR" && cd "$_"
77+
"${GENERATE_CMD[@]}"
78+
79+
# Build and Test ---------------------------------------------------------------
80+
81+
export CTEST_OUTPUT_ON_FAILURE="${CTEST_OUTPUT_ON_FAILURE:-1}"
4482

4583
N_PARALLEL_BUILD="${N_PARALLEL_BUILD:-$NUMBER_OF_PROCESSORS}"
4684
N_PARALLEL_TEST="${N_PARALLEL_TEST:-$NUMBER_OF_PROCESSORS}"
@@ -51,48 +89,25 @@ if command -v nice > /dev/null; then
5189
BUILD_CMD+=(nice)
5290
TEST_CMD+=(nice)
5391
fi
54-
BUILD_CMD+=(cmake --build . --config $CMAKE_BUILD_TYPE --parallel $N_PARALLEL_BUILD --)
55-
TEST_CMD+=(ctest --build-config $CMAKE_BUILD_TYPE --parallel $N_PARALLEL_TEST)
92+
BUILD_CMD+=(cmake --build . --config "$CMAKE_BUILD_TYPE" --parallel "$N_PARALLEL_BUILD" --)
93+
TEST_CMD+=(ctest --build-config "$CMAKE_BUILD_TYPE" --parallel "$N_PARALLEL_TEST")
5694

57-
INIT_CMD=(cmake)
5895
if cmake-help-contains "Visual Studio" && [ -z "$CXX" ]; then
59-
DIR=".build"
60-
6196
if [ "$QUIET" != 0 ]; then
6297
MSBUILD_VERBOSITY="${MSBUILD_VERBOSITY:-QUIET}"
6398
fi
6499
if [ -n "$MSBUILD_VERBOSITY" ]; then
65100
BUILD_CMD+=("/VERBOSITY:$MSBUILD_VERBOSITY")
66101
fi
67-
else
68-
DIR=".build.$CMAKE_BUILD_TYPE${CXX:+.}$CXX"
69-
INIT_CMD+=("-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE")
70-
71-
if cmake-help-contains "MSYS Makefiles"; then
72-
INIT_CMD+=("-G" "MSYS Makefiles")
73-
export CMAKE_MAKE_PROGRAM="make"
74-
fi
75-
76-
if [ "$COVERAGE" = 1 ]; then
77-
INIT_CMD+=("-DCOVERAGE=ON")
78-
fi
79102
fi
80-
INIT_CMD+=(..)
103+
104+
# Watch ------------------------------------------------------------------------
81105

82106
export WATCH_CMD=(fswatch --one-per-batch --recursive)
107+
83108
if [[ "$OSTYPE" =~ ^(linux-gnu|msys|cygwin)$ ]]; then
84109
# The default monitor notifies on read accesses...
85110
WATCH_CMD+=(--monitor poll_monitor '--latency=5')
86111
fi
87112

88-
export CTEST_OUTPUT_ON_FAILURE="${CTEST_OUTPUT_ON_FAILURE:-1}"
89-
90-
CLEAN="${CLEAN:-0}"
91-
if [ "$CLEAN" = 1 ]; then
92-
rm -rf "$DIR"
93-
fi
94-
95-
mkdir -p "$DIR" && cd "$_"
96-
"${INIT_CMD[@]}"
97-
98113
WATCH_CMD+=(../*)

travis-ci

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ for CONFIG in Debug Release; do
9797
done
9898

9999
code-coverage() {
100-
CLEAN=1 COVERAGE=1 cppsm test
100+
COVERAGE=1 cppsm test
101101
local COVERAGE_INFO="${TMP}coverage.info"
102102
lcov --capture --directory . --output-file "$COVERAGE_INFO"
103103
lcov --remove "$COVERAGE_INFO" '/Applications/*' --output-file "$COVERAGE_INFO"

0 commit comments

Comments
 (0)