From 57978b0f7fd59a67da21cd9409e69b03dc14b6b8 Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Mon, 28 Mar 2022 23:07:15 +0300 Subject: [PATCH] mdbx-cmake: add `remove_flag` and `remove_compile_flag` macros. --- cmake/utils.cmake | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 066979b0..59320e7d 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -36,6 +36,23 @@ macro(add_compile_flags languages) unset(_flags) endmacro(add_compile_flags) +macro(remove_flag varname flag) + string(REGEX REPLACE "^(.*)( ${flag} )(.*)$" "\\1 \\3" ${varname} ${${varname}}) + string(REGEX REPLACE "^((.+ )*)(${flag})(( .+)*)$" "\\1\\4" ${varname} ${${varname}}) +endmacro(remove_flag) + +macro(remove_compile_flag languages flag) + foreach(_lang ${languages}) + if(CMAKE_CXX_COMPILER_LOADED AND _lang STREQUAL "CXX") + remove_flag(${_lang}_FLAGS ${flag}) + endif() + if(CMAKE_C_COMPILER_LOADED AND _lang STREQUAL "C") + remove_flag(${_lang}_FLAGS ${flag}) + endif() + endforeach() + unset(_lang) +endmacro(remove_compile_flag) + macro(set_source_files_compile_flags) foreach(file ${ARGN}) get_filename_component(_file_ext ${file} EXT)