Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
Yuhang Zhao 2023-02-15 15:48:40 +08:00
parent cf3df61d21
commit bf513b94a0
1 changed files with 23 additions and 14 deletions

View File

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