summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt25
-rw-r--r--docs/CMake.html15
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