diff options
-rw-r--r-- | CMakeLists.txt | 25 | ||||
-rw-r--r-- | docs/CMake.html | 15 |
2 files changed, 37 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d609c84c0d..bb33a0ffd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,6 +191,10 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib ) add_llvm_definitions( -D__STDC_LIMIT_MACROS ) add_llvm_definitions( -D__STDC_CONSTANT_MACROS ) +option(LLVM_ENABLE_PEDANTIC "Enable compiler warnings." ON) +option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) +option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) + if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 ) # TODO: support other platforms and toolchains. option(LLVM_BUILD_32_BITS "Build 32 bits executables and libraries." OFF) @@ -226,8 +230,27 @@ if( MSVC ) add_llvm_definitions("/${LLVM_USE_CRT}") message(STATUS "Using VC++ CRT: ${LLVM_USE_CRT}") endif (NOT ${LLVM_USE_CRT} STREQUAL "") + + # Enable warnings + if (LLVM_ENABLE_WARNINGS) + add_llvm_definitions( /W4 /Wall ) + if (LLVM_ENABLE_PEDANTIC) + # No MSVC equivalent available + endif (LLVM_ENABLE_PEDANTIC) + endif (LLVM_ENABLE_WARNINGS) + if (LLVM_ENABLE_WERROR) + add_llvm_definitions( /WX ) + endif (LLVM_ENABLE_WERROR) elseif( CMAKE_COMPILER_IS_GNUCXX ) - add_llvm_definitions( -Wall -W -Wno-unused-parameter -Wwrite-strings ) + if (LLVM_ENABLE_WARNINGS) + add_llvm_definitions( -Wall -W -Wno-unused-parameter -Wwrite-strings ) + if (LLVM_ENABLE_PEDANTIC) + add_llvm_definitions( -pedantic -Wno-long-long ) + endif (LLVM_ENABLE_PEDANTIC) + endif (LLVM_ENABLE_WARNINGS) + if (LLVM_ENABLE_WERROR) + add_llvm_definitions( -Werror ) + endif (LLVM_ENABLE_WERROR) endif( MSVC ) include_directories( ${LLVM_BINARY_DIR}/include ${LLVM_MAIN_INCLUDE_DIR}) diff --git a/docs/CMake.html b/docs/CMake.html index 2b7fda3447..40a2cec8e9 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -274,10 +274,21 @@ compiler supports this flag. Some systems, like Windows, do not need this flag. Defaults to ON.</dd> + <dt><b>LLVM_ENABLE_WARNINGS</b>:BOOL</dt> + <dd>Enable all compiler warnings. Defaults to ON.</dd> + + <dt><b>LLVM_ENABLE_PEDANTIC</b>:BOOL</dt> + <dd>Enable pedantic mode. This disable compiler specific extensions, is + possible. Defaults to ON.</dd> + + <dt><b>LLVM_ENABLE_WERROR</b>:BOOL</dt> + <dd>Stop and fail build, if a compiler warning is + triggered. Defaults to OFF.</dd> + <dt><b>LLVM_BUILD_32_BITS</b>:BOOL</dt> <dd>Build 32-bits executables and libraries on 64-bits systems. This - option is available only on some 64-bits unix systems. Defaults to - OFF.</dd> + option is available only on some 64-bits unix systems. Defaults to + OFF.</dd> <dt><b>LLVM_TARGET_ARCH</b>:STRING</dt> <dd>LLVM target to use for native code generation. This is required |