diff --git a/utils.cmake b/utils.cmake index 3758c8c..0b4faf9 100644 --- a/utils.cmake +++ b/utils.cmake @@ -120,8 +120,10 @@ function(setup_project) set(CMAKE_C_EXTENSIONS OFF PARENT_SCOPE) set(CMAKE_C_VISIBILITY_PRESET "hidden" PARENT_SCOPE) if(MSVC) - string(REGEX REPLACE "[-|/]w " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) - string(REGEX REPLACE "[-|/]W[0|1|2|3|4|all|X] " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + if(NOT ("x${CMAKE_C_FLAGS}" STREQUAL "x")) + string(REGEX REPLACE "[-|/]w " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + string(REGEX REPLACE "[-|/]W[0|1|2|3|4|all|X] " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + endif() if(PROJ_ARGS_NO_WARNING) string(APPEND CMAKE_C_FLAGS " /w ") elseif(PROJ_ARGS_MAX_WARNING) @@ -134,13 +136,17 @@ function(setup_project) endif() set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} PARENT_SCOPE) if(MSVC_VERSION GREATER_EQUAL 1920) # Visual Studio 2019 version 16.0 - string(REGEX REPLACE "[-|/]Ob[0|1|2|3] " " " CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + if(NOT ("x${CMAKE_C_FLAGS_RELEASE}" STREQUAL "x")) + string(REGEX REPLACE "[-|/]Ob[0|1|2|3] " " " CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + endif() string(APPEND CMAKE_C_FLAGS_RELEASE " /Ob3 ") set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} PARENT_SCOPE) endif() else() - string(REPLACE "-w " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) - string(REGEX REPLACE "-W[all|extra|error|pedantic] " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + if(NOT ("x${CMAKE_C_FLAGS}" STREQUAL "x")) + string(REPLACE "-w " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + string(REGEX REPLACE "-W[all|extra|error|pedantic] " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) + endif() if(PROJ_ARGS_NO_WARNING) string(APPEND CMAKE_C_FLAGS " -w ") elseif(PROJ_ARGS_MAX_WARNING) @@ -162,10 +168,12 @@ function(setup_project) set(CMAKE_CXX_EXTENSIONS OFF PARENT_SCOPE) set(CMAKE_CXX_VISIBILITY_PRESET "hidden" PARENT_SCOPE) if(MSVC) - string(REGEX REPLACE "[-|/]GR-? " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - string(REGEX REPLACE "[-|/]EH(a-?|r-?|s-?|c-?)+ " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - string(REGEX REPLACE "[-|/]w " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - string(REGEX REPLACE "[-|/]W[0|1|2|3|4|all|X] " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + if(NOT ("x${CMAKE_CXX_FLAGS}" STREQUAL "x")) + string(REGEX REPLACE "[-|/]GR-? " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string(REGEX REPLACE "[-|/]EH(a-?|r-?|s-?|c-?)+ " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string(REGEX REPLACE "[-|/]w " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string(REGEX REPLACE "[-|/]W[0|1|2|3|4|all|X] " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + endif() if(PROJ_ARGS_NO_WARNING) string(APPEND CMAKE_CXX_FLAGS " /w ") elseif(PROJ_ARGS_MAX_WARNING) @@ -188,16 +196,17 @@ function(setup_project) endif() set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} PARENT_SCOPE) if(MSVC_VERSION GREATER_EQUAL 1920) # Visual Studio 2019 version 16.0 - string(REGEX REPLACE "[-|/]Ob[0|1|2|3] " " " CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + if(NOT ("x${CMAKE_CXX_FLAGS_RELEASE}" STREQUAL "x")) + string(REGEX REPLACE "[-|/]Ob[0|1|2|3] " " " CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}) + endif() string(APPEND CMAKE_CXX_FLAGS_RELEASE " /Ob3 ") set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} PARENT_SCOPE) endif() else() - if("x${CMAKE_CXX_FLAGS}" STREQUAL "x") - message(FATAL_ERROR "CMAKE_CXX_FLAGS is empty!!!!!!!!!!") + if(NOT ("x${CMAKE_CXX_FLAGS}" STREQUAL "x")) + string(REPLACE "-w " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string(REGEX REPLACE "-W[all|extra|error|pedantic] " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) endif() - string(REPLACE "-w " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - string(REGEX REPLACE "-W[all|extra|error|pedantic] " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) if(PROJ_ARGS_NO_WARNING) string(APPEND CMAKE_CXX_FLAGS " -w ") elseif(PROJ_ARGS_MAX_WARNING)