Skip to content

Commit bcb7e92

Browse files
authored
Merge pull request libgit2#4279 from pks-t/pks/error-builds
-Werror builds for Travis
2 parents 0a93ded + 414a338 commit bcb7e92

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ env:
1818
- secure: "YnhS+8n6B+uoyaYfaJ3Lei7cSJqHDPiKJCKFIF2c87YDfmCvAJke8QtE7IzjYDs7UFkTCM4ox+ph2bERUrxZbSCyEkHdjIZpKuMJfYWja/jgMqTMxdyOH9y8JLFbZsSXDIXDwqBlC6vVyl1fP90M35wuWcNTs6tctfVWVofEFbs="
1919
- GITTEST_INVASIVE_FS_SIZE=1
2020
matrix:
21-
- OPTIONS="-DTHREADSAFE=ON -DCMAKE_BUILD_TYPE=Release"
22-
- OPTIONS="-DTHREADSAFE=OFF -DBUILD_EXAMPLES=ON"
21+
- OPTIONS="-DTHREADSAFE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_WERROR=ON"
22+
- OPTIONS="-DTHREADSAFE=OFF -DBUILD_EXAMPLES=ON -DENABLE_WERROR=ON"
2323

2424
dist: trusty
2525
sudo: true

CMakeLists.txt

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ OPTION( VALGRIND "Configure build for valgrind" OFF )
4949
OPTION( CURL "Use curl for HTTP if available" ON)
5050
OPTION( USE_EXT_HTTP_PARSER "Use system HTTP_Parser if available" ON)
5151
OPTION( DEBUG_POOL "Enable debug pool allocator" OFF )
52+
OPTION( ENABLE_WERROR "Enable compilation with -Werror" OFF )
5253

5354
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
5455
SET( USE_ICONV ON )
@@ -223,8 +224,23 @@ IF (MSVC)
223224
ELSE ()
224225
SET(CMAKE_C_FLAGS "-D_GNU_SOURCE ${CMAKE_C_FLAGS}")
225226

226-
ADD_C_FLAG_IF_SUPPORTED(-Wall)
227-
ADD_C_FLAG_IF_SUPPORTED(-Wextra)
227+
MACRO(ENABLE_WARNINGS flag)
228+
IF(ENABLE_WERROR)
229+
ADD_C_FLAG_IF_SUPPORTED(-Werror=${flag})
230+
ELSE()
231+
ADD_C_FLAG_IF_SUPPORTED(-W${flag})
232+
ENDIF()
233+
ENDMACRO()
234+
235+
MACRO(DISABLE_WARNINGS flag)
236+
ADD_C_FLAG_IF_SUPPORTED(-Wno-${flag})
237+
IF(ENABLE_WERROR)
238+
ADD_C_FLAG_IF_SUPPORTED(-Wno-error=${flag})
239+
ENDIF()
240+
ENDMACRO()
241+
242+
ENABLE_WARNINGS(all)
243+
ENABLE_WARNINGS(extra)
228244

229245
IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
230246
SET(CMAKE_C_FLAGS "-std=c99 -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS ${CMAKE_C_FLAGS}")
@@ -247,16 +263,16 @@ ELSE ()
247263
ADD_DEFINITIONS(-D__USE_MINGW_ANSI_STDIO=1)
248264
ENDIF ()
249265

250-
ADD_C_FLAG_IF_SUPPORTED(-Wdocumentation)
251-
ADD_C_FLAG_IF_SUPPORTED(-Wno-missing-field-initializers)
252-
ADD_C_FLAG_IF_SUPPORTED(-Wstrict-aliasing=2)
253-
ADD_C_FLAG_IF_SUPPORTED(-Wstrict-prototypes)
254-
ADD_C_FLAG_IF_SUPPORTED(-Wdeclaration-after-statement)
255-
ADD_C_FLAG_IF_SUPPORTED(-Wno-unused-const-variable)
256-
ADD_C_FLAG_IF_SUPPORTED(-Wno-unused-function)
266+
ENABLE_WARNINGS(documentation)
267+
DISABLE_WARNINGS(missing-field-initializers)
268+
ENABLE_WARNINGS(strict-aliasing=2)
269+
ENABLE_WARNINGS(strict-prototypes)
270+
ENABLE_WARNINGS(declaration-after-statement)
271+
DISABLE_WARNINGS(unused-const-variable)
272+
DISABLE_WARNINGS(unused-function)
257273

258274
IF (APPLE) # Apple deprecated OpenSSL
259-
ADD_C_FLAG_IF_SUPPORTED(-Wno-deprecated-declarations)
275+
DISABLE_WARNINGS(deprecated-declarations)
260276
ENDIF()
261277

262278
IF (PROFILE)

0 commit comments

Comments
 (0)