From 28a999be522af2be568f86c10af8cceab4b8a20c Mon Sep 17 00:00:00 2001 From: Volodymyr Zibarov Date: Tue, 26 May 2020 11:16:26 +0300 Subject: CMake Build: Set /permissive- (standards conformance mode) for MSVC To make errors appear faster when developing on Windows MSVC 2017 and later have this flag to disallow MSVC-specific C++ language extensions. Use it to make code more correct and more portable. Set this option with add_compile_options() in root CMakeLists.txt to apply it to all targets. Add one #include to unittest/gtest-clang-printing.cpp as workaround for forward template declaration bug in MSVC http://tiny.cc/fa4tpz Change-Id: Ie0b19701ad773c79ffd2fed24fffbb1dcb29538c Reviewed-by: Cristian Adam Reviewed-by: Alessandro Portale --- CMakeLists.txt | 5 +++++ tests/unit/unittest/gtest-clang-printing.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e355b1d0f2..ee0e0051d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,11 @@ endfunction() set_if_target(_has_svg_target Qt5::Svg) option(ENABLE_SVG_SUPPORT "Enable SVG support" "${_has_svg_target}") +# specify standards conformance mode to MSVC 2017 and later +if (MSVC AND MSVC_VERSION GREATER_EQUAL 1910) + add_compile_options(/permissive-) +endif() + add_library(OptionalSvg INTERFACE) if (TARGET Qt5::Svg AND ENABLE_SVG_SUPPORT) target_link_libraries(OptionalSvg INTERFACE Qt5::Svg) diff --git a/tests/unit/unittest/gtest-clang-printing.cpp b/tests/unit/unittest/gtest-clang-printing.cpp index 4c10958f52..c7004d25c5 100644 --- a/tests/unit/unittest/gtest-clang-printing.cpp +++ b/tests/unit/unittest/gtest-clang-printing.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include -- cgit v1.2.1