Skip to content

Commit a5feb98

Browse files
kevgsmidenok
authored andcommitted
Scripts: collect and reprint warnings
Closes #73
1 parent d54d36c commit a5feb98

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

BUILD/capture_warnings.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
warn_path=$1
4+
shift
5+
warn_file="$warn_path/compile.warnings"
6+
7+
set -o pipefail
8+
exec 3>&1
9+
x=$(("$@" >&2) 2>&1 1>&3)
10+
error=${PIPESTATUS}
11+
12+
if ! [[ -z "$x" ]]; then
13+
echo -n "$x" >> $warn_file
14+
echo -n "$x" >&2
15+
fi
16+
17+
exit ${error}

CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,3 +480,17 @@ IF(NON_DISTRIBUTABLE_WARNING)
480480
MESSAGE(WARNING "
481481
You have linked MariaDB with GPLv3 libraries! You may not distribute the resulting binary. If you do, you will put yourself into a legal problem with Free Software Foundation.")
482482
ENDIF()
483+
484+
IF (CMAKE_BUILD_TYPE MATCHES "Debug")
485+
SET_DIRECTORY_PROPERTIES(PROPERTIES RULE_LAUNCH_COMPILE
486+
"bash ${CMAKE_SOURCE_DIR}/BUILD/capture_warnings.sh ${CMAKE_BINARY_DIR}")
487+
SET_DIRECTORY_PROPERTIES(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
488+
"${CMAKE_BINARY_DIR}/compile.warnings")
489+
ADD_CUSTOM_TARGET(REMOVE_WARNINGS_FILE ALL
490+
COMMAND rm -f "compile.warnings"
491+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
492+
ADD_CUSTOM_TARGET(REPRINT ALL
493+
COMMAND if [ -f "compile.warnings" ]; then cat "compile.warnings" \; fi
494+
DEPENDS mysql udf_example explain_filename-t REMOVE_WARNINGS_FILE
495+
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
496+
ENDIF()

0 commit comments

Comments
 (0)