Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-12-16 12:55:35 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-12-16 12:55:35 +0300
commited4e7271f163b1d98feee7b956c0229cc47dad92 (patch)
treee2f0c803f59a9a4bc04eba26ad210b6a010d7f39 /CMakeLists.txt
parentee05792a7ba189cc7b1973d10a391ac56c683138 (diff)
CMake now tests warnings are supported, GCC 4.0 wasn't working because of unsupported warnings.
this can work for other compilers too, currently intel and gcc use this.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt52
1 files changed, 30 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 03a61a1a316..2ac45e47486 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -355,12 +355,6 @@ if(UNIX AND NOT APPLE)
# GNU Compiler
if(CMAKE_COMPILER_IS_GNUCC)
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
-
- # Better warnings
- # note: -Wunused-parameter is added below for all GCC compilers
- set(C_WARNINGS "-Wall -Wno-char-subscripts -Wpointer-arith -Wcast-align -Wdeclaration-after-statement -Wno-unknown-pragmas")
- set(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
-
# Intel C++ Compiler
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
# think these next two are broken
@@ -379,13 +373,8 @@ if(UNIX AND NOT APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel")
- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
-
# set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3")
-
- set(C_WARNINGS "-Wall -Wpointer-arith -Wno-unknown-pragmas")
- set(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
-
+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
endif()
@@ -605,10 +594,6 @@ elseif(WIN32)
set(LLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid")
set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing")
- # Better warnings
- set(C_WARNINGS "-Wall -Wno-char-subscripts -Wpointer-arith -Wcast-align -Wdeclaration-after-statement -Wno-unknown-pragmas")
- set(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE")
endif()
@@ -892,11 +877,6 @@ elseif(APPLE)
set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
endif()
-
- # Better warnings
- set(C_WARNINGS "-Wall -Wno-char-subscripts -Wpointer-arith -Wcast-align -Wdeclaration-after-statement -Wno-unknown-pragmas")
- set(CXX_WARNINGS "-Wall -Wno-invalid-offsetof -Wno-sign-compare")
-
endif()
@@ -1003,9 +983,37 @@ if((NOT WIN32) AND (NOT MSVC))
endif()
if(CMAKE_COMPILER_IS_GNUCC)
- set(C_WARNINGS "${C_WARNINGS} -Wunused-parameter -Wwrite-strings -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=implicit-function-declaration -Werror=return-type")
+
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wall)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wcast-align)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wdeclaration-after-statement)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=declaration-after-statement)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=implicit-function-declaration)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=return-type)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Werror=strict-prototypes)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-char-subscripts)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-unknown-pragmas)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wpointer-arith)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wunused-parameter)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wwrite-strings)
+
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wall)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-invalid-offsetof)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-sign-compare)
+
+elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
+
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wall)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wpointer-arith)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS -Wno-unknown-pragmas)
+
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wall)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-invalid-offsetof)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS -Wno-sign-compare)
+
endif()
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS} ${C_WARNINGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS} ${CXX_WARNINGS}")