feat(build): add IGNORE_SORRY cmake option
It allows us to perform nightly builds and avoid distracting warning messages on CDASH.
This commit is contained in:
parent
f05bb9daeb
commit
480bc639ea
5 changed files with 22 additions and 3 deletions
|
@ -49,7 +49,7 @@ install:
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DTCMALLOC=${TCMALLOC} -DMULTI_THREAD=${MULTI_THREAD} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ../src -G Ninja
|
- cmake -DIGNORE_SORRY=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DTCMALLOC=${TCMALLOC} -DMULTI_THREAD=${MULTI_THREAD} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ../src -G Ninja
|
||||||
- cd ..
|
- cd ..
|
||||||
|
|
||||||
# Remark:
|
# Remark:
|
||||||
|
|
|
@ -24,7 +24,7 @@ script:
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- LEAN_ROOT=`pwd`
|
- LEAN_ROOT=`pwd`
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../src -DTCMALLOC=OFF -DCMAKE_TOOLCHAIN_FILE=/tmp/mxe/usr/x86_64-w64-mingw32/share/cmake/mxe-conf.cmake
|
- cmake -DIGNORE_SORRY=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../src -DTCMALLOC=OFF -DCMAKE_TOOLCHAIN_FILE=/tmp/mxe/usr/x86_64-w64-mingw32/share/cmake/mxe-conf.cmake
|
||||||
- SITE=Windows@Travis
|
- SITE=Windows@Travis
|
||||||
- if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
|
- if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
|
||||||
BUILD_TYPE=Release;
|
BUILD_TYPE=Release;
|
||||||
|
|
|
@ -230,7 +230,7 @@ script:
|
||||||
- if [[ $TESTCOV != ON ]]; then
|
- if [[ $TESTCOV != ON ]]; then
|
||||||
TESTCOV=OFF;
|
TESTCOV=OFF;
|
||||||
fi
|
fi
|
||||||
- /usr/bin/cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DTESTCOV=${TESTCOV} -DTCMALLOC=${TCMALLOC} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ${GENERATOR} -DCMAKE_PROGRAM_PATH=/usr/bin ../src;
|
- /usr/bin/cmake -DIGNORE_SORRY=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DTESTCOV=${TESTCOV} -DTCMALLOC=${TCMALLOC} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ${GENERATOR} -DCMAKE_PROGRAM_PATH=/usr/bin ../src;
|
||||||
- if [[ $CMAKE_BUILD_TYPE == DEBUG || $CMAKE_BUILD_TYPE == RELEASE || $TESTCOV == ON ]]; then
|
- if [[ $CMAKE_BUILD_TYPE == DEBUG || $CMAKE_BUILD_TYPE == RELEASE || $TESTCOV == ON ]]; then
|
||||||
SITE=Ubuntu12.04@Travis;
|
SITE=Ubuntu12.04@Travis;
|
||||||
if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
|
if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
|
||||||
|
|
|
@ -20,6 +20,10 @@ option(READLINE "READLINE" OFF)
|
||||||
option(CACHE_EXPRS "CACHE_EXPRS" ON)
|
option(CACHE_EXPRS "CACHE_EXPRS" ON)
|
||||||
option(TCMALLOC "TCMALLOC" ON)
|
option(TCMALLOC "TCMALLOC" ON)
|
||||||
option(JEMALLOC "JEMALLOC" OFF)
|
option(JEMALLOC "JEMALLOC" OFF)
|
||||||
|
# IGNORE_SORRY is a tempory option (hack). It allows us to build
|
||||||
|
# a version of Lean that does not report when 'sorry' is used.
|
||||||
|
# This is useful for suppressing warning messages in the nightly builds.
|
||||||
|
option(IGNORE_SORRY "IGNORE_SORRY" OFF)
|
||||||
|
|
||||||
# Added for CTest
|
# Added for CTest
|
||||||
include(CTest)
|
include(CTest)
|
||||||
|
@ -72,6 +76,11 @@ set(CMAKE_CXX_FLAGS_GPROF "-O2 -g -pg")
|
||||||
include(CheckIncludeFileCXX)
|
include(CheckIncludeFileCXX)
|
||||||
check_include_file_cxx("unistd.h" HAVE_UNISTD)
|
check_include_file_cxx("unistd.h" HAVE_UNISTD)
|
||||||
|
|
||||||
|
if ("${IGNORE_SORRY}" MATCHES "ON")
|
||||||
|
message(STATUS "IGNORE_SORRY is ON, Lean will not report when 'sorry' is used directly or indirectly")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D LEAN_IGNORE_SORRY")
|
||||||
|
endif()
|
||||||
|
|
||||||
# SPLIT_STACK
|
# SPLIT_STACK
|
||||||
if ("${SPLIT_STACK}" MATCHES "ON")
|
if ("${SPLIT_STACK}" MATCHES "ON")
|
||||||
if ((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"))
|
if ((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"))
|
||||||
|
|
|
@ -157,9 +157,14 @@ bool parser::are_info_lines_valid(unsigned start_line, unsigned end_line) const
|
||||||
expr parser::mk_sorry(pos_info const & p) {
|
expr parser::mk_sorry(pos_info const & p) {
|
||||||
m_used_sorry = true;
|
m_used_sorry = true;
|
||||||
{
|
{
|
||||||
|
#ifndef LEAN_IGNORE_SORRY
|
||||||
|
// TODO(Leo): remove the #ifdef.
|
||||||
|
// The compilation option LEAN_IGNORE_SORRY is a temporary hack for the nightly builds
|
||||||
|
// We use it to avoid a buch of warnings on cdash.
|
||||||
flycheck_warning wrn(regular_stream());
|
flycheck_warning wrn(regular_stream());
|
||||||
display_warning_pos(p.first, p.second);
|
display_warning_pos(p.first, p.second);
|
||||||
regular_stream() << " using 'sorry'" << endl;
|
regular_stream() << " using 'sorry'" << endl;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return save_pos(::lean::mk_sorry(), p);
|
return save_pos(::lean::mk_sorry(), p);
|
||||||
}
|
}
|
||||||
|
@ -1259,9 +1264,14 @@ bool parser::parse_commands() {
|
||||||
},
|
},
|
||||||
[&]() { sync_command(); });
|
[&]() { sync_command(); });
|
||||||
if (has_sorry(m_env)) {
|
if (has_sorry(m_env)) {
|
||||||
|
#ifndef LEAN_IGNORE_SORRY
|
||||||
|
// TODO(Leo): remove the #ifdef.
|
||||||
|
// The compilation option LEAN_IGNORE_SORRY is a temporary hack for the nightly builds
|
||||||
|
// We use it to avoid a buch of warnings on cdash.
|
||||||
flycheck_warning wrn(regular_stream());
|
flycheck_warning wrn(regular_stream());
|
||||||
display_warning_pos(pos());
|
display_warning_pos(pos());
|
||||||
regular_stream() << " imported file uses 'sorry'" << endl;
|
regular_stream() << " imported file uses 'sorry'" << endl;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
while (!done) {
|
while (!done) {
|
||||||
protected_call([&]() {
|
protected_call([&]() {
|
||||||
|
|
Loading…
Reference in a new issue