Skip to content
This repository was archived by the owner on Aug 5, 2022. It is now read-only.

Commit 59781d1

Browse files
committed
Allow building Caffe with warnings-as-errors disabled
1 parent 3f494b4 commit 59781d1

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

CMakeLists.txt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ caffe_option(USE_SYSTEMTAP "Build for SystemTap" OFF)
6060
caffe_option(PERFORMANCE_MONITORING "Build Caffe with PERFORMANCE_MONITORING " OFF)
6161
#caffe_option(USE_GITHUB_MKLDNN "Download and use MKL-DNN available on github" OFF)
6262
caffe_option(CODE_COVERAGE "Build with code coverage instrumentation" OFF)
63+
caffe_option(WARNING_AS_ERROR "Build with warnings treated as errors" ON)
6364
caffe_option(CO_SIM "Build readonly cpu blob data/diff pycaffe interface" OFF)
6465
caffe_option(USE_MLSL "Build Caffe with Intel(r) Machine Learning Scaling Library for multinode training" ON)
6566
caffe_option(ICC_STATIC_BUILD "Build Intel Caffe static link with Intel compiler" OFF)
@@ -87,18 +88,18 @@ if(MSVC)
8788
endif()
8889
elseif(UNIX OR APPLE)
8990
# Linker flags.
90-
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
91+
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
9192
# GCC specific flags. ICC is compatible with them.
9293
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack -z relro -z now")
9394
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack -z relro -z now")
94-
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
95+
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
9596
# In Clang, -z flags are not compatible, they need to be passed to linker via -Wl.
9697
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
9798
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now")
9899
endif()
99-
100+
100101
# Compiler flags.
101-
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
102+
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
102103
# GCC specific flags.
103104
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.9)
104105
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector-strong")
@@ -107,11 +108,11 @@ elseif(UNIX OR APPLE)
107108
else()
108109
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector")
109110
endif()
110-
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
111+
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
111112
# Clang is compatbile with some of the flags.
112113
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector")
113-
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" )
114-
# Same as above, with exception that ICC compilation crashes with -fPIE option, even
114+
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" )
115+
# Same as above, with exception that ICC compilation crashes with -fPIE option, even
115116
# though it uses -pie linker option that require -fPIE during compilation. Checksec
116117
# shows that it generates correct PIE anyway if only -pie is provided.
117118
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector -wd2196")
@@ -122,12 +123,17 @@ elseif(UNIX OR APPLE)
122123
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-intel")
123124
endif()
124125
endif()
125-
126+
126127
# Generic flags.
127128
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-operator-names -Wformat -Wformat-security -Wall")
128129
if(NOT CODE_COVERAGE)
129-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror")
130+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
130131
endif()
132+
133+
if(WARNING_AS_ERROR)
134+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
135+
endif()
136+
131137
# Dot not forward c++11 flag to GPU beucause it is not supported
132138
set( CUDA_PROPAGATE_HOST_FLAGS OFF )
133139
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2")

0 commit comments

Comments
 (0)