Merged
Conversation
279c78e to
a3f0d0c
Compare
Member
Author
|
Please hold until #4282 is merged due to rebasing being a major pain |
There are multiple sites where we enable or disable compiler warning via "-W<warning>" or "-Wno-<warning>". As we want to extend this mechanism later on to conditionally switch these over to "-Werror=<warning>", we encapsulate the logic into its their own macros `ENABLE_WARNINGS` and `DISABLE_WARNINGS`. Note that we in fact have to use a macro here. Using a function would not modify the CFLAGS inside of the callers scope, but in the function's scope only.
Add a simple switch to enable building with "-Werror=<warning>" instead of "-W<warning". Due to the encapsulated `ENABLE_WARNINGS` macro, this is as simple as adding a new variable "ENABLE_WERROR`, which can be passed on the command line via `-DENABLE_WERROR=ON`. The variable defaults to NO to not bother developers in their day to day work.
One of our goals is to have our code free of any warnings. Due to the recent switch to Ubuntu 14.04 on Travis, the last warning regarding some preprocessor-magic in the curl-headers has been fixed and as such, the goal of zero warnings is now reached for Travis CI. In order to avoid introducing new warnings via pull requests, we can now enable building with `-Werror` and turn compiler warnings into errors instead, causing the CI jobs to fail. This build does so by passing the newly introdcued `-DENABLE_WERROR` flag to CMake for all Travis jobs.
a3f0d0c to
414a338
Compare
Member
Author
|
Rebased for #4282. If CI has no complaints I'd consider this ready to be merged now. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As promised in #4211, this PR enables building with "-Werror". I've taken a different approach here than last time by creating new macros
ENABLE_WARNINGS/DISABLE_WARNINGS. When passing "-DENABLE_WERROR" to CMake, theENABLE_WARNINGSmacro is switched over to add "-Werror=" instead of "-W<warning" to our CFLAGS variable.I've switched over Travis to use this new switch by default. I'll probably have to disable this for the old Precise machines as they still have the issue with
curl_easy_optwarnings, which are out of our scope to fix.