From 18b6792cc70e06edaa9633caf80ab6f242afd623 Mon Sep 17 00:00:00 2001 From: ChrisjStone Date: Tue, 25 Jul 2023 21:14:15 -0600 Subject: [PATCH] fix: issue #5211 Move gcc compiler option -Werror to CMAKE_CXX_FLAGS_DEBUG to work around cmake using any options present in CMAKE_CXX_FLAGS as default options for all build types. This fix was necessary to prevent gcc from erroring out with indetifier 'requires' being a keyword sicne we are using c++11 and not c++20. --- BUILD.md | 2 ++ CMakeLists.txt | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/BUILD.md b/BUILD.md index 585b088c..878864da 100644 --- a/BUILD.md +++ b/BUILD.md @@ -65,6 +65,8 @@ cmake -DCMAKE_INSTALL_PREFIX=../install ../src make -j8 install ``` +**NOTE:** If you want to treat all warnings as errors add -DCMAKE_BUILD_TYPE=Debug to the above cmake command + You can use IDEs like KDevelop or QtCreator to open the CMake project if you want to work on the code. ### Installing Qt using the installer (optional) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc1e1eb4..ddc0956e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,12 +55,12 @@ set(CMAKE_C_STANDARD_REQUIRED true) set(CMAKE_CXX_STANDARD 11) set(CMAKE_C_STANDARD 11) include(GenerateExportHeader) -set(CMAKE_CXX_FLAGS " -Wall -pedantic -Werror -Wno-deprecated-declarations -D_GLIBCXX_USE_CXX11_ABI=0 -fstack-protector-strong --param=ssp-buffer-size=4 ${CMAKE_CXX_FLAGS}") +set(CMAKE_CXX_FLAGS " -Wall -pedantic -Wno-deprecated-declarations -D_GLIBCXX_USE_CXX11_ABI=0 -fstack-protector-strong --param=ssp-buffer-size=4 ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE " -O3 -D_FORTIFY_SOURCE=2 ${CMAKE_CXX_FLAGS_RELEASE}") if(UNIX AND APPLE) set(CMAKE_CXX_FLAGS " -stdlib=libc++ ${CMAKE_CXX_FLAGS}") endif() -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type -O0") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror -Werror=return-type -O0") # Fix build with Qt 5.13 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_DEPRECATED_WARNINGS=Y")