diff options
author | Loo Rong Jie <loorongjie@gmail.com> | 2019-03-22T19·23+0800 |
---|---|---|
committer | Derek Mauro <761129+derekmauro@users.noreply.github.com> | 2019-03-22T19·23-0400 |
commit | 253eb7416421661873afbaa33828a850db978541 (patch) | |
tree | 0c4bdcdafe4b37af181991063f54113d880c1fdc /absl/copts/GENERATED_AbseilCopts.cmake | |
parent | e75672f6afc7e8f23ee7b532e86d1b3b9be3984e (diff) |
[CMake] Set correct flags for clang-cl (#278)
clang-cl produce binaries with MSVC ABI and wants to be as flag-compatible with pure MSVC as possible, so this leads to all sorts of weird cases. clang-cl alias /Wall as clang's -Weverything which is way too verbose, so it needs /W3 like pure MSVC. clang-cl only understand GCC style warning flags (-W[no]blah) and just silent drop MSVC style warning flags (/wd[num]). clang-cl needs MSVC define flags since it is consuming the same header files as pure MSVC. CMake set CMAKE_CXX_COMPILER_ID as Clang when clang-cl is detected, so need extra if (MSVC) to differentiate it. We are not doing clang-cl specialization in Bazel as currently there is no reliable way to detect clang-cl in Bazel.. This PR should be NFC for LLVM/GCC users on Unix platforms. Other changes: Add ABSL_ prefix to variable names to avoid name collision in CMake.
Diffstat (limited to 'absl/copts/GENERATED_AbseilCopts.cmake')
-rw-r--r-- | absl/copts/GENERATED_AbseilCopts.cmake | 104 |
1 files changed, 90 insertions, 14 deletions
diff --git a/absl/copts/GENERATED_AbseilCopts.cmake b/absl/copts/GENERATED_AbseilCopts.cmake index d02ea193c1c1..9031bfa5daf7 100644 --- a/absl/copts/GENERATED_AbseilCopts.cmake +++ b/absl/copts/GENERATED_AbseilCopts.cmake @@ -3,11 +3,87 @@ # (1) Edit absl/copts/copts.py. # (2) Run `python <path_to_absl>/copts/generate_copts.py`. -list(APPEND GCC_EXCEPTIONS_FLAGS +list(APPEND ABSL_CLANG_CL_EXCEPTIONS_FLAGS + "/U_HAS_EXCEPTIONS" + "/D_HAS_EXCEPTIONS=1" + "/EHsc" +) + +list(APPEND ABSL_CLANG_CL_FLAGS + "/W3" + "-Wno-c++98-compat-pedantic" + "-Wno-conversion" + "-Wno-covered-switch-default" + "-Wno-deprecated" + "-Wno-disabled-macro-expansion" + "-Wno-double-promotion" + "-Wno-comma" + "-Wno-extra-semi" + "-Wno-extra-semi-stmt" + "-Wno-packed" + "-Wno-padded" + "-Wno-sign-compare" + "-Wno-float-conversion" + "-Wno-float-equal" + "-Wno-format-nonliteral" + "-Wno-gcc-compat" + "-Wno-global-constructors" + "-Wno-exit-time-destructors" + "-Wno-nested-anon-types" + "-Wno-non-modular-include-in-module" + "-Wno-old-style-cast" + "-Wno-range-loop-analysis" + "-Wno-reserved-id-macro" + "-Wno-shorten-64-to-32" + "-Wno-switch-enum" + "-Wno-thread-safety-negative" + "-Wno-undef" + "-Wno-unknown-warning-option" + "-Wno-unreachable-code" + "-Wno-unused-macros" + "-Wno-weak-vtables" + "-Wbitfield-enum-conversion" + "-Wbool-conversion" + "-Wconstant-conversion" + "-Wenum-conversion" + "-Wint-conversion" + "-Wliteral-conversion" + "-Wnon-literal-null-conversion" + "-Wnull-conversion" + "-Wobjc-literal-conversion" + "-Wno-sign-conversion" + "-Wstring-conversion" + "/DNOMINMAX" + "/DWIN32_LEAN_AND_MEAN" + "/D_CRT_SECURE_NO_WARNINGS" + "/D_SCL_SECURE_NO_WARNINGS" + "/D_ENABLE_EXTENDED_ALIGNED_STORAGE" +) + +list(APPEND ABSL_CLANG_CL_TEST_FLAGS + "-Wno-c99-extensions" + "-Wno-missing-noreturn" + "-Wno-missing-prototypes" + "-Wno-missing-variable-declarations" + "-Wno-null-conversion" + "-Wno-shadow" + "-Wno-shift-sign-overflow" + "-Wno-sign-compare" + "-Wno-unused-function" + "-Wno-unused-member-function" + "-Wno-unused-parameter" + "-Wno-unused-private-field" + "-Wno-unused-template" + "-Wno-used-but-marked-unused" + "-Wno-zero-as-null-pointer-constant" + "-Wno-gnu-zero-variadic-macro-arguments" +) + +list(APPEND ABSL_GCC_EXCEPTIONS_FLAGS "-fexceptions" ) -list(APPEND GCC_FLAGS +list(APPEND ABSL_GCC_FLAGS "-Wall" "-Wextra" "-Wcast-qual" @@ -24,7 +100,7 @@ list(APPEND GCC_FLAGS "-Wno-sign-compare" ) -list(APPEND GCC_TEST_FLAGS +list(APPEND ABSL_GCC_TEST_FLAGS "-Wno-conversion-null" "-Wno-missing-declarations" "-Wno-sign-compare" @@ -33,11 +109,11 @@ list(APPEND GCC_TEST_FLAGS "-Wno-unused-private-field" ) -list(APPEND LLVM_EXCEPTIONS_FLAGS +list(APPEND ABSL_LLVM_EXCEPTIONS_FLAGS "-fexceptions" ) -list(APPEND LLVM_FLAGS +list(APPEND ABSL_LLVM_FLAGS "-Wall" "-Wextra" "-Weverything" @@ -85,7 +161,7 @@ list(APPEND LLVM_FLAGS "-Wstring-conversion" ) -list(APPEND LLVM_TEST_FLAGS +list(APPEND ABSL_LLVM_TEST_FLAGS "-Wno-c99-extensions" "-Wno-missing-noreturn" "-Wno-missing-prototypes" @@ -104,28 +180,28 @@ list(APPEND LLVM_TEST_FLAGS "-Wno-gnu-zero-variadic-macro-arguments" ) -list(APPEND MSVC_EXCEPTIONS_FLAGS +list(APPEND ABSL_MSVC_EXCEPTIONS_FLAGS "/U_HAS_EXCEPTIONS" "/D_HAS_EXCEPTIONS=1" "/EHsc" ) -list(APPEND MSVC_FLAGS +list(APPEND ABSL_MSVC_FLAGS "/W3" + "/DNOMINMAX" + "/DWIN32_LEAN_AND_MEAN" + "/D_CRT_SECURE_NO_WARNINGS" + "/D_SCL_SECURE_NO_WARNINGS" + "/D_ENABLE_EXTENDED_ALIGNED_STORAGE" "/wd4005" "/wd4068" "/wd4180" "/wd4244" "/wd4267" "/wd4800" - "/DNOMINMAX" - "/DWIN32_LEAN_AND_MEAN" - "/D_CRT_SECURE_NO_WARNINGS" - "/D_SCL_SECURE_NO_WARNINGS" - "/D_ENABLE_EXTENDED_ALIGNED_STORAGE" ) -list(APPEND MSVC_TEST_FLAGS +list(APPEND ABSL_MSVC_TEST_FLAGS "/wd4018" "/wd4101" "/wd4503" |