From a350dd5846ecfd49bc58459d362b114213144efe Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 22 Apr 2020 15:37:04 +0200 Subject: [PATCH] CMakeLists.txt: Fixing compile flags for MSVC Use set_compile_options() with cmake generator expression to define flags for all configurations and compilers in a compact way. --- CMakeLists.txt | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97d5d09..4697bc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,15 +61,22 @@ set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF ) # c++ flags -set( CMAKE_CXX_FLAGS_DEBUG "-O0 -g" ) -set( CMAKE_CXX_FLAGS_RELEASE "-O3" ) -set( CMAKE_CXX_FLAGS_MINSIZEREL "-Os" ) +add_compile_options( + "$<$:-Werror;-Wall;-Wconversion;-Wno-sign-conversion;-Wextra>" + "$<$:/W3;-D_CRT_SECURE_NO_WARNINGS=1>" -if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wconversion -Wno-sign-conversion -Wextra" ) -elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - add_definitions( "-D_CRT_SECURE_NO_WARNINGS=1" ) -endif() + # Debug + "$<$:$<$:-O0;-g>>" + "$<$:$<$:/Od;/Zi>>" + + # Release + "$<$:$<$:-O3>>" + "$<$:$<$:/O2>>" + + # MinSizeRel + "$<$:$<$:-Os>>" + "$<$:$<$:/O1>>" +) # Project config file configure_file(config.hpp.in "${PROJECT_BINARY_DIR}/config.hpp" @ONLY)